ValueError: фигуры (50,6) и (50,6) не выровнены: 6 (тусклый 1)! = 50 (тусклый 0) - PullRequest
0 голосов
/ 13 апреля 2020

Я получаю эту ошибку:

ValueError: shapes (50,6) and (50,6) not aligned:  6 (dim 1) != 50 (dim 0)".

У кого-нибудь есть какие-либо рекомендации о том, как "выровнять" эти матрицы? Я использую Python 3.5.1.

real_x = data.iloc[:,0:4].values
real_y= data.iloc[:,4].values

le = LabelEncoder()
real_x[:,3] = le.fit_transform(real_x[:,3])
oneHE = OneHotEncoder(categorical_features=[3])#categorical features col 3
real_x = oneHE.fit_transform(real_x).toarray()


real_x = real_x[:,1:]

training_x,test_x,training_y,test_y = train_test_split(real_x,real_y,test_size=0.2,random_state=0)


MLR = LinearRegression()
MLR.fit(training_x,training_y)

Pred_y = MLR.predict(test_x)
real_x = np.append(arr=np.ones((50,1)).astype(int),values=real_x, axis=1)

x_opt= real_x[:,[0,1,2,3,4]]
reg_OLS = sm.OLS(endog=real_x, exog=x_opt).fit()
m  = reg_OLS.summary()

real_x.shape
(50, 6)
x_opt.shape
(50, 5)

Я попытался изменить их, но снова это показывает ошибку

x_opt.reshape(50,6)
ValueError: cannot reshape array of size 250 into shape (50,6)

здесь полная ошибка


---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-15-02d59637cd4f> in <module>()
----> 1 m  = reg_OLS.summary()

ValueError: shapes (50,6) and (50,6) not aligned: 6 (dim 1) != 50 (dim 0)

1 Ответ

0 голосов
/ 13 апреля 2020

OLS только для одномерной зависимой переменной (endog), ваш эндог является многомерным. statsmodels в настоящее время не имеет надлежащей поддержки многомерных версий LS.

Несколько многомерных моделей LS реализованы в пакете linearmodels. https://pypi.org/project/linearmodels/

OLS может оценить params для многомерного эндога, но другие статистические данные недоступны. Вот почему это поднимается в итоге, а не если создание модели или подходит.

...