r列联表加权p值
典型的政治调查包含一个名为WEIGHT的变量。本博客的目的是使用基本r,r权重包和r调查包比较偶然表加权p值,使用上面给出的SAS中极其简单的数据集。基本包结果与SAS和SPSS的基本包中的结果相同。然而,权重包和调查包产生的结果彼此相似,但与基础包的结果完全不同。我有兴趣让别人向我解释为什么这些结果如此不同。它可能是我自己的编码错误或其他两个包的不同假设。我想对PEW或ANES(美国国家选举研究)典型数据集的最佳方法提出建议,
首先,我从基础包中提供r代码:
>attach(tt)
> print(tt)
sex internship enrollment count
1 boys yes yes 35
2 boys no yes 14
3 girls yes yes 32
4 girls no yes 53
5 boys yes no 29
6 boys no no 27
7 girls yes no 10
8 girls no no 23
> xx=xtabs(count~internship+enrollment,data=tt)
> print(xx)
enrollment
internship no yes
no 50 67
yes 39 67
> chisq.test(xx,correct=F)
Pearson's Chi-squared test
data: xx
X-squared = 0.81894, df = 1, p-value = 0.3655
> chisq.test(xx)
Pearson's Chi-squared test with Yates' continuity correction
data: xx
X-squared = 0.58989, df = 1, p-value = 0.4425
这些结果与以下SAS代码的结果一致(参见上述参考资料):
proc freq data=SummerSchool order=data;
tables Internship*Enrollment / chisq;
weight Count;
run;
结果也同意以下SPSS 15代码和SPSS克隆PSPP的结果:
WEIGHT BY COUNT.
CROSSTABS TABLES=INTERNSHIP BY ENROLLMENT
/STATISTICS=CHISQ.
但是,权重和调查的以下代码会产生不同的结果:
> library(weights)
> wtd.chi.sq(internship,enrollment,weight=count)
Chisq df p.value
0.0293791 1.0000000 0.8639066
> library(survey)
> tt.d=svydesign(ids = ~1, data =tt,weights =tt$count)
> svychisq(~internship+enrollment,tt.d)
Pearson's X^2: Rao & Scott adjustment
data: svychisq(~internship + enrollment, tt.d)
F = 0.023599, ndf = 1, ddf = 7, p-value = 0.8822
请注意,基数r(.365和.443)的p值与权重和调查(.864和.882)的结果完全不同。我有兴趣让别人向我解释差异的原因,并建议对上述政治数据类型的适用性。
答案 0 :(得分:0)
当您报告加权卡方检验时 - 使用我的this.
包或weights
包 - 基线分析假设您的权重与选择概率成比例,而不是数字的情况。这是使用调查数据的常规方式。您可以在Survey
包中将mean1
设置为false,从而获得所需的结果。
weights