[R] Complex Surveys...Specifying Design

Tobias Verbeke tobias_verbeke at skynet.be
Fri Jul 23 21:49:02 CEST 2004


On Fri, 23 Jul 2004 12:23:35 -0400
"Zodet, Marc" <MZodet at ahrq.gov> wrote:

> I need some guidance from someone who is familiar/has some experience with
> the survey package.
> 
>  
> 
> The data that I am using is from the Medical Expenditure Panel Survey
> (www.meps.ahrq.gov <http://www.meps.ahrq.gov/> ).  The STRATA and PSU
> variables are varstr01 and varpsu01 respectively.  When I try to specify
> them with the svydesign function I get an error message.  An excerpt of my
> session is as follows...
> 
>  
> 
> library(foreign)
> 
> > h60 <- read.xport("h:\\meps\\temptransports\\h60.tpt")
> 
> > names(h60) <- casefold(names(h60))
> 
> > names(h60)
> 
> [1] "dupersid" "sex"      "inscov01" "totexp01" "perwt01f" "varstr01"
> "varpsu01"
> 
> > library(survey)
> 
> > meps.design <- svydesign(id=~varpsu01, strata=~varstr01, weight=~perwt01f,
> data=h60)
> 
> Error in svydesign(id = ~varpsu01, strata = ~varstr01, weight = ~perwt01f,
> : 
> 
>         Clusters not nested in strata
> 
> >
> 
>  
> 
> I'm not sure what is causing this error message or how to get around it
> (i.e., remedy the problem).  Any insight would be much appreciated.

Hi,

I guess the most common way of proceeding is to first stratify, 
and then to sample clusters independently within each stratum.
If this is the case, your data file can be put together like

stratum		psu	...
1		1
1		2
1		3
2		1
2		2
2		3

or like

stratum		psu	...
1		1
1		2
1		3
2		4
2		5
2		6

svydesign only likes the first data structure so
if this is not the case (clusters not 'nested' in
your strata) you should tell svydesign to nest 
(relabel) the clusters for you by passing the 
argument nest = TRUE to svydesign. In other words:

meps.design <- svydesign(ids = ~varpsu01, strata = ~varstr01, 
	weights = ~perwt01f, nest = TRUE, data = h60)

should work. See ?svydesign.

HTH,
Tobias




More information about the R-help mailing list