Python 给定形状错误的类中的StatModel

Python 给定形状错误的类中的StatModel,python,linear-regression,statmodels,Python,Linear Regression,Statmodels,我在statmodels中使用以下模型 import statsmodels.api as sm class MultiLinRegLearner_A: """This class defines a Multi Linear regression algorithm.""" def __init__(self, X_train, Y_train): self.X_train = s

我在statmodels中使用以下模型

import statsmodels.api as sm

class MultiLinRegLearner_A:
    
    """This class defines a Multi Linear regression algorithm."""
    
    def __init__(self, X_train, Y_train):
        self.X_train = sm.add_constant(X_train)
        self.Y_train = Y_train
        
    def train(self):
        self.model = sm.OLS(self.Y_train, self.X_train).fit()  
        
    def query(self, X_test):
        Y = self.model.predict(X_test)
        return Y
在这里,直到培训部分,它才能正常工作,但是当我调用mgl.query(X[150:])时,就会出现错误。 我得到了以下错误:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-49-c0758051747f> in <module>
      2 mgl = MultiLinRegLearner_A(X[:150], Y[:150])
      3 mgl.train()
----> 4 mgl.query(X[150:])

<ipython-input-48-0c0142618863> in query(self, X_test)
     13 
     14     def query(self, X_test):
---> 15         Y = self.model.predict(X_test)
     16         return Y

C:\ProgramData\Anaconda3\lib\site-packages\statsmodels\base\model.py in predict(self, exog, transform, *args, **kwargs)
   1098 
   1099         predict_results = self.model.predict(self.params, exog, *args,
-> 1100                                              **kwargs)
   1101 
   1102         if exog_index is not None and not hasattr(predict_results,

C:\ProgramData\Anaconda3\lib\site-packages\statsmodels\regression\linear_model.py in predict(self, params, exog)
    378             exog = self.exog
    379 
--> 380         return np.dot(exog, params)
    381 
    382     def get_distribution(self, params, scale, exog=None, dist_class=None):

<__array_function__ internals> in dot(*args, **kwargs)

ValueError: shapes (74,3) and (4,) not aligned: 3 (dim 1) != 4 (dim 0)
这是一张X:

array([[ 5.57469465e-02,  4.58671212e-02,  8.05328572e-01],
       [ 5.95213534e-02,  2.82266197e-02,  4.60267261e-01],
       [ 1.08318052e-01,  5.42789552e-02,  6.83864663e-01],
       [ 1.06784149e-01,  2.89634220e-02,  4.62705431e-01],
       [ 6.70113471e-02,  9.51949656e-03,  2.23702558e-01],
但是,当我在类外使用该模型时,如下面所示,它可以完美地工作

import statsmodels.api as sm

X = sm.add_constant(X)
model = sm.OLS(Y[:150],X[:150]).fit()
predictions = model.predict(X[150:])
print_model = model.summary()

有人知道我该如何解决这个问题吗?

x\u火车有
add\u常量
,x\u测试缺少预测,add\u常量需要选项
有\u常量='add'
x\u火车有
add\u常量
,x\u测试缺少预测,add\u常量需要选项
有\u常量='add'
array([[ 5.57469465e-02,  4.58671212e-02,  8.05328572e-01],
       [ 5.95213534e-02,  2.82266197e-02,  4.60267261e-01],
       [ 1.08318052e-01,  5.42789552e-02,  6.83864663e-01],
       [ 1.06784149e-01,  2.89634220e-02,  4.62705431e-01],
       [ 6.70113471e-02,  9.51949656e-03,  2.23702558e-01],
import statsmodels.api as sm

X = sm.add_constant(X)
model = sm.OLS(Y[:150],X[:150]).fit()
predictions = model.predict(X[150:])
print_model = model.summary()