Ham*_*let 3 regression glm julia
我试图将一些 R 代码引入 Julia,但 GLM 包出现问题。数据集按年龄分组,每组中有 m_i 个个体,其中 N_i 个患病个体。我想估计生病的概率作为年龄的函数 - 一个典型的逻辑回归问题。IR 代码如下所示:
fit <- glm(cbind(N, m - N) ~ age, family = binomial, data = heart)
Run Code Online (Sandbox Code Playgroud)
我在 Julia 中尝试了以下函数调用,但它不起作用:
glm(@formula((N, m-N) ~ age), df, Binomial(), LogitLink())
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?数据集可以在这里找到:http ://stat.ethz.ch/Teaching/Datasets/heart.dat
谢谢。
您必须构建一个二元变量,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())
Run Code Online (Sandbox Code Playgroud)
它产生与 R 中相同的估计。
| 归档时间: |
|
| 查看次数: |
940 次 |
| 最近记录: |