繁体   English   中英

使用时间滞后预测变量(自变量)进行预测的线性回归

[英]Linear regression using time lagged predictors (independent variables) for forecasting purpose

我正在预测印度某个地理区域(阿萨姆邦和梅加拉亚邦细分)的月平均降水量。 为此,我使用每月平均气温数据和每月平均相对湿度数据(我从 NOAA 网站上的该地理区域的 netCDF4 文件中提取并在空间上对其进行平均)作为自变量(预测变量)。

出于预测目的,我想以降水为因变量,将“气温”和“相对湿度”数据作为自变量对线性回归进行建模,以便它们在回归中具有时滞效应。

线性回归方程应如下所示:

请按照此链接获取等式

这里,“Y”是降水量,“X”是气温,“Z”是相对湿度。

样本“训练数据”如下:

   ID       Time Precipitation Air_Temperature Relative_Humidity
1   1 1948-01-01           105        20.31194          81.64137
2   2 1948-02-01           397        21.21052          80.20120
3   3 1948-03-01           594        22.14363          81.94274
4   4 1948-04-01          2653        20.79417          78.89908
5   5 1948-05-01          7058        20.43589          82.99959
6   6 1948-06-01          5328        18.10059          77.91983
7   7 1948-07-01          4882        16.63936          76.25758
8   8 1948-08-01          3979        16.56065          76.89210
9   9 1948-09-01          2625        16.95542          76.80116
10 10 1948-10-01          2578        17.13323          75.62411

而一段“测试数据”如下:

        ID       Time Precipitation Air_Temperature Relative_Humidity
    1  663 2003-03-01           862        21.27210          79.77419
    2  664 2003-04-01          1812        20.44042          79.42500
    3  665 2003-05-01          1941        19.24267          79.57057
    4  666 2003-06-01          4981        18.53784          80.67292
    5  667 2003-07-01          4263        17.21581          79.97178
    6  668 2003-08-01          2436        16.88686          81.37097
    7  669 2003-09-01          2322        16.23134          77.63333
    8  670 2003-10-01          2220        17.40589          81.14516
    9  671 2003-11-01           131        19.01159          79.15000
    10 672 2003-12-01           241        20.86234          79.05847

任何帮助将不胜感激。 谢谢!

根据您在评论中的澄清,这里是使用dplyrlag函数生成滞后变量的众多方法dplyr (我还在此处添加了一个新行以供以后预测):

df %>%
   add_row(ID = 11, Time = "1948-11-01") %>%
   mutate(Air_Temperature_lagged = dplyr::lag(Air_Temperature, 1),
          Relative_Humidity_lagged = dplyr::lag(Relative_Humidity, 1)) -> df.withlags

然后,您可以使用lm拟合简单的线性回归,将Precipitation作为您的因变量,并将其他两个变量的滞后版本作为预测变量:

precip.model <- lm(data = df.withlags, Precipitation ~ Air_Temperature_lagged + Relative_Humidity_lagged)

然后,您可以将系数应用于Air_TemperatureRelative_Humidity最新值,以使用predict函数predict 1948 年 11 月的降水。

predict(precip.model, newdata = df.withlags)
  1        2        3        4        5        6        7        8        9       10       11 
  NA 2929.566 3512.551 3236.421 3778.742 2586.012 3473.482 3615.884 3426.378 3534.965 3893.255 

模型的预测是3893.255

请注意,此模型仅允许您预测未来的一个时间段,因为您的预测变量中没有更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM