我使用statsmodels递增地增加WLS regression functions的参数。在
我有一个10x3的数据集X,我这样声明:X = np.array([[1,2,3],[1,2,3],[4,5,6],[1,2,3],[4,5,6],[1,2,3],[1,2,3],[4,5,6],[4,5,6],[1,2,3]])
这是我的数据集,我有一个10x2endog向量,如下所示:
^{pr2}$
现在,在导入import statsmodels.api as sm之后,我执行以下操作:g = np.zeros([3, 2]) # g(x) is a function that will store the regression parameters
mod_wls = sm.WLS(z, X)
temp_g = mod_wls.fit()
print temp_g.params
我得到这个输出:[[ -5.92878775e-323 -2.77777778e+000]
[ -4.94065646e-324 -4.44444444e-001]
[ 4.94065646e-323 1.88888889e+000]]
之前,从the answer to this question开始,我可以使用numpy.dot预测测试数据X_test的值,如下所示:np.dot(X_test, temp_g.params)
我很容易理解,因为它是endog向量,y是一个1D数组。但是当endog向量,在这个例子中,z是2D的时候,它是怎么工作的呢?
当我尝试1D版本中使用的上述行时,我得到以下错误:self._check_integrity()
File "C:\Users\app\Anaconda\lib\site-packages\statsmodels\base\data.py", line 247, in _check_integrity
raise ValueError("endog and exog matrices are different sizes")
ValueError: endog and exog matrices are different sizes