【发布时间】:2015-05-06 16:25:49
【问题描述】:
是否有适当的方法来进行 R 风格的逻辑回归,我避免使用循环,但我可以对特定因素的每个级别进行多个回归?
例如,假设 df 是每天 365 行,用二进制表示是否下雨:
multifactorglm(x){
glm(rained ~ temp + humidity, data=x, family="binomial")
}
tapply(df, month, multifactorglm)
这不会在 R 中运行并显示以下消息...
Error: unexpected '{' in "multifactorglm(x){"
> glm(rained ~ temp + humidity, data=x, family="binomial")
Error in eval(predvars, data, env) :
numeric 'envir' arg not of length one
> }
Error: unexpected '}' in "}"
>
我希望得到一个包含 12 个 glm 回归的向量,但我不想使用循环。我该怎么办?
【问题讨论】:
-
这看起来更像是一个错字。您能否提供一个可重现的示例?也......见
lme4::lmList(它做GLMs以及线性模型) -
同意错误信息提示有错字。
tapply是一个变相的循环。如果没有令人信服的理由,例如家庭作业问题规范,那么只需使用直接且同样有效的for循环,将月份值传递给glm并使用子集参数。我可以想到一个完全无环的方法,使用“月”作为与其他变量的交互,但解释输出似乎有点巴洛克风格。如果需要向量或矩阵,则需要提取系数,因为glm的结果是一个列表。