次のような方程式のアルファ(a)値を見つけたいとしましょう。
y=a+ax1+ax2+...+axi
OLSを使用して、i = 2の基本的なケースの10個の値から始めましょう。
#y=a+ax1+ax2
y = np.arange(1, 10)
x = np.array([[ 5, 10], [10, 5], [ 5, 15],
[15, 20], [20, 25], [25, 30],[30, 35],
[35, 5], [ 5, 10], [10, 15]])
statsmodelを使用すると、通常、次のコードを使用してnx1xおよびy配列のルートを取得します。
import numpy as np
import statsmodels.api as sm
X = sm.add_constant(x)
# least squares fit
model = sm.OLS(y, X)
fit = model.fit()
alpha=fit.params
ただし、xがyと等しくない場合、これは機能しません。式は、ここにあなたが何OLSがわからない場合は、最初のページに。
トレースバックは何が問題なのかを教えてくれます
raise ValueError("endog and exog matrices are different sizes")
ValueError: endog and exog matrices are different sizes
xには10個の値があり、yには9個の値があります。回帰は、両方の観測数が同じである場合にのみ機能します。
endogはy、exogはxです。これらは、独立変数と説明変数のstatsmodelsで使用される名前です。
あなた置き換える場合y
によっては
y = np.arange(1, 11)
その後、すべてが期待どおりに機能します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加