从多级模型获取置信区间

时间:2018-08-06 17:10:14

标签: r

下午好,

我想从多级模型创建预测概率图,这是我对下面的代码所做的:

jvalues1 <- with(sanctions.data.scaled, seq(from = min(lagtradeshareeu100), 
to = max(lagtradeshareeu100), length.out = 100))

pp1 <- lapply(jvalues1, function(j) {tmpdat$lagtradeshareeu100 <- j
predict(multi.sanctions.bust, newdata = tmpdat, type = "response")})

sapply(pp1[c(0, 10, 20, 30, 40, 50, 60, 70, 80)], mean)

plotdat1 <- t(sapply(pp1, function(x) {
c(M = mean(x), quantile(x, c(0.25, 0.75)))
}))

plotdat1 <- as.data.frame(cbind(plotdat1, jvalues1))
colnames(plotdat1) <- c("PredictedProbability", "Lower", "Upper", 
"LagTradeShareEU")
head(plotdat1)
ggplot(plotdat1, aes(x = LagTradeShareEU, y = PredictedProbability)) + 
geom_line(size = 2, color="red") +
ylim(c(0, .25)) + + geom_linerange(aes(ymin = Lower, ymax = Upper))

plotdat1的标题在这里:

    PredictedProbability   Lower     Upper      LagTradeShareEU
1            0.1968789 0.006504205 0.2161600       -2.017769
2            0.1948356 0.006298856 0.2107395       -1.978162
3            0.1928083 0.006099950 0.2054193       -1.938554
4            0.1907968 0.005907288 0.2001993       -1.898947
5            0.1888011 0.005720675 0.1950795       -1.859339
6            0.1868207 0.005539925 0.1900594       -1.819732

我的问题是,当我将置信区间添加到图中时,置信区间似乎太大;它们的范围是从0到高于预测概率的几个点。我猜是因为变量的均值是零,所以用均值生成分位数没有意义吗?还有另一种方法吗?我可以在没有置信区间的情况下使用它们,但是我确信在我的文章中将需要它们。

我的最后一个问题是,我想确保预测的概率使用的是所有观察到的数据,而不是其他自变量的均值,但是我不确定这样做是否成功,所以我认为有人更加关注R代码会有所帮助。

(已编辑)   Picture of my plot

0 个答案:

没有答案