gpt4 book ai didi

r - 多项式回归(不同的结果——相同的数据集,R vs SPSS)。 nnet 包 -- multinom 函数

转载 作者:行者123 更新时间:2023-12-04 12:22:29 25 4
gpt4 key购买 nike

最近,我不得不使用 R 和 SPSS 来使用多项式回归框架分析数据集。我们调查了一些参与者(10-12 岁),我们询问了他们最喜欢哪个“专业领域”,然后我们询问了他们访问互联网的频率。所以,结果是一个分类变量”:专业领域——“军事”、“我不知道”、“其他专业”;自变量也是一个分类变量(您访问互联网的频率(“我没有访问权限”、“1-3 小时/天”、“3-5 小时/天”)。

我使用 R(使用 nnet 包,通过 multinom 函数)运行一个模型,而其他统计学家使用 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 结果 SPSS results

为了清楚起见,当自变量只有两个类别(如性别、男性和女性)时,R和SPSS都同意其结果

SPSS results 2

在努力理解这两个结果之间的差异之后,我读到了 nnet estimation could have some problems (优化问题?),and that the discrepancy of results is not so strange as I was thinking at the beginning ..

谁能给我解释一下这是怎么回事?我错过了什么?!如果我们运行相同的模型,我假设 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))

最佳答案

你可以使用 mlogit或者,它更接近于 SPSS 结果。 SPSS 值应该是有效的,因为 Stata 会产生类似的结果(-14.88 (982.95)、11.58 (982.95)、11.44 (982.95))。其余的偏差可能源于“其他职业”的荒谬意义。

library(mlogit)
ml.dat <- mlogit.data(ds, choice="field", shape="wide")
ml <- mlogit(field ~ 1 | internet, data=ml.dat)

屈服

texreg::screenreg(ml)
=========================================================
Model 1
---------------------------------------------------------
Military:(intercept) -0.41
(0.91)
Other profession:(intercept) -16.89
(2690.89)
Military:factor(internet)1-3 hours/day -1.50
(1.06)
Other profession:factor(internet)1-3 hours/day 13.60
(2690.89)
Military:factor(internet)3-5 hours/day -1.64
(1.06)
Other profession:factor(internet)3-5 hours/day 13.46
(2690.89)
---------------------------------------------------------
AIC 85.49
Log Likelihood -36.74
Num. obs. 73
=========================================================
*** p < 0.001, ** p < 0.01, * p < 0.05

关于r - 多项式回归(不同的结果——相同的数据集,R vs SPSS)。 nnet 包 -- multinom 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55821747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com