【发布时间】:2014-02-09 15:42:37
【问题描述】:
假设我想找到一个方程的 alpha (a) 值,它有类似的东西
y=a+ax1+ax2+...+axi
使用 OLS 假设我们从 i=2 的基本情况的 10 个值开始
#y=a+ax1+ax2
y = np.arange(1, 10)
x = np.array([[ 5, 10], [10, 5], [ 5, 15],
[15, 20], [20, 25], [25, 30],[30, 35],
[35, 5], [ 5, 10], [10, 15]])
使用 statsmodel 我通常会使用以下代码来获取 nx1 x 和 y 数组的根:
import numpy as np
import statsmodels.api as sm
X = sm.add_constant(x)
# least squares fit
model = sm.OLS(y, X)
fit = model.fit()
alpha=fit.params
但是当 x 不等于 y 时,这不起作用。如果您不知道 OLS 是什么,则公式为第一页上的 here。
【问题讨论】:
-
如果你想要
y=a+ax1+ax2,那么你在设置数据的代码中颠倒了x和y。 OLS 只能处理一维 y。 -
@user333700 即使你把它倒过来,它也有与 nx1 数组相同的问题
标签: python numpy statistics statsmodels