Я хочу рассчитать z-оценку возраста в данных NHANES со сложной схемой выборки. Как невзвешенные (age_z1), так и взвешенные (age_z2) z-значения были получены с использованием следующего кода R. Уместно ли оценивать взвешенный z-показатель как («наблюдаемые данные» - «взвешенное среднее») / «взвешенное стандартное отклонение»? Или невзвешенный z-показатель широко используется в анализе данных NHANES? Любые предложения и комментарии приветствуются.
# ----- download data
library("nhanesA")
demo<-nhanes("DEMO_G")
names(demo)<-tolower(names(demo)) # rename to lower
demo$age=demo$ridageyr # generate age
# ----- designate weight to data
library("survey")
sampdesign<-svydesign(id=~sdmvpsu,
strata=~sdmvstra,
weights=~wtint2yr,
nest=TRUE,
data=demo)
# ----- calculate z-score of age
# method 1
# unweighted
demo$age_z1<-scale(demo$age,center=TRUE, scale=TRUE)
# method 2
# weighted?
mean<-svymean(~age, sampdesign, na.rm=TRUE) # weighted mean
variance<-svyvar(~age, sampdesign, na.rm=TRUE) # weighted variance
sd<-sqrt(variance) # weighted standard deviation
cbind(mean,sd)
mean sd
age 37.18519 22.36971
demo$age_z2<-(demo$age-37.18519)/22.36971 # z-score=(age-mean)/sd
# compare age_z1 and age_z2
compdata<-subset(demo,select=c(age,age_z1,age_z2))
head(compdata)
age age_z1 age_z2
1 22 -0.3825472 -0.6788282
2 3 -1.1555651 -1.5281910
3 14 -0.7080284 -1.0364547
4 44 0.5125262 0.3046445
5 14 -0.7080284 -1.0364547
6 9 -0.9114542 -1.2599712
apply(compdata,2,mean)
age age_z1 age_z2
3.140262e+01 6.409979e-17 -2.584998e-01
apply(compdata,2,sd)
age age_z1 age_z2
24.578990 1.000000 1.098762