对于这种情况,多项逻辑回归是否合适 "test"?
Is a multinomial logistic regression the appropriate "test" for this situation?
我的数据集中有两列。 y 是因变量,具有三个级别(无序级别 A、B 和 C),x 是数值自变量。下面的示例说明了这种情况,但我的实际数据集更大,超过 1000 行。
+------+---+
| x | y |
+------+---+
| 5.93 | A |
| 4.46 | A |
| 4.63 | A |
| 5.07 | A |
| 5.71 | A |
| 6.81 | B |
| 6.45 | B |
| 6.07 | B |
| 7.26 | C |
| 8.24 | C |
| 6.25 | C |
| 7.34 | C |
| 7.17 | C |
+------+---+
我的原假设是 y 列中 A、B 和 C 的比例与 x 值无关。也就是说,与任何给定 x 值相关的 A、B 和 C 的比例与 x 无关。备择假设是这些比例取决于 x。
我正在为此寻找统计测试。
我想知道执行多项逻辑回归并评估系数的显着性是否是一种合理的方法,或者是否有更好的测试。
如果您需要执行假设检验,那么最有可能的是多项式回归。另一种选择是离散化您的连续变量,然后显示不同 bin 与您的类别之间存在关联。
您可以检查此 post's accepted answer 以分别在每个术语下测试每个系数。这样做的缺点是您需要设置一个术语作为参考。
由于您的 null 是“y 列中 A、B 和 C 的比例与 x 值无关”,因此您可以针对 null 模型测试您的模型。通常使用似然比检验。以下是如何在 R 中执行此操作:
df = structure(list(x = c(5.93, 4.46, 4.63, 5.07, 5.71, 6.81, 6.45,
6.07, 7.26, 8.24, 6.25, 7.34, 7.17), y = structure(c(1L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L), .Label = c("A",
"B", "C"), class = "factor")), class = "data.frame", row.names = 0:12)
library(car)
library(nnet)
fit = multinom(y ~ x,data=df)
Anova(fit)
# weights: 6 (2 variable)
initial value 14.281960
final value 13.954126
converged
Analysis of Deviance Table (Type II tests)
Response: y
LR Chisq Df Pr(>Chisq)
x 18.717 2 8.624e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
我的数据集中有两列。 y 是因变量,具有三个级别(无序级别 A、B 和 C),x 是数值自变量。下面的示例说明了这种情况,但我的实际数据集更大,超过 1000 行。
+------+---+
| x | y |
+------+---+
| 5.93 | A |
| 4.46 | A |
| 4.63 | A |
| 5.07 | A |
| 5.71 | A |
| 6.81 | B |
| 6.45 | B |
| 6.07 | B |
| 7.26 | C |
| 8.24 | C |
| 6.25 | C |
| 7.34 | C |
| 7.17 | C |
+------+---+
我的原假设是 y 列中 A、B 和 C 的比例与 x 值无关。也就是说,与任何给定 x 值相关的 A、B 和 C 的比例与 x 无关。备择假设是这些比例取决于 x。
我正在为此寻找统计测试。
我想知道执行多项逻辑回归并评估系数的显着性是否是一种合理的方法,或者是否有更好的测试。
如果您需要执行假设检验,那么最有可能的是多项式回归。另一种选择是离散化您的连续变量,然后显示不同 bin 与您的类别之间存在关联。
您可以检查此 post's accepted answer 以分别在每个术语下测试每个系数。这样做的缺点是您需要设置一个术语作为参考。
由于您的 null 是“y 列中 A、B 和 C 的比例与 x 值无关”,因此您可以针对 null 模型测试您的模型。通常使用似然比检验。以下是如何在 R 中执行此操作:
df = structure(list(x = c(5.93, 4.46, 4.63, 5.07, 5.71, 6.81, 6.45,
6.07, 7.26, 8.24, 6.25, 7.34, 7.17), y = structure(c(1L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L), .Label = c("A",
"B", "C"), class = "factor")), class = "data.frame", row.names = 0:12)
library(car)
library(nnet)
fit = multinom(y ~ x,data=df)
Anova(fit)
# weights: 6 (2 variable)
initial value 14.281960
final value 13.954126
converged
Analysis of Deviance Table (Type II tests)
Response: y
LR Chisq Df Pr(>Chisq)
x 18.717 2 8.624e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1