如何在没有 scikit 和 numpy 的情况下在 Python 中进行时间序列回归?

数据挖掘 Python 时间序列 回归 执行
2022-03-07 20:37:48

在最近的 Hackerrank 采访中,我遇到了以下问题:

给定一组时间戳(格式2019-11-26 11:00)及其相应的股票价格(单个浮点值),近似一组时间戳的缺失股票价格。

起初我尝试使用 SVR 模型来解决它,但我不得不意识到没有任何常用的数据科学库可用于该测试。

如果没有数据科学库,你将如何在有限的时间内解决这个问题?

我最终做了以下事情:采用最接近的可用测量值并根据它们求解y = mx + b方程,因此我的预测将是我的 x 对应的 y 值。

对于给定的测试用例,这似乎很好地解决了问题。我在 Python 中的解决方案

1个回答

如果您想在不使用任何包(例如 Numpy 等)的情况下执行简单的时间序列回归,则需要自己编写和求解模型。您可以使用梯度下降或最小二乘法来求解模型。

让我们看一个最小二乘解决方案。一个简单的模型(省略 sibscripts)如下所示:

y=β0+β1yt1+u,

其中由滞后解释,是误差项(如果需要,您也可以使用更多滞后)。您可以将其“组合”成一个矩阵,其中第一列等于一(截距),第二列包含滞后在矩阵表示法中,模型如下所示:yyt1uyt1

y=βX+u.

现在您可以通过以下方式解决:

β^=(XX)1Xy.

现在在不使用 numpy 之类的包的情况下解决问题应该相对容易(但仍有一些工作)。

作为矩阵表示法和梯度下降的替代方案,您还可以通过其他方式求解线性回归,例如,如本文所示。