使用GLM进行Logistic回归

问题描述 投票:2回答:1

我试图将我的一些R代码带到Julia,但是GLM包有问题。数据集按年龄分组,每组中有N_i生病的m_i个体。我想估计生病的可能性是年龄的函数 - 一个典型的逻辑回归问题。我的代码看起来像:

fit <- glm(cbind(N, m - N) ~ age, family = binomial, data = heart)

我在Julia中尝试了以下函数调用,但它不起作用:

glm(@formula((N, m-N) ~ age), df, Binomial(), LogitLink())

有任何想法吗?数据集可以在这里找到:http://stat.ethz.ch/Teaching/Datasets/heart.dat

谢谢。

regression julia glm
1个回答
4
投票

你必须构建一个二进制变量sick,它对应于每个年龄组中病态和非病态观察的数量。我通过为每个年龄组创建一个单独的DataFrame然后在它们上运行vcat来实现此目的。

假设您在heart数据框中读取数据(我将heart_flat的创建压缩成一行,但您可以提取内部的理解以查看在移动中创建的内容),这是执行该任务的代码:

heart_flat = vcat([DataFrame(age=row[:age],
                             sick=[ones(Int, row[:N]);
                                   zeros(Int, row[:m]-row[:N])])
                   for row in eachrow(heart)]...)

glm(@formula(sick ~ age), heart_flat, Binomial(), LogitLink())

它产生与R中相同的估计。

© www.soinside.com 2019 - 2024. All rights reserved.