带矩阵的 Python 回归

标签 python numpy matrix regression

我有大约 100 个 7x7 因变量矩阵(所以有 49 个因变量)。我的自变量是时间。我正在做一个物理项目,我应该通过求解 ODE 得到一个矩阵函数(矩阵的每个元素都是时间的函数)。我使用了 numpy 的 ODE 求解器,它为我提供了在不同时间评估的矩阵函数的数值答案。现在有了这些矩阵和时间我想为每个元素矩阵找到一个时间相关的表达式来得到时间相关的矩阵。我听说我应该做的是找到一个帽子矩阵,我猜预测值或拟合值将是我的 7x7 矩阵,而响应值将是时间数组。那么如何在 Python 中找到这个帽子矩阵呢?

我最初想在 scikit-learn 中使用他们的 LinearRegression 模型进行多项式回归。那行得通吗?在 StatsModel 中是否有可能的方法,或者在 scipy 或 numpy 中有更好的方法?

基本上我想从:

enter image description here

到:

enter image description here

显然,我会使用更多的测试用例,但这是总体思路。所以我将有单变量 X(X 将是不同时间的数组)和多变量 Y(Y 将是在不同时间评估的矩阵)

在上面的示例中,t=1 将包含在 X 数组中,而 Y 数组将具有第一个矩阵

最佳答案

假设你想做的任务是经典线性回归:

numpy 中使用矩阵表示法(您必须通过向 X 添加一行来手动计算截距):

import numpy as np
a = np.linalg.inv(np.dot(X.T,X))
c = np.dot(X.T,Y)
b = np.dot(a,c)

使用 NumPy

np.polyfit(X,Y,1)

使用 scipy:

scipy.linalg.solve(X,Y)

scipy.stats.linregr(X,Y)

还有更多

关于带矩阵的 Python 回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30961846/

相关文章:

python - 程序太大,内存无法容纳 Pyinstaller

python - 以numpy/Python的风格访问OpenCV和C++中的矩阵元素

java - 使用来自字符串的输入填充二维数组的行

python - 减去两个包含 datetime.time 的 numpy 数组

Matlab-元胞矩阵中给定列的运算

c++ - 当大小增加时编译数组数组时崩溃

Python 静态线程变量

python - 根据 python pandas 数据框中列的状态变化将时间序列数据分成组

python - 使用 pandas 解析错误分隔的文本文件

python - numpy:与非零相反(获取零元素的索引)