R 计算置信区间稳健回归(二项式)时出错

R 计算置信区间稳健回归(二项式)时出错,r,regression,robust,R,Regression,Robust,对于一个项目,我想用R中的“稳健”包进行稳健回归。数据包括X轴和Y轴上某些突变的普遍性,因此我使用了二项式家族。问题是,每当我试图计算置信区间时,我都会得到一个错误: predict.glmRob(mod,newdata=dfPred,type=“response”)中出错: 尝试应用非函数 这是我运行的R代码: mod <- glmRob(pop2 ~ pop1, data=df, family=binomial) xweights <- seq(0, 0.2, 0.00

对于一个项目,我想用R中的“稳健”包进行稳健回归。数据包括X轴和Y轴上某些突变的普遍性,因此我使用了二项式家族。问题是,每当我试图计算置信区间时,我都会得到一个错误:

predict.glmRob(mod,newdata=dfPred,type=“response”)中出错:
尝试应用非函数

这是我运行的R代码:

mod      <- glmRob(pop2 ~ pop1, data=df, family=binomial)
xweights <- seq(0, 0.2, 0.001)
dfPred   <- data.frame(pop1 = xweights)
yweights <- predict(mod, newdata=dfPred, type="response")
我找人帮我用下面的代码从模型中提取置信区间,但我得到的置信区间范围为0到1,这在非稳健glm或选择其他族时不会发生

mod          <- glmRob(pop2 ~ pop1, data=df, family=binomial)
yweights     <- fitted.values(mod)
coefficients <- coef(mod)
se           <- coef(summary(mod))[,2]
intercept    <- as.numeric(coefficients[1] + c(-2*se[1], 0, 2*se[1]))
slope        <- as.numeric(coefficients[2] + c(-2*se[2], 0, 2*se[2]))
lci          <- intercept[1]+slope[1]*df$pop1
    uci          <- intercept[3]+slope[3]*df$pop1

mod您计算时间间隔的方法有缺陷。它甚至不考虑参数估计之间的相关性。您可以尝试jackknife或bootstrap方法(尽管我不能100%确定它们是否能很好地与强大的GLM配合)。但是,我无法让您的代码运行时没有错误。您的
pop2
只是一小部分。您使用的是
二项式
系列,它需要“成功”的数量和“失败”的数量。我从未尝试过
glmRob
,但它可能能够使用
weights
参数(正如
glm
所做的那样)来指示伯努利试验的总数。你有那个信息吗?你试过合并它吗?你能把它粘贴到这里吗?是的,这也是我尝试过的,但它给出了相同的错误。对于我表格中的每个值,“试验”的数量是1685。我在表中添加了一列权重(通过
cbind(df,c(rep(1685,18)
),并使用指定为权重的列运行glmRob。再次成功创建了模型,但置信区间的计算给出了错误或范围[0,1],具体取决于使用的代码。
mod          <- glmRob(pop2 ~ pop1, data=df, family=binomial)
yweights     <- fitted.values(mod)
coefficients <- coef(mod)
se           <- coef(summary(mod))[,2]
intercept    <- as.numeric(coefficients[1] + c(-2*se[1], 0, 2*se[1]))
slope        <- as.numeric(coefficients[2] + c(-2*se[2], 0, 2*se[2]))
lci          <- intercept[1]+slope[1]*df$pop1
    uci          <- intercept[3]+slope[3]*df$pop1