繁体   English   中英

Statsmodels OLS函数可用于多个回归参数

[英]Statsmodels OLS function for multiple regression parameters

可以说我想找到一个方程的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。

追溯信息告诉您出了什么问题

    raise ValueError("endog and exog matrices are different sizes")
ValueError: endog and exog matrices are different sizes

您的x有10个值,您的y有9个值。 仅当两者具有相同数量的观察值时,回归才有效。

endog是y,exog是x,这些是statsmodels中用于自变量和解释变量的名称。

如果您将y替换为

y = np.arange(1, 11)

然后一切都会按预期进行。

这是上面的基本问题,您说您使用的是10个项目,但您的y的向量仅使用了9个项目。

>>> import numpy
>>> len(numpy.arange(1, 10))
9

这是因为Python中的分片和范围最多但不包括终止整数。 如果您已完成:

numpy.arange(10)

您将有10个项目的清单,从0开始,以9结尾。

对于回归,您需要为每组预测变量使用一个预测变量。 否则,预测变量将毫无用处。 您也可以丢弃没有预测变量的一组预测变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM