【发布时间】:2016-06-06 13:29:29
【问题描述】:
我正在使用ggplot2 绘制一些时间序列数据以及线性回归线。我有兴趣确定回归线何时会达到 82%。对图表的视觉检查表明这将在 2017 年 11 月 15 日左右发生。但是当我使用 R 的 predict.lm() 函数时,我得到了不同的答案:2017 年 8 月 12 日。这两种方法不应该给我相同的答案吗?最后,我想用一个显示截取日期的文本标签来注释图表。
require(ggplot2)
temp <- "End.Date Save.Rate
1 2015-05-31 0.67
2 2015-07-31 0.67
3 2015-09-30 0.69
4 2015-11-30 0.71
5 2016-01-30 0.70
6 2016-03-31 0.72"
df <- read.table(text = temp, header = TRUE)
df$End.Date <- as.POSIXct(df$End.Date, origin="1970-01-01", tzone="America/New_York")
save.rate.lm = lm(End.Date ~ Save.Rate, data=df)
newdata <- data.frame(Save.Rate = 0.82)
temp <- predict.lm(save.rate.lm, newdata)
predicted.date <- as.POSIXct(as.data.frame(temp)[1,], origin="1970-01-01",
tzone="America/New_York")
print(predicted.date)
x.lims <- c(as.POSIXct(NA), as.POSIXct("2017-12-31", origin="1970-01-01",
tzone="America/New_York"))
p <- ggplot(df, aes(x=End.Date, y=Save.Rate)) +
geom_point() +
stat_smooth(method='lm', fill=NA, fullrange=TRUE) +
theme(axis.text.x=element_text(angle = -45, hjust = 0)) +
scale_y_continuous(labels = percent) +
scale_x_datetime(breaks = date_breaks('month'), labels = date_format('%b-%Y'),
limits=x.lims) +
geom_hline(yintercept=0.82)
print(p)
【问题讨论】:
标签: r ggplot2 linear-regression