使用 R 中的调查包计算的相关性显着性值

问题描述 投票:0回答:1

我想获得在 R 中计算复杂调查数据的相关性的显着性值!据我所知,调查包的相关性计算如下:

var <- svyvar(~var1+var2, design, na.rm=TRUE)
cov2cor(as.matrix(var))

但这仅提供相关系数。因此我的问题是:如何获得这样的相关性显着性值我知道这可以通过将

sig.stats = TRUE
参数传递给jtools包中的
svycor
函数来完成:

svycor(~var1+var2,
       design,
       na.rm = TRUE,
       sig.stats = TRUE,
       bootn = 1000)

然而,这依赖于权重包中的

wtd.cor
函数 - 由于 gdata 依赖项的一些问题,我在安装时遇到了麻烦。有人有解决方法吗?提前非常感谢!

r correlation survey p-value significance
1个回答
0
投票

获得此显着性检验的最简单方法是

summary(svyglm(var2~var1, design=design, na.rm=TRUE))

相关性为零的原假设正是变量之间的关系不存在线性分量的原假设。这使您非常接近如果

svycontrast
svyvar
输出

上工作时可以进行的测试

也就是说,假设

svycontrast.svyvar<-function(stats, ...){
    s<-as.vector(as.matrix(stats))
    nms<-as.vector(outer(rownames(stats),colnames(stats),paste,sep=":"))
    v<-vcov(stats)
    names(s)<-nms
    dimnames(v)<-list(nms,nms)
    attr(s,"var")<-v
    attr(s,"statistic")<-"variance"
    class(s)<-"svystat"
    svycontrast(s,...)
}

然后以内置

dclus1
数据集为例

> summary(svyglm(api00~ell,design=dclus1))

Call:
svyglm(formula = api00 ~ ell, design = dclus1)

Survey design:
svydesign(id = ~dnum, fpc = ~fpc, data = apiclus1)

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  746.926     26.900   27.77 5.85e-13 ***
ell           -3.721      0.467   -7.97 2.33e-06 ***

> b<-svyvar(~api00+ell,dclus1)
> svycontrast(b, quote(`api00:ell`/sqrt(`api00:api00`*`ell:ell`)))
           nlcon     SE
contrast -0.5941 0.0778
> -0.5941/ 0.0778
[1] -7.636247

对于基本相同的 z 统计量,您可以将其转换为 p 值。

这比使用

weights
包更好,因为
weights::wtd.cor
不考虑聚类或分层,仅考虑权重。

© www.soinside.com 2019 - 2024. All rights reserved.