【发布时间】:2018-06-01 14:42:29
【问题描述】:
我正在完成来自 Hosmer-Lemeshow 的有目的的模型构建的第 3 步,它建议比较完整模型 [Iris.mod1] 和简化模型 [Iris.mod2] 之间系数的百分比变化。如果可能的话,我想自动化这一步。
现在我有以下代码:
#Make species a binomial DV
iris = subset(iris, iris$Species != 'virginica')
iris$Species = as.numeric(ifelse(iris$Species == 'setosa', 1, 0))
#Build models
Iris.mod1 = glm(Species~Sepal.Length+Sepal.Width+Petal.Length+Petal.Width,
data = iris, family = binomial())
Iris.mod2 = glm(Species~Sepal.Length+Petal.Length, data = iris, family =
binomial())
我实际使用的数据集有大约 93 个变量和 170 万行。但我只是在这个例子中使用了虹膜数据。
#Try to see if any coefficients changed by > 20%
paste(names(which((summary(Iris.mod1)$coefficients[2:
(nrow(summary(Iris.mod1)$coefficients)),1] -
(summary(Iris.mod2)$coefficients[2:
(nrow(summary(Iris.mod2)$coefficients)),1]/
(summary(Iris.mod1)$coefficients[2:nrow(summary(Iris.mod1)$coefficients)),1]
> 0.2 == TRUE)))))
但是,这段代码充满了错误,我迷失在括号的海洋中。
有没有一种有效的方法来确定哪些变量的系数变化超过 20%?
提前谢谢你。
【问题讨论】:
-
很高兴看到改进 - 我会在接受答案的建议中添加一个警告。这样做很重要,但不要太快。人们通常建议等待 12-24 小时,看看是否有其他更好的答案出现。 (除了例外,如果答案看起来很完美,请立即接受。)
标签: r logistic-regression