Недавно мне пришлось работать с R и SPSS, чтобы проанализировать набор данных с каркасом многочленной регрессии.Мы опросили некоторых участников (10–12 лет) и спросили, какое «профессиональное поле» им нравится больше всего , а затем спросили как часто они обращаются к Интернету .Таким образом, результатом является категориальная переменная »: профессиональная область -« военные »,« я не знаю »и« другая профессия », а независимая переменная также является категориальной переменной (как часто вы получаете доступ к Интернету («У меня нет доступа», «1-3 часа / день», «3-5 часов / день»).
Я запустил модель, используя R (с пакетом nnet с помощью функции многочлена ) и других статистиков, запущенных с использованием SPSS. Все справочные категории были определены правильно.
Теперь, когда мы сравниваем результаты, они не согласуются для второй категориимоя независимая переменная. Первая в порядке.
Пожалуйста, посмотрите весь код:
library(tidyverse)
library(stargazer)
library(nnet)
ds <- ds %>% mutate(internet = factor(internet))
ds <- ds %>% mutate(internet = relevel(internet, ref = "I dont have internet access"))
ds <- ds %>% mutate(field = factor(field))
ds <- ds %>% mutate(fielf = relevel(field, ref = "I dont know"))
mod <- multinom(field ~ internet, data = ds, maxit=1000, reltol = 1.0e-9)
stargazer(mod, type = 'text')
и результат SPSS
Для ясности, когда независимая переменная имеет только две категории (например, пол, мужской и женский), R и SPSS согласуются с ее результатами
После огромных усилий, пытаясь понять несоответствие между обоими результатами, я прочиталхэт оценка сети может иметь некоторые проблемы (проблема оптимизации?), и что расхождение результатов не так странно, как я думал в начале ..
Может кто-нибудь объяснить мне, что здесь происходит?Чего мне не хватает ?!Я предполагаю, что SPSS и R должны иметь одинаковые результаты, если мы используем одну и ту же модель.
Спасибо
Это ds, которые я использую в этом примере:
ds <- structure(list(sex = structure(c(2L, 1L, 2L, 1L, 2L, 1L, 2L,
2L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 1L,
2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
2L, 1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L,
1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L,
2L, 1L), .Label = c("male", "female"), class = "factor"), internet = structure(c(3L,
3L, 2L, 3L, 2L, 3L, 3L, 3L, 2L, 2L, 3L, 3L, 3L, 2L, 2L, 3L, 2L,
2L, 2L, 2L, 3L, 3L, 2L, 2L, 3L, 1L, 3L, 2L, 2L, 2L, 3L, 3L, 3L,
2L, 3L, 3L, 2L, 3L, 3L, 3L, 3L, 3L, 1L, 2L, 2L, 3L, 3L, 2L, 2L,
2L, 3L, 3L, 3L, 3L, 3L, 1L, 2L, 3L, 1L, 2L, 2L, 2L, 3L, 3L, 2L,
2L, 1L, 3L, 2L, 2L, 3L, 2L, 2L), .Label = c("I dont have internet access",
"1-3 hours/day", "3-5 hours/day"), class = "factor"), field = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 2L, 1L, 1L, 1L, 3L, 1L, 1L, 1L, 3L, 1L, 1L, 1L, 1L,
1L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("I dont know", "Military",
"Other profession"), class = "factor")), class = "data.frame", row.names = c(NA,
-73L))