r - 带时间变量的 lm 函数
问题描述
我今天更新了我的 R 版本,现在我收到了lm()
函数错误。现在在 R 版本 4.0.3 (2020-10-10) 上运行
这是我保存在 df 中的数据结构:
(如果图片没有加载,它是一个有 2 列的数据框:'Date' 和 'Value'。(使用 as.Date() 函数将日期保存为日期)
我想知道线性回归线的斜率,所以我使用以下函数:
trend <- lm(formula = Date~Value, data=df)
它通常会返回趋势线的截距和斜率,但在更新我的 R 版本后,我收到以下错误:
lm.fit 中的错误(x,y,offset = offset,singular.ok =singular.ok,...):'y' 中的 NA/NaN/Inf
我的数据框中没有 NA 值,我还没有找到解决此错误的方法。是否有人建议如何修复它或以其他方式了解趋势线的斜率。我认为这是因为我使用了日期变量,因为如果我使用 2 个数值变量,该函数不会返回错误。
提前感谢您的时间和帮助!
解决方案
如果您想对一个变量使用简单的线性回归,您可以将日期转换为运行天数(自开始以来的天数)。
查看您的数据不会给您带来太多,因为它看起来不是很“线性”。因此,您可以将日期解构为相关组件(也可能使用上面的运行日期):
- 一个月中的哪一天
- 一周中的天
- 星期
- 月
- 季度/学期
- 年
(或其中的选择)并对这些整数执行多元线性回归。
最后但并非最不重要的时间序列预测将是最正确的方法(auto.arima() ie)
推荐阅读
- android - 如何实现searchable.xml?
- database - 以体重为指标的比赛
- asp.net - 如何在 ASP.NET MVC 中路由表单
- powerapps - PowerApps 中的离线功能
- ios - 如何在 admob 中禁用 IDFA 使用
- java - 如果用户继续输入无效输入,如何继续要求输入整数
- python-3.x - 数据框爆炸并使用正确的数据进行映射
- java - 在 Play framework 2.3 中设置 cookie sameSite
- python-3.x - 根据 Condition Pandas Dataframe 拆分列数据
- c - 无限循环,程序忽略行