2016-09-26 15 views
0

私はStatsModelsから次のOLSモデルを持っている:StatsModels予測関数に渡される最初の値は何ですか?

X = df['Grade'] 
y = df['Results'] 

X = statsmodels.tools.tools.add_constant(X) 

mod = sm.OLS(y,X) 
results = mod.fit() 

4のX値のための新しいY値を予測しようとすると、私は次のように合格する必要があります。

results.predict([1,4]) 

私は「ドン最初の値が '1'である配列を、予測関数が正しく機能するために渡す必要がある理由を理解しています。

results.predict([4]) 

私はここに仕事で概念上明確ではないよ:なぜ私は1だけではなく言ってのを含める必要があります。誰が何が起こっているのか分かっていますか?

+0

results.predict([1,4])でコードを実行するときに表示されるエラーメッセージを入力してください。 –

+0

results.predict9 [1,4]と正しく動作します。 results.predict([4])を実行すると、次のエラーメッセージが表示されます。 ValueError:図形(1,1)と(2)が整列していません:1(dim 1)!= 2(dim 0) '1'の意味は何ですか?最初の値として '0'を渡すと、別の数値が予測されます。 – user3294779

答えて

1

回帰式に定数を追加するのは、X = statsmodels.tools.tools.add_constant(X)です。したがって、回帰Xには2つの列があり、最初の列は1の列です。

予測に使用されている回帰分析で同じことを行う必要があります。従って、1手段は予測に定数を含む。代わりにゼロを使用すると、定数(0 * params[0])の寄与はゼロになり、予測はスロープ効果のみになります。

式インターフェイスは、モデルの回帰子と予測の回帰子の両方に自動的に定数を追加します。ただし、pandas DataFrameまたはnumpy ndarrayインターフェイスでは、モデルと予測の両方でユーザーが定数を追加する必要があります。

+0

ブリリアント。ありがとうございました! – user3294779

関連する問題