当我不想调整任何内容时,使用 R 的“调查”包预测利润率(简单的 GLM)

Predictive margins using R's "survey" package when I don't want to adjust for anything (simple GLM)

提问人:Alex 提问时间:10/19/2023 更新时间:10/19/2023 访问量:29

问:

library(survey) # Analysis of Complex Survey Samples
library(srvyr) # 'dplyr' inspired syntactic style

# complex survey design
design <- data %>% as_survey_design(ids = HOSP_NRD, weights = DISCWT, strata = NRD_STRATUM)

# create my survey-weighted GLM
fit_cost <- svyglm(Costs1 ~ 1, 
                   design = design,
                   family = Gamma(link = "log")) 

# predictive marginal means works
svypredmeans(fit_cost, ~group)

我无法弄清楚如何在不调整任何内容的情况下让 marginpred 命令工作。我只想要一个简单的 GLM。

它给出以下错误:“eval(e[[2L]], where) 中的错误: 缺少参数“adjustfor”,无默认值”。

# Standardised predictions (predictive margins) for regression models
marginpred(fit_cost,
           predictat = data.frame(group = c("a", "b")))
R GLM 边际效应

评论

0赞 IRTFM 10/19/2023
你试过“预测”吗?与往常一样,应该包含一个用于演示的数据对象。

答:

0赞 IRTFM 10/19/2023 #1

我首先阅读了帮助页面,看到首先进行了一些调整,然后移交给该功能。在没有合适的示例的情况下,我继续查看该页面上的示例,然后执行“svyglm”示例并尝试我的评论建议,结果显然令人满意:?marginpredmarginpredpredict

> set.seed(42)
> df<-data.frame(x=rnorm(100))
> df$time<-rexp(100)*exp(df$x-1)
> df$status<-1
> df$group<-(df$x+rnorm(100))>0
> des<-svydesign(id=~1,data=df)
Warning message:
In svydesign.default(id = ~1, data = df) :
  No weights or probabilities supplied, assuming equal probability
> newdf<-data.frame(group=c(FALSE,TRUE), x=c(0,0))
> 
> logisticm <- svyglm(group~time, family=quasibinomial, design=des)
> newdf$time<-c(0.1,0.8)
> logisticpred <- marginpred(logisticm, adjustfor=~x, predictat=newdf)
> predict(logisticm)
         link     SE
1   -0.279206 0.2156
2   -0.719218 0.2707
3   -0.813465 0.2988
4   -0.856459 0.3127
5   -0.722535 0.2716
# elided next 95 results