如何处理线性回归中的日期特征?

数据挖掘 Python scikit-学习 特征选择 线性回归 特征工程
2022-03-09 11:15:23

我需要一些关于项目的帮助。

我有一个这样的数据框;

指标_1 指标_2 指标_3
2014 3 0.123 0.495 0.222

我的目标是预测明年的所有指标(月份列是每三个月一次,因此值为 3、6、9 或 12)。

我想知道线性回归是否是最好的模型?因为我想预测连续值。

此外,我该如何处理功能年份和日期?我想我需要对这两个功能进行一次热编码,还是有其他解决方案?或者我把年月列放在 int 类型中?

最后一个问题,我需要采用这两个功能还是更多功能?因为我需要预测明年的所有指标,而我不知道如何预测多个目标。

感谢您的帮助 !!

1个回答

当您只有时间作为解释变量时,您只能在目标中得出线性时间趋势。给定一个标准线性模型,您需要为每个目标估计一个模型。

df = data.frame(x=c(2017,2018,2019,2020,2021),y=c(0.65,0.69,0.78,0.81,0.85))
reg = lm(y~x,data=df)
summary(reg)

Coefficients:
              Estimate Std. Error t value Pr(>|t|)   
(Intercept) -1.042e+02  1.093e+01  -9.532  0.00245 **
x            5.200e-02  5.416e-03   9.601  0.00240 **

我示例中的回归结果告诉您,当x(年)上升一个单位,y(“指标”)将平均上涨 0.0052。当您绘制结果时,它将如下所示。

pred = predict(reg,newdata=df)
plot(df$x,df$y,ylab="y",xlab="time")
lines(df$x,df$y)
lines(df$x,pred,col="red")

在此处输入图像描述

因此,您可以在目标中捕获线性时间趋势(红线),但仅此而已。

根据您的描述,不清楚“指标”是否相互关联,也可能用作解释变量。