如何按年龄组R中的“调查”包复制SUDAAN第75个百分点和95%置信区间?

问题描述 投票:0回答:1

我试图从SAS和SUDAAN年龄组在“调查”包复制与95%置信区间位数估计与NHANES数据R。该包装的“svyby”功能,其“svyquantile”功能相结合,您可以很容易地进行这种分析;我的结果是接近,但不完全一样的SUDAAN产生的结果。

我认为这可能是由于一些参数的“svyby”和“svyquantile”功能允许您自定义。参数的“svyquantile”函数采用包括“方法”,“interval.type”,“关系‘interval.type’,‘return.replicates’等

我发现这解释了如何复制一些SUDAAN功能与“调查”包,但没有解释如何复制位数估计的this article。通过对SUDAAN如何估计分位数的一些研究,我认为,“方法”的说法应设置为“线性”。除此之外,我已经尝试设置各种参数不同的参数,但还没有运气复制SUDAAN估计准确。

有谁知道如何通过组复制SUDAAN位数估计和95%置信区间,或有任何资料上的方法SUDAAN以用来更好地复制使用R中的“调查”包这种分析?

在下面的代码,我已经证明我的做法。该“svyby”函数的结果似乎是合理的估计,然而,它们是不相同的由SUDAAN和SAS产生的结果。我没有访问SUDAAN和SAS,但我的目标是根据SUDAAN和SAS复制它们的结果在R.具体地,对于60岁以上年龄组的第75百分位数为PCB 118是25.89纳克/克脂肪(95% CI:22.97-30.17)。谢谢。

library(RNHANES)
library(survey)

# import NHANES 2003-2004 PCB Dataset 
pcbs <- nhanes_load_data("L28DFP_C", "2003-2004", demographics = T)

# create appropriate age groups
pcbs$age <- ifelse(pcbs$RIDAGEYR < 20, "<20",
            ifelse(pcbs$RIDAGEYR >= 20 & pcbs$RIDAGEYR <= 39, "20-39",
            ifelse(pcbs$RIDAGEYR >= 40 & pcbs$RIDAGEYR <= 59, "40-59",
            ifelse(pcbs$RIDAGEYR >= 60, "60+", ""))))
pcbs$age <- as.factor(pcbs$age)
levels(pcbs$age) = c("<20", "20-39", "40-59", "60+")

# assign survey design
nhanes.dsgn <- svydesign(id = ~SDMVPSU, strata = ~SDMVSTRA , weights = ~ WTSC2YR, data = pcbs, nest = TRUE)

# quantiles for subpopulations
svyby(~LBX118LA, ~age, nhanes.dsgn, svyquantile, quantiles=0.75, ci=TRUE, alpha=0.05,vartype="ci", na.rm=T, method = "linear")
r sas confidence-interval quantile quartile
1个回答
0
投票

从对“调查”包的文档:“合并interval.type =” betaWald”和领带=‘离散’的(接近)在SUDAAN的一些版本中使用Shah和Vaish(2006年)的建议。”

所以,

PCB118LA <- svyby(~LBX118LA, ~age, nhanes.dsgn, svyquantile, quantiles = 0.75, ci=TRUE, alpha=0.05, vartype="ci", na.rm=T, method = "linear", ties = "discrete", interval.type="betaWald")
© www.soinside.com 2019 - 2024. All rights reserved.