聊聊关于复杂调查加权中权重对数据的分布影响

美国国家健康与营养调查( NHANES, National Health and Nutrition Examination Survey)是一项基于人群的横断面调查,旨在收集有关美国家庭人口健康和营养的信息。
地址为:https://wwwn.cdc.gov/nchs/nhanes/Default.aspx
聊聊关于复杂调查加权中权重对数据的分布影响_第1张图片
上一篇文章《Nhanes临床数据库挖掘教程2—基线表绘制(table1)》发出后,有群友指出,分类变量的数据过大了,是否存在错误,我看一下,确实如此,比如种族1的个数为560万了,总的数据量才1万多点
聊聊关于复杂调查加权中权重对数据的分布影响_第2张图片
这是加权后的数据,我们来看一下Nhanes数据的权重,有些权重是0,有些可以达到10多万
聊聊关于复杂调查加权中权重对数据的分布影响_第3张图片
我们来看一下官方tableone包,svyCreateTableOne函数的示范例子

## Load packages
library(tableone)
library(survey)

## Create a weighted survey design object
data(nhanes)
nhanesSvy <- svydesign(ids = ~ SDMVPSU, strata = ~ SDMVSTRA, weights = ~ WTMEC2YR,
                       nest = TRUE, data = nhanes)

## Create a table object
## factorVars are converted to factors; no need for variables already factors
## strata will stratify summaries; leave it unspecified for overall summaries
tab1 <- svyCreateTableOne(vars = c("HI_CHOL","race","agecat","RIAGENDR"),
                          strata = "RIAGENDR", data = nhanesSvy,
                          factorVars = c("race","RIAGENDR"))

## Detailed output
summary(tab1)

## Default formatted printing
tab1

## nonnormal specifies variables to be shown as median [IQR]
print(tab1, nonnormal = "HI_CHOL", contDigits = 3, catDigits = 2,
      pDigits = 4, smd = TRUE)

## minMax changes it to median [min, max]
print(tab1, nonnormal = "HI_CHOL", minMax = TRUE, contDigits = 3,
      catDigits = 2, pDigits = 4, smd = TRUE)

## showAllLevels can be used tow show levels for all categorical variables
print(tab1, showAllLevels = TRUE, smd = TRUE)

## To see all printing options
?print.TableOne

## To examine categorical variables only
tab1$CatTable

## To examine continuous variables only
tab1$ContTable

## If SMDs are needed as numericals, use ExtractSmd()
ExtractSmd(tab1)

我们看看它最后生成的基线表,和我们做的基本一样,加权后的数据表人数也是上百万的,表明我们的方法没有问题
聊聊关于复杂调查加权中权重对数据的分布影响_第4张图片
下面我们来聊聊权重,权重其实可以简单理解为比重,假如不加权,每个人的权重可以看做1,如果加权后比如有一个人的权重是3,那么就可以把它看做3个人,有人的权重是0.8,那么就可以把它看做0.8个人,这样就会形成了一个数据和原来不相同的虚拟人群(书上是这么说的)。我想借助《应用STATA做统计分析 更新至STATA 12 (原书第8版)》的例子来说下,权重对数据分布的影响,只聊方法,不说代码。
聊聊关于复杂调查加权中权重对数据的分布影响_第5张图片
《应用STATA做统计分析 更新至STATA 12 (原书第8版)》第四章4.3部分提到了,权重的设计,美国有一个州要做民意调查,需要调查所有18岁以上的成年人的意见,但是调查员只有每一家庭户的电话,调查中29%的的人报告家里只有一位成年人,因此得到的调查表成年人的比例如下:
聊聊关于复杂调查加权中权重对数据的分布影响_第6张图片
然而实际情况中,根据打电话接听的几率,家里只有一个成年人的比例只有16%,远低于29%,因此需要设计一个权重来体现家庭中只有1个成年人的比例,具体怎么设计我就不展开了,我们生成了权重adultwt后,我们使用加权后的数据重新来分析
聊聊关于复杂调查加权中权重对数据的分布影响_第7张图片
我们可以看到加权后的数据分布成年人为1的比例基本接近16%,更接近与现实情况,因此,不加权做的数据分布和做加权的数据分布差别很大,加了权重后的数据分布更接近真实情况。

但是Nhanes数据的权重太大了,回到我们的Nhanes数据中,那应该怎么制作基线表呢,我们来看看别人怎么做的,有些是只显示百分比,如:
Non-linear association between diabetes mellitus and pulmonary function: a population-based study
聊聊关于复杂调查加权中权重对数据的分布影响_第8张图片
在这里插入图片描述
有些是说明n没有加权,其他结果加权分析了
Physiologically based serum ferritin thresholds for iron deficiency in children and non-pregnant women: a US National Health and Nutrition Examination Surveys (NHANES) serial cross-sectional study
聊聊关于复杂调查加权中权重对数据的分布影响_第9张图片
来看一篇jama是怎么做的
Trends in Use of Melatonin Supplements Among US Adults, 1999-2018
聊聊关于复杂调查加权中权重对数据的分布影响_第10张图片
聊聊关于复杂调查加权中权重对数据的分布影响_第11张图片
它也是n没有加权,其他分析均加权了。
在这里插入图片描述
Jama的这篇子刊JAMA Intern Med.(if>20)感觉是先算出加权百分比,然后用百分比来算出校正后的实际人群
聊聊关于复杂调查加权中权重对数据的分布影响_第12张图片
聊聊关于复杂调查加权中权重对数据的分布影响_第13张图片
聊聊关于复杂调查加权中权重对数据的分布影响_第14张图片
扯了一大堆,给我感觉就是基线表中n基本上要符合你抽样的实际例数,其他分析都是经过加权分析。
欢迎斧正。

你可能感兴趣的:(R语言,NHANES)