我有大约100个7x7因变量矩阵(所以49个因变量)。我的自变量是时间。我正在做一个物理项目,我应该通过求解ODE获得矩阵函数(矩阵的每个元素都是时间的函数)。我使用了numpy的ODE求解器,它给出了我在不同时间评估的矩阵函数的数值答案。现在有了这些矩阵和时间,我想找到每个元素矩阵的时间依赖表达式,以获得与时间相关的矩阵。我听说我应该做的是找到一个帽子矩阵,我猜测预测值或拟合值将是我的7x7矩阵,响应值将是一系列次数。那么如何在Python中找到这个帽子矩阵呢?
我最初想的是使用他们的LinearRegression模型在scikit-learn中进行多项式回归。那会有用吗?在StatsModel中是否有可能采用scipy或numpy的方式?
基本上我想来自:
为:
显然,我会使用更多测试用例,但这是整体想法。所以我将有单变量X(X将是不同时间的数组)和多变量Y(Y将是在不同时间评估的矩阵)
在上面的例子中,t = 1将包含在X数组中,Y数组将包含第一个矩阵
答案 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)
还有更多