如何让 R 对我的估算数据运行 svyglm?

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

(第一次发海报,对 R 非常陌生,所以如果我的解释不是很清楚,请耐心等待)

我有一个数据集,其中包含在两个时间点(21 个月和 7 岁)收集的一项结果测量值。第二个时间点结果测量的缺失数据用小鼠进行估算。我现在想在两个时间点使用 svyglm 运行一些线性回归模型,但我认为没有使用估算数据,因为第二个时间点的 df 远低于第一个时间点。两个时间点的总样本量应为 2591。

我还在调整家庭内的聚类,因为我在数据集中使用 FamID 变量来使用孪生数据。

我的代码是:


#run imputation itself
df1_imp<- mice(imp, max=50, m=20, pred=predM, seed=5)



#adjust for family clustering

imp_list <- lapply( 1:20 , function( n ) complete(df1_imp , action = n ) )
df1_imp_data <- svydesign(ids=~famID, probs=~1, data=imputationList(imp_list), nest=TRUE)



## 21 months SES and UPF
#Model 1

SES21m <- with(df1_imp_data, svyglm(UPF_21m ~ SES_compositeWeighted, design = df1_imp_data))
summary(pool(SES21m))

## 7 years SES and UPF
#Model 1

SES7y <- with(df1_imp_data, svyglm(UPF_7y ~ SES_compositeWeighted, design = df1_imp_data))
summary(pool(SES7y))


我的 21 个月模型的输出是:

                   term estimate std.error statistic     df     p.value
1           (Intercept)  58.5069   1.52126   38.4595 1284.0 6.3124e-216
2 SES_compositeWeighted  -2.5414   0.31247   -8.1333 1282.7  9.7675e-16

我 7 年模型的输出是:

                   term estimate std.error statistic      df    p.value
1           (Intercept)  67.4022   1.53660   43.8644  62.349 1.4021e-48
2 SES_compositeWeighted  -1.3201   0.29022   -4.5486 100.121 1.5178e-05
r linear-regression survey r-mice
1个回答
0
投票

df
报道的不仅仅是样本量(这就是为什么它不是一个整数)。它较低,因为部分方差估计来自插补之间的比较,其 df 的数量与插补的数量相同。

查看是否正在使用所有数据的最简单方法是在合并之前查看

svyglm
中的各个
SES7y
对象。

© www.soinside.com 2019 - 2024. All rights reserved.