ValueError:the indices for endog and exog are not alignedソリューション

2862 ワード

次のコードを実行するとき
x = data1        # service    
y = data2
X = sm.add_constant(x)
result = (sm.OLS(y, X)).fit()
print(result.summary)

エラー:ValueError:the indices for endog and exog are not aligned
解決方法:
1、データ型の照合:サービスまたはdataframeタイプに関係なく、yとXのデータ型が一致しているかどうかに関係なく
2、検査データ長:len(y)とlen(X)の長さが一致する
3、lenの長さは一致しているが、データのインデックス値は異なることが分かった.問題はここにある.
私のxデータは、2つのdataframeデータがconcat方式で縦に統合されているため、データのインデックス値が異なります.
次の図を示します.
完全なデータは次のとおりです.
       date 
0    20180101
1    20180102
2    20180103
3    20180104
4    20180105
5    20180106

しかし、集計データは次のように表示されます.
       date 
0    20180101
1    20180102
2    20180103
3    20180104
0    20180105
1    20180106

計算に使用するサービスデータの2つのグループが、左側のインデックス値が異なるため、エラーが発生します.
ソリューション:
元のデータがdataframeでもサービスタイプでもlistタイプに変換されます.
Dataframeタイプデータを例に挙げると、
datalist = data['close'].tolist()                    #  dataframe   list
datalist = data + templist                           # list  
dataf = pd.DataFrame(datalist, columns=['close'])    # list   dataframe

前期のデータに対する一連の処理を経て、再びプログラムを実行し、エラーが消えた.
通常の表示:
                            OLS Regression Results
==============================================================================
Dep. Variable:                  close   R-squared:                       0.326
Model:                            OLS   Adj. R-squared:                  0.326
Method:                 Least Squares   F-statistic:                     1932.
Date:                Tue, 22 Jan 2019   Prob (F-statistic):               0.00
Time:                        14:34:33   Log-Likelihood:                -11706.
No. Observations:                4000   AIC:                         2.342e+04
Df Residuals:                    3998   BIC:                         2.343e+04
Df Model:                           1
Covariance Type:            nonrobust
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
const          6.8217      0.092     74.332      0.000       6.642       7.002
close          0.3305      0.008     43.951      0.000       0.316       0.345
==============================================================================
Omnibus:                      786.494   Durbin-Watson:                   0.009
Prob(Omnibus):                  0.000   Jarque-Bera (JB):             1384.316
Skew:                           1.260   Prob(JB):                    2.51e-301
Kurtosis:                       4.399   Cond. No.                         15.7
==============================================================================