可以使用线性回归来解决这个问题吗?



我有一个看起来像这样的数据帧:

2015        2016        2017        2018        2019    
Jan 10991273    15761628    20702648    28836397    32462658
Feb 11910590    18407640    21867727    29592821    34120748
Mar 14720817    22353179    28631090    37017871    41731600
Apr 14240928    22383817    28698805    36719286    40352427
May 13999937    22562954    30105567    38492879    42443240
Jun 14618367    23485559    31294015    40219835    42243535
Jul 16954514    22816656    31235203    39633588    41259052
Aug 16384802    22418011    30851292    39153646    38739977
Sep 17546431    22387746    30207602    37501028    37273751
Oct 19069836    24623265    34346016    42694615    0
Nov 15864435    21323086    30132954    34682955    0
Dec 14728914    18795856    26990426    33064396    0

从本质上讲,我试图预测这些零值。

import pandas as pd
import numpy as np
from sklearn.linear_model import LinearRegression

lm = LinearRegression()
Z = df[['2015', '2016', '2017', '2018']]
lm.fit(Z , df['2019'])
y_predict = lm.predict(Z)
print(y_predict)

输出是这样的:

array([31915988.349427  , 42517368.34239061, 42188302.01643895,
40885793.12471981, 39423851.45561062, 43649973.20909937,
29415292.34136068, 28706985.92182099, 21561488.69575803,
24801192.93635751,  -508990.40716472,  6069742.01418072])

该输出是否表示对这些值的预测?

我会说它没有

与1月至9月的早期值不一致是一个不好的迹象。

Nov 的大负值表明有问题。这些数字代表什么? 负值在物理上可能吗?

将函数视为黑匣子是错误的。

我可以用不同的方式查看这些数据:

  1. 每月一次拟合,其中年份是输入值。
  2. 每年一次拟合,总共 12 个值。
  3. 以月、年为参数的 2D 曲面。

你在做什么? 您假设什么顺序合适?

您应该能够计算 SSE 并找出不同方案的拟合优度。

我敦促您在尝试拟合任何东西之前绘制数据并查看它。 更好地理解数据。

最新更新