我是统计学的初学者。目前正在参加一门入门类(class),该类(class)使用 spss .我一直在努力学习r同时,到目前为止,对于使用这两种工具的计算,我一直得到相同的结果,正如预期的那样。
然而,我们目前正在做相关性( Pearson's Rho
),并拟合线性模型,我一直在 R
之间得到不同的结果。和 SPSS
.
数据集是 GSS2012.zip 在 this zip-file .
d = GSS2012$tolerance
e = GSS2012$age
f = GSS2012$polviews
g = GSS2012$educ
SPSS R std. error (SPSS)
intercept 6,694 7,29707726 0,623
e -0,031 -0,03130627 0,006
f -0,123 -0,20586503 0,072
g 0,411 0,40029541 0,033
获得上述结果的完整、最少的工作示例如下所示。
我试过不同的
use="stuff"
为 cor
;没有区别。cor(d, e, use = "pairwise.complete.obs")
lm
的完整、最小的工作示例:> library(haven)
> GSS2012 <- read_sav("full version/GSS2012.sav")
> lm(GSS2012$tolerance ~ GSS2012$age + GSS2012$polviews + GSS2012$educ, na.action="na.exclude", singular.ok = F)
Call:
lm(formula = GSS2012$tolerance ~ GSS2012$age + GSS2012$polviews +
GSS2012$educ, na.action = "na.exclude", singular.ok = F)
Coefficients:
(Intercept) GSS2012$age GSS2012$polviews GSS2012$educ
7.29708 -0.03131 -0.20587 0.40030
到目前为止,没有任何东西给我与
SPSS
相同的值. ---不是我知道后者一定是正确的,我只是想复制结果。SPSS脚本:
DATASET ACTIVATE DataSet1.
REGRESSION
/MISSING LISTWISE
/STATISTICS COEFF OUTS R ANOVA
/CRITERIA=PIN(.05) POUT(.10)
/NOORIGIN
/DEPENDENT tolerance
/METHOD=ENTER age polviews educ.
像这样的文章可能是相关的:link1 ; link2 ; link3 ,但我一直无法使用其中的信息来复制
SPSS
数据。 (同样,R
可能有更准确的结果;我不知道。但我处于“SPSS
环境”中,因此如果我现在能够获得相同的结果就好了:)
最佳答案
这只是部分答案,因为我可以看到问题所在,尽管我不确定是什么原因造成的。问题与缺失值以及它们在 SPSS 文件中的处理方式有关。让我们拿 educ
以变量为例...
在 SPSS 文件中,您可以看到值 97
, 98
, 和 99
被定义为缺失值:
如果您按 educ
对 SPSS 文件进行排序列,您可以看到有 2 个数据行包含这些缺失值。它们是 ID 837
和 1214
:
在 R 中,您可以确认这些行确实包含缺失值 ( NA
):
> which(is.na(GSS2012$educ))
[1] 837 1214
问题出在 SPSS 中,当您实际告诉它计算丢失的行数时,它说只有 1 个丢失的数据行:
FREQUENCIES VARIABLES=educ
/FORMAT=NOTABLE
/ORDER= ANALYSIS .
问题出在
ID 1214
. SPSS 没有考虑到 99
缺少 1214 的值 .例如,尝试更改 educ
将 837 转换为任何其他(非缺失)数字,您会看到 SPSS 表示 educ
缺少 0 行,实际上 1214 应该仍然缺失 (99)我还没有检查过,但我猜
polviews
的许多行都发生了类似的事情。多变的。这样做的结果是,当您运行分析时,SPSS 不会将这些行视为缺失数据,但在 R 中,这些值被正确设置为缺失和省略。换句话说,SPSS 为模型使用的数据比它应该使用的要多。您可以通过查看 SPSS 和 R 输出来确认这一点 - 两个程序的自由度不同,这会导致结果(略有)差异
我不确定为什么 SPSS 没有将这些行视为缺失。它可能是一个错误(对于 SPSS 来说不是第一个......)或者与文件的设置方式有关。我没有检查后者,因为它是一个大文件,而且我对数据集不够熟悉,不知道去哪里找
关于r - R 和 SPSS 线性模型结果之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53868465/