R 来自gam的ggplot置信带预测$fit和预测$se.fit
我有以下变量:R 来自gam的ggplot置信带预测$fit和预测$se.fit,r,ggplot2,gam,mgcv,R,Ggplot2,Gam,Mgcv,我有以下变量: prod:正整数 任期:正数值 队列:因子 下面是一些具有这些规格的模拟数据 set.seed(123) my_data <- data.frame(prod = rnbinom(10000, mu = 2.5, size = 1.5), tenure = rexp(10000), cohort = factor(sample(2011:2014, size = 10000, rep
prod
:正整数
任期
:正数值
队列
:因子
下面是一些具有这些规格的模拟数据
set.seed(123)
my_data <- data.frame(prod = rnbinom(10000, mu = 2.5, size = 1.5),
tenure = rexp(10000),
cohort = factor(sample(2011:2014, size = 10000, replace = TRUE,
prob = c(0.17, 0.49, 0.26, 0.08))))
获取预测及其标准误差:
preds <- predict(mod, se.fit = TRUE)
my_data <- data.frame(my_data,
mu = exp(preds$fit),
low = exp(preds$fit - 1.96 * preds$se.fit),
high = exp(preds$fit + 1.96 * preds$se.fit))
但我希望能从GAM中消除信心带。如何添加这些内容
不是答案
fill=NA
。不。这些置信区间将是无限小的,因为在一个队列中,任期预测是完全相同的软件包:ggvis
!请不要使用package:ggvis
答案,除非在ggplot2
中没有办法这样做。我当前的绘图框架是ggplot2
,我现在坚持使用它,除非我必须切换才能进行此绘图require(ggplot2)
require(mgcv)
set.seed(123)
my_data <- data.frame(prod = rnbinom(10000, mu = 2.5, size = 1.5),
tenure = rexp(10000),
cohort = factor(sample(2011:2014, size = 10000, replace = TRUE,
prob = c(0.17, 0.49, 0.26, 0.08))))
mod <- gam(prod ~ s(tenure, by = cohort) + cohort, data = my_data, family = nb())
preds <- predict(mod, se.fit = TRUE)
my_data <- data.frame(my_data,
mu = exp(preds$fit),
low = exp(preds$fit - 1.96 * preds$se.fit),
high = exp(preds$fit + 1.96 * preds$se.fit))
ggplot(my_data, aes(x = tenure, y = prod, color = cohort)) +
geom_point() +
geom_smooth(aes(ymin = low, ymax = high, y = mu), stat = "identity")
require(ggplot2)
要求(mgcv)
种子集(123)
my_数据(如果需要工作代码,则应提供数据。)geom_平滑应能工作,如中所示。旁注,为什么在ggplot2调用中使用%%>%%
?我希望那里会有加分。谢谢。正如您所看到的,我确实包含了一个+
操作符。我使用%%>%%
,这样我就可以在不同的行上将绘图元素用管道连接在一起。我想这就是ggvis
所做的(是的,有一天我会切换到ggvis
。@RomanLuštrik,将其格式化为一个答案,我会从中检查出永恒的爱的堆栈溢出。@BondedDust,这是你的数据,但在这种情况下似乎没有必要。我认为这不起作用。我得到“警告:忽略未知美学:ymin,ymax”。这些标注栏可能是ggplot2计算的新值。可能版本不同?Me,ggplot2_2.2.1和mgcv_1.8-24。尽管有警告,您计算的值仍在使用,这是事实。我们要删除这些对话吗?我使用的是ggplot2_2.2.1.9000和mgcv_1.8-23。当然,我会在几个小时后删除此评论。
library(magrittr)
library(ggplot2)
library(splines)
my_plot <-
ggplot(my_data, aes(x = tenure, y = mu, color = cohort)) %>%
+ geom_smooth(method = "glm",
formula = y ~ ns(x, 3),
family = "quasipoisson",
fill = NA)
require(ggplot2)
require(mgcv)
set.seed(123)
my_data <- data.frame(prod = rnbinom(10000, mu = 2.5, size = 1.5),
tenure = rexp(10000),
cohort = factor(sample(2011:2014, size = 10000, replace = TRUE,
prob = c(0.17, 0.49, 0.26, 0.08))))
mod <- gam(prod ~ s(tenure, by = cohort) + cohort, data = my_data, family = nb())
preds <- predict(mod, se.fit = TRUE)
my_data <- data.frame(my_data,
mu = exp(preds$fit),
low = exp(preds$fit - 1.96 * preds$se.fit),
high = exp(preds$fit + 1.96 * preds$se.fit))
ggplot(my_data, aes(x = tenure, y = prod, color = cohort)) +
geom_point() +
geom_smooth(aes(ymin = low, ymax = high, y = mu), stat = "identity")