Является ли многочленная логистическая регрессия подходящим «тестом» для этой ситуации?

#statistical-test

#статистический тест

Вопрос:

У меня есть два столбца в моем наборе данных. 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 |
 ------ --- 
 

Моя нулевая гипотеза заключается в том, что пропорции A, B и C в столбце y не зависят от значений x. То есть пропорции A, B и C, связанные с любым заданным значением x, не зависят от x. Альтернативная гипотеза заключается в том, что эти пропорции зависят от x.

Я ищу статистический тест для этого.

Мне интересно, является ли выполнение многочленной логистической регрессии и оценка значимости коэффициентов разумным способом, или если есть лучший тест.

Ответ №1:

Если вам нужно выполнить проверку гипотез, то, скорее всего, подойдет многочленная регрессия. Другой вариант — дискретизировать вашу непрерывную переменную, а затем показать, что существует связь между различными ячейками и вашими категориями.

Вы можете проверить принятый ответ этого сообщения для проверки каждого коэффициента по каждому термину отдельно. Недостатком этого является то, что вам нужно установить один термин в качестве ссылки.

Поскольку ваш null означает, что «пропорции A, B и C в столбце y не зависят от значений x», вы можете протестировать свою модель на основе нулевой модели. Обычно используется тест отношения правдоподобия. Ниже показано, как это сделать в 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