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

ulydmbyx  于 2023-07-31  发布在  其他
关注(0)|答案(1)|浏览(126)

我想获得在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)


然而,这依赖于weights包中的wtd.cor函数--由于gdata依赖性的一些问题,我在安装时遇到了麻烦。有没有人对此有一个解决方案?提前感谢!

bfrts1fy

bfrts1fy1#

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

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

字符串
相关性为零的零假设正是变量之间的关系不存在线性分量的零假设。这非常接近于svycontrastsvyvar输出上工作时可以执行的测试
即假设

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不考虑集群或分层,只考虑权重。

相关问题