我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) + …Run Code Online (Sandbox Code Playgroud)