R的调查包中的皮尔逊相关系数
Pearson correlation coefficient in R's survey package
抱歉,如果这真的很明显,但我看不到如何在调查包中的两个变量之间进行简单的 Pearson 相关。我的数据有层,所以它相当于在 apistrat 中找到 api00 和 api99 的 r。
library(survey)
data(api)
dstrat <- svydesign(id=~1,strata=~stype, weights=~pw, data=apistrat, fpc=~fpc)
我确定一定有一种简单的方法可以使用 svyvar 或 svyglm 或其他东西来实现,但我看不到它?
library(survey)
data(api)
dstrat<-svydesign(id=~1,strata=~stype, weights=~pw, data=apistrat, fpc=~fpc)
summary(svyglm(api00~ell+meals+mobility, design=dstrat),correlation=T)
我一直在思考这个问题,我开始认为最好的方法可能是先缩放两个变量,大概使用 svymean 和 svyvar。
dstrat2 <- transform(dstrat,
z_api99 = (api99 - svymean(~api99, dstrat))/sqrt(svyvar(~api99, dstrat)),
z_api00 = (api00 - svymean(~api00, dstrat))/sqrt(svyvar(~api00, dstrat)))
svyglm(z_api99 ~ z_api00, dstrat2)$coefficients
这给出了 9.759047e-01,这与使用以下结果相同:
library(weights)
wtd.cor(apistrat$api99, apistrat$api00, weight = apistrat$pw)
它的优点是几乎可以与任何调查设计类型一起使用。如果有更多变量,它还提供了一种获取标准化 beta 系数的方法。这不是我最初的问题所追求的,但如果没有特定的选择,这可能是最好的方法。
如果其他人可以确认这是否有效,或者是否有更好的方法,那么我将非常感谢任何进一步的评论。
您可以使用svyvar
估计方差-协方差矩阵,然后将其缩放到相关性:
library(survey)
data(api)
dstrat <- svydesign(id=~1,strata=~stype, weights=~pw, data=apistrat, fpc=~fpc)
v <- svyvar(~api00+api99, dstrat)
as.matrix(v)
cov2cor(as.matrix(v))
这适用于任何数量的关联和任何设计。
抱歉,如果这真的很明显,但我看不到如何在调查包中的两个变量之间进行简单的 Pearson 相关。我的数据有层,所以它相当于在 apistrat 中找到 api00 和 api99 的 r。
library(survey)
data(api)
dstrat <- svydesign(id=~1,strata=~stype, weights=~pw, data=apistrat, fpc=~fpc)
我确定一定有一种简单的方法可以使用 svyvar 或 svyglm 或其他东西来实现,但我看不到它?
library(survey)
data(api)
dstrat<-svydesign(id=~1,strata=~stype, weights=~pw, data=apistrat, fpc=~fpc)
summary(svyglm(api00~ell+meals+mobility, design=dstrat),correlation=T)
我一直在思考这个问题,我开始认为最好的方法可能是先缩放两个变量,大概使用 svymean 和 svyvar。
dstrat2 <- transform(dstrat,
z_api99 = (api99 - svymean(~api99, dstrat))/sqrt(svyvar(~api99, dstrat)),
z_api00 = (api00 - svymean(~api00, dstrat))/sqrt(svyvar(~api00, dstrat)))
svyglm(z_api99 ~ z_api00, dstrat2)$coefficients
这给出了 9.759047e-01,这与使用以下结果相同:
library(weights)
wtd.cor(apistrat$api99, apistrat$api00, weight = apistrat$pw)
它的优点是几乎可以与任何调查设计类型一起使用。如果有更多变量,它还提供了一种获取标准化 beta 系数的方法。这不是我最初的问题所追求的,但如果没有特定的选择,这可能是最好的方法。
如果其他人可以确认这是否有效,或者是否有更好的方法,那么我将非常感谢任何进一步的评论。
您可以使用svyvar
估计方差-协方差矩阵,然后将其缩放到相关性:
library(survey)
data(api)
dstrat <- svydesign(id=~1,strata=~stype, weights=~pw, data=apistrat, fpc=~fpc)
v <- svyvar(~api00+api99, dstrat)
as.matrix(v)
cov2cor(as.matrix(v))
这适用于任何数量的关联和任何设计。