基于矩阵的Python回归

时间:2015-06-21 06:19:55

标签: python numpy matrix regression

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

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

基本上我想来自:

enter image description here

为:

enter image description here

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

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

1 个答案:

答案 0 :(得分:5)

鉴于你想要做的任务是经典的线性回归:

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)

还有更多