从R survey()包和MIResult对象中使用regTermTest时出错



我正试图用估算数据对调查加权模型中的交互项进行Wald测试-玩具代表见下文。

当我使用直接根据函数文档建模的语法使用regTermTest运行最后三行代码时,我会得到以下错误:Error in terms.default(model) : no terms component nor attribute

快速的谷歌搜索似乎表明,这个错误意味着我正在向函数传递一个不受支持的对象类型;我读这篇文章是因为regTermTest可能不支持将MIResult传递给model。然而,似乎从survey软件包的3.6版本开始,regTermTest支持MIResult型号?这一页似乎也暗示了这一点。

感谢任何关于我做错了什么的指导。或者,如果有人知道如何从MIResult对象中获得单个模型项的p值,我会很高兴(例如,这篇文章中显示的是常规model对象)。

# load packages
library(tidyverse)
library(survey)
library(mi)
library(mitools)
# load data on school performance included in survey package
# documentation available here: https://r-survey.r-forge.r-project.org/survey/html/api.html
data(api)
# remove problematic variables that are unnecessary for this example
apisub <- apiclus1 %>% select(-c("name", "sname", "dname", "cname", "flag", 
"acs.46", "acs.core"))
# create and update variable types in missing_data.frame
mdf <- missing_data.frame(apisub)
mdf <- change(mdf, "cds", what = "type", to = "irrelevant")
mdf <- change(mdf, "stype", what = "type", to = "irrelevant")
mdf <- change(mdf, "snum", what = "type", to = "irrelevant")
mdf <- change(mdf, "dnum", what = "type", to = "irrelevant")
mdf <- change(mdf, "cnum", what = "type", to = "irrelevant")
mdf <- change(mdf, "fpc", what = "type", to = "irrelevant")
mdf <- change(mdf, "pw", what = "type", to = "irrelevant")
# summarize the missing_data.frame
show(mdf)
# impute missing data
imputations <- mi(mdf)
# create imputation list to pass to svydesign
imp_list <- complete(imputations, m = 5)
# create complex survey design using imputed data
dsn <- svydesign(id = ~dnum, 
weights = ~pw, 
data = imputationList(imp_list), 
fpc = ~fpc)
# subset the survey design to remove schools that did not meet both targets 
# just as an example of subsetting
dsn_sub <- subset(dsn, both == "No")
# specify analytic model  
anl <- with(dsn_sub, 
svyglm(api99 ~ enroll + meals + avg.ed*ell, 
family = gaussian(),
design = dsn
)
)
# combine results into a single output
res <- MIcombine(anl)  
# perform wald test for main and ixn terms
regTermTest(res, ~meals)
regTermTest(res, ~avg.ed:ell)
regTermTest(res, ~avg.ed*ell)

我不知道如何使用regTermTest进行此操作,但我了解到您可以运行以下程序来运行全局交互测试:

library(aod)
> aod::wald.test(Sigma = vcov(res),
+                b = coef(res),
+                Terms = 6)
Wald test:
----------
Chi-squared test:
X2 = 0.031, df = 1, P(> X2) = 0.86

相关内容

  • 没有找到相关文章

最新更新