请教各位R语言好手,请问在做加权线性回归模型的时候出现以下错误要如何解决呢?
d_rec$rec.n <- as.numeric(with(d_rec, ifelse(rec == "aaa", 1, 0)))
nhc <- svydesign(data=d_rec, ids=~sdmvpsu, strata = ~sdmvstra,
weights=~nhs_wt, nest = TRUE)
fit1 <- svyglm(rec.n~sex+age+eth+edu+inc+hbp+dm+htc,
design = nhc,family = quasibinomial(),data = d_rec)
Error in onestrat(x[index, , drop = FALSE], clusters[index], nPSU[index][1], :
Stratum (65) has only one PSU at stage 1
昨晚同样代码就可以运行,今天跑就不行了[捂脸]
其中一个层(第 65 层)中只有一个 PSU(主要抽样单位),这导致调查设计出现问题。
你参考一下这个:
# Filter out Stratum 65
d_rec_filtered <- d_rec[d_rec$sdmvstra != 65, ]
# Create survey design object with filtered data
nhc <- svydesign(data=d_rec_filtered, ids=~sdmvpsu, strata = ~sdmvstra,
weights=~nhs_wt, nest = TRUE)
# Fit the model with the filtered survey design
fit1 <- svyglm(rec.n~sex+age+eth+edu+inc+hbp+dm+htc,
design = nhc,family = quasibinomial())
从 svyglm 函数调用中删除了数据参数,因为数据已经在调查设计对象中指定。