作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找从 N × M 矩阵和 N-1 矩阵中的一组已知的真实解来计算最小二乘线性回归。从那里,我想获得每个回归的斜率、截距和残差值。基本思想是,我知道应该为 N 行中的每个样本预测实际值,并且我想使用残差确定 M 列中的哪一组预测值最准确。
我不太擅长描述矩阵,所以这是一张图:
(N,M) matrix with predicted values for each row N
in each column of M...
##NOTE: Values of M and N are not actually 4 and 3, just examples
4 columns in "M"
[1, 1.1, 0.8, 1.3]
[2, 1.9, 2.2, 1.7] 3 rows in "N"
[3, 3.1, 2.8, 3.3]
(1,N) matrix with actual values of N
[1]
[2] Actual value of each sample N, in a single column
[3]
因此,为了清楚起见,我希望计算 (N,M) 矩阵和 (1,N) 矩阵的每一列之间的 lstsq 回归。
例如,之间的回归
[1] and [1]
[2] [2]
[3] [3]
然后是之间的回归
[1] and [1.1]
[2] [1.9]
[3] [3.1]
依此类推,输出计算出的每个回归的斜率、截距和标准误差(平均残差)。
到目前为止,在 numpy/scipy 文档和网络上,我只找到一次计算一列的示例。我原以为 numpy 能够使用标准计算集合中每一列的回归
np.linalg.lstsq(arrayA,arrayB)
但这会返回错误
ValueError: array dimensions must agree except for d_0
我是否需要将列拆分为自己的数组,然后一次计算一个?我需要使用参数或矩阵运算来让 numpy 独立计算每列的回归吗?
我觉得应该更简单吧?我查遍了,似乎找不到任何人在做类似的事情。
最佳答案
也许你调换了A和b?
以下对我有用:
A=np.random.rand(4)+np.arange(3)[:,None]
# A is now a (3,4) array
b=np.arange(3)
np.linalg.lstsq(A,b)
关于python - 使用 Numpy 进行矩阵的最小二乘回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11416981/
我是一名优秀的程序员,十分优秀!