2012-10-16 37 views
4

有誰知道如何使用Lumley的調查包中的BRR權重來估計方差,如果您的數據集已經有的BRR權重了嗎?在R的調查包中如何使用BRR權重?

我正在使用PISA數據,他們已經在他們的數據集中包含了80個BRR重複數據。我怎樣才能得到.svrepdesign使用這些,而不是試圖創建自己的?我嘗試了以下,並得到了後續的錯誤:

dstrat <- svydesign(id=~uniqueID,strata=~strataVar, weights=~studentWeight, 
       data=data, nest=TRUE) 
dstrat <- as.svrepdesign(dstrat, type="BRR") 

Error in brrweights(design$strata[, 1], design$cluster[, 1], ..., 
    fay.rho = fay.rho, : Can't split with odd numbers of PSUs in a stratum 

任何幫助將不勝感激,謝謝。

+0

與R在比薩工作,[this](http://www.asdfree.com/search/label/program%20for%20international%20student%20assessment%20%28pisa%29)將做正確的設置爲你:)你需要在你的分析中加入多重插補,這些腳​​本自動化。 –

回答

3

無需使用as.svrepdesign()如果您有一個數據框與複製權重已經:)您可以直接從您的數據框創建複製加權設計。

說你有一個稱爲主重列數據mainwgt和80名爲repwgt1複製權重列通過repwgt80您可以使用此 -

yoursurvey <- 
    svrepdesign( 
    weights = ~mainwgt , 
    repweights = "repwgt[0-9]+" , 
    type = "BRR", 
    data = yourdata , 
    combined.weights = TRUE 
) 

- 這樣,你就不必識別確切的列號。那麼你就可以運行正常調查命令,如 -

svymean(~variable , design = yoursurvey) 

,如果你想另一個例子,這裏使用當前人口調查局的some example codean explanatory blog post

+0

是不是需要指定'type'和'rho'參數?我想有人需要知道重複權重的具體設計知道嗎? – ako

+1

我認爲類型默認爲「BRR」,但不是100%。 rho只需要type =「Fay」[示例](https://github.com/ajdamico/usgsd/blob/9be971706a69f4e569a7d5643eab602a5c27b311/Current%20Population%20Survey/2012%20asec%20-%20analysis%20examples.R#L80 )。 :) –

+0

如果您使用任何「合理值」變量(這可能是任何分析的核心),此答案是不夠的。要正確使用這些設置,請使用[此設置代替](http://www.asdfree.com/search/label/program%20for%20international%20student%20assessment%20%28pisa%29)。 –

2

我還沒有使用PISA數據,去年我使用了svprepdesign方法,使用美國社區調查(美國人口調查局)提供的公共使用樣本,該樣本還附帶80個重複權重。他們狀態下使用的Fay方法對於具體調查,所以這裏是一個如何可以利用這些數據構建svyrep對象:

pums_p.rep<-svrepdesign(variables=pums_p[,2:7], 
    repweights=pums_p[8:87], 
    weights=pums_p[,1],combined.weights=TRUE, 
    type="Fay",rho=(1-1/sqrt(4)),scale=1,rscales=1) 

attach(pums_p.rep) 
#CROSS - TABS 
#unweighted 
xtabs(~ is5to17youth + withinAMILimit) 
table(is5to17youth + withinAMILimit) 

#weighted, mean income by sex by race for select age groups 
svyby(~PINCP,~RAC1P+SEX,subset(
    pums_p.rep,AGEP > 25 & AGEP <35),na.rm = TRUE,svymean,vartype="se","cv") 

在得到這個工作,我發現article從A達米科有所幫助:Damico, A. (2009). Transitioning to R: Replicating SAS, Stata, and SUDAAN Analysis Techniques in Health Policy Data. The R Journal, 1(2), 37–44.

+0

你是否使用PISA數據處理它? – ako

+0

使用Anthony的解決方案效果很好,謝謝! – RickyB

相關問題