当我应用到使用包lm处理和四舍五入的日期时,我得到了一些奇怪的系数。lubridateMWE:
library(ggplot2)
library(lubridate)
library(dplyr)
lakers$month <- ymd(lakers$date) %>% round_date(unit = 'month')
items_by_month <- lakers %>% group_by(month) %>% summarize(count = n()) %>%
mutate(count = count / 1000)
ggplot(data = items_by_month, aes(x = month, y = count)) +
geom_line() +
stat_smooth(method = 'lm', data = items_by_month)
model <- lm(data = items_by_month, count ~ month)
summary(model)
time <- max(items_by_month$month) - min(items_by_month$month)
coef(model)['month'] * as.numeric(time)
但是在summary(model)系数上month是 10^-7 的数量级,这太小了大约 5 个数量级:图中显示第一个日期和最后一个日期之间增加了大约 2.5,但最后一行显示增加了大约 2.5 * 10^-5。
请注意,我已将count列除以 10^3,以便获得更易于阅读的值(并且更接近我的实际用例)。但这不应该影响情节或lm。另外,我知道有比线性回归更复杂的技术来分析时间序列数据;但我只是关注一段时间内的总体趋势,而不是考虑季节性模式等。
