时间序列中多元回归的残差图,时间在 R 中的 X 轴上

Residual Plot for multivariate regression in Time Series, with time on X axis in R

我有一个时间序列数据框。我正在使用函数 lm 构建多元回归模型。

linearmodel <- lm(Y~X1+X2+X3, data = data)
  1. 我想使用一个简单的函数在 y 轴上绘制此线性模型的残差,在 x 轴上绘制时间,并将 lm() 对象作为输入。
  2. 标准残差绘图函数,如汽车包中的函数 (car::residualPlot) 在 Y 轴上给出残差,在 Y 轴上给出拟合值。
  3. 理想情况下,我需要 Y 轴上的残差和 X 轴上的时间刻度。但我知道函数 lm() 是时间不可知的。因此,如果残差在 Y 轴上 与数据输入 的顺序相同,而 X 轴上没有任何内容
  4. ,我可以接受
  5. 是否有一个绘图函数,我可以通过将线性模型对象传递给函数来使用它(不是我可以提取残差并使用 ggplot2 的函数)。因此,例如:plot<- plotresidualsinorder(linearmodels) 应该按照与数据输入相同的顺序给我 Y 轴上的残差吗?
  6. 我最终想在 R-shiny 中使用此图。

我的研究让我找到了汽车包,它本身就很棒,但没有解决我问题的功能。

非常感谢您的帮助。

您可以使用Residual Plot信息。对于建议的解决方案,我们需要将 lm 函数应用于通过变量 X1+X2+X3 描述您的 Y 变量的公式,并将线性回归模型保存在新的 linearmodel 多变的。最后,我们使用 resid 函数计算残差。对于您的情况,以下解决方案可以代表您的问题。

建议的解决方案:

linearmodel <- lm(Y~X1+X2+X3, data = data)
lm_resid <- resid(linearmodel)
plot(data$X1+X2+X3, lm_resid, 
    ylab="Residuals", xlab="Time", 
    main="Data") 
abline(0, 0)

有关 resid 函数如何工作的任何帮助,您可以尝试:

help(resid)