下午好,
我想从多级模型创建预测概率图,这是我对下面的代码所做的:
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