1
假设我想预测对解释变量的特定值的响应。但我不明白我为什么使用type =“response”或“terms”或“link”。预测函数中type =“response”,“terms”和“link”有什么区别?
假设我想预测对解释变量的特定值的响应。但我不明白我为什么使用type =“response”或“terms”或“link”。预测函数中type =“response”,“terms”和“link”有什么区别?
假设你在谈论GLM,你应该首先了解模型是如何构造的以及它如何与因变量相关。这是一个广泛的话题,值得在大学进行全面的讲座。我的建议是拿起一本书并从那里开始。
简而言之,为了使数学出来,您需要将y
包装到某个函数中,以便在等式的右边得到一个“很好”的例如, f(y) = beta_0 + beta_1 * X1 + beta_2 * X2 + e
类型公式。
ldose <- rep(0:5, 2)
numdead <- c(1, 4, 9, 13, 18, 20, 0, 2, 6, 10, 12, 16)
sex <- factor(rep(c("M", "F"), c(6, 6)))
SF <- cbind(numdead, numalive = 20-numdead)
budworm.lg <- glm(SF ~ sex*ldose, family = binomial)
现在,当你问predict
返回type = link
,你得到的f(y)
值。
predict(budworm.lg, type = "link")
1 2 3 4 5 6
-2.8185550 -1.5596055 -0.3006561 0.9582933 2.2172427 3.4761922
7 8 9 10 11 12
-2.9935418 -2.0875053 -1.1814689 -0.2754324 0.6306040 1.5366404
响应将解决此术语,以便它处于“自然”等级。
predict(budworm.lg, type = "response")
1 2 3 4 5 6
0.05632970 0.17370326 0.42539710 0.72277997 0.90178726 0.97000272
7 8 9 10 11 12
0.04771849 0.11031718 0.23478819 0.43157393 0.65262640 0.82297581
的type = terms
将返回给定的每一个观察配合上的线性标尺的矩阵。
predict(budworm.lg, type = "terms")
sex ldose sex:ldose
1 0.08749339 -2.2650911 -0.44114124
2 0.08749339 -1.3590547 -0.08822825
3 0.08749339 -0.4530182 0.26468474
4 0.08749339 0.4530182 0.61759773
5 0.08749339 1.3590547 0.97051072
6 0.08749339 2.2650911 1.32342371
7 -0.08749339 -2.2650911 -0.44114124
8 -0.08749339 -1.3590547 -0.44114124
9 -0.08749339 -0.4530182 -0.44114124
10 -0.08749339 0.4530182 -0.44114124
11 -0.08749339 1.3590547 -0.44114124
12 -0.08749339 2.2650911 -0.44114124
attr(,"constant")
[1] -0.199816
请参见[如何问一个很好的问题(https://stackoverflow.com/help/how-to-ask)和[最小的,完整的和可验证的示例](https://开头计算器。 com/help/mcve)和[如何制作一个很好的R可重现的例子](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。 –