ValueError: фигуры (506,3) и (506,3) не выровнены: 3 (dim 1)! = 506 (dim 0) - PullRequest
0 голосов
/ 13 марта 2020

Я использую Anova для сравнения двух моделей линейной регрессии через пакет statsmodels. У меня есть 2 модели, где матрицы независимых переменных имеют разные размеры для обеих, так как вторая модель содержит дополнительную независимую переменную. Кто-нибудь знает, почему я получаю эту ошибку?

Вот соответствующий код:

from statsmodels.stats.anova import anova_lm

y1,X1 = patsy.dmatrices('medv ~ lstat', data = df, return_type = 'dataframe')
y2,X2 = patsy.dmatrices('medv ~ lstat + np.power(lstat,2)',data=df,return_type = 'dataframe')


model_1 = sm.OLS(X1,y1)
results_1 = model_1.fit()

model_2 = sm.OLS(X2,y2)
results_2 = model_2.fit()

print(X1,X2)
anova_lm(results_1,results_2)

Вот две матрицы, содержащие

model_1 independant variable matrix:

      Intercept  lstat
0          1.0   4.98
1          1.0   9.14
2          1.0   4.03
3          1.0   2.94
4          1.0   5.33
..         ...    ...
501        1.0   9.67
502        1.0   9.08
503        1.0   5.64
504        1.0   6.48
505        1.0   7.88

[506 rows x 2 columns] 

 model_2 independant variable matrix: 

      Intercept  lstat  np.power(lstat, 2)
0          1.0   4.98             24.8004
1          1.0   9.14             83.5396
2          1.0   4.03             16.2409
3          1.0   2.94              8.6436
4          1.0   5.33             28.4089
..         ...    ...                 ...
501        1.0   9.67             93.5089
502        1.0   9.08             82.4464
503        1.0   5.64             31.8096
504        1.0   6.48             41.9904
505        1.0   7.88             62.0944

[506 rows x 3 columns]

Вот фрейм данных:

    crim    zn  indus  chas    nox     rm   age     dis  rad  tax  \
0    0.00632  18.0   2.31     0  0.538  6.575  65.2  4.0900    1  296   
1    0.02731   0.0   7.07     0  0.469  6.421  78.9  4.9671    2  242   
2    0.02729   0.0   7.07     0  0.469  7.185  61.1  4.9671    2  242   
3    0.03237   0.0   2.18     0  0.458  6.998  45.8  6.0622    3  222   
4    0.06905   0.0   2.18     0  0.458  7.147  54.2  6.0622    3  222   
..       ...   ...    ...   ...    ...    ...   ...     ...  ...  ...   
501  0.06263   0.0  11.93     0  0.573  6.593  69.1  2.4786    1  273   
502  0.04527   0.0  11.93     0  0.573  6.120  76.7  2.2875    1  273   
503  0.06076   0.0  11.93     0  0.573  6.976  91.0  2.1675    1  273   
504  0.10959   0.0  11.93     0  0.573  6.794  89.3  2.3889    1  273   
505  0.04741   0.0  11.93     0  0.573  6.030  80.8  2.5050    1  273   

     ptratio   black  lstat  medv  
0       15.3  396.90   4.98  24.0  
1       17.8  396.90   9.14  21.6  
2       17.8  392.83   4.03  34.7  
3       18.7  394.63   2.94  33.4  
4       18.7  396.90   5.33  36.2  
..       ...     ...    ...   ...  
501     21.0  391.99   9.67  22.4  
502     21.0  396.90   9.08  20.6  
503     21.0  396.90   5.64  23.9  
504     21.0  393.45   6.48  22.0  
505     21.0  396.90   7.88  11.9  

[506 rows x 14 columns]
...