2016-06-29 11 views
0

大量のデータに対してOLSを使用してモデルを構築しました。特定のベクトルxについての予測結果統計モデル線形回帰を使用

results = smf.ols(formula='ind ~ Age + C(County) + C(Class)', data=df).fit() 

私は入力ベクトルXにユーザーを可能にするメソッドを実装したいと、それは回帰に基づくyを返さなければならないと思います。私は統計モデルの "予測"と "予測"の機能を調べましたが、それは私が探していたものではないようでした。

だから例えば、私は何をしたいのは、次のとおりです。

## Although the following is wrong, It shows what I'm trying to do: 
def forecast_y(X): 
     return results.forecast(X) 


## example: 
print forecast_y([1, 3, 4]) 
# the model should return 
4.53 

答えて

1

私は右、あなたがなぜドンであるyのインサンプル予測を、望んでいないことを取得していた場合predictメソッドを使用する必要はありません。代わりに、任意のx値をプラグインし、予測された係数に基づいてyの値を取得できますか?

それはあなたの例から続けて、ケースの場合:

params = results.params #vector of your coefficients 
arbitrary_x = np.array([.5, .5, .5...]) #whatever x values you want to test, with the constant first 

assert(len(params) == len(arbitrary_x)) 

arbitrary_y = (params * arbitrary_x).sum() 

私は読者に、このの意味を理解残しておきますが、注意して使用します。

+0

それがうまくいった!ありがとう:)あなたのための質問。個々の予測の「正確さ」を判断する方法はありますか? – dassouki

+1

サンプル内では、単に 'results.pvalues 'を実行することができます。しかし、pvalues *はあなたがモデルを正しく取得していると仮定しているため、モデルを試している場合は、モデルを解釈しようとする際に注意する必要があります。 – Jeff

+0

私はR2 = 0.6で静かです。しかし、モデルがより高い値よりも「低い」値を予測する方がモデルが優れているのだろうか。その場合、任意の予測が正確である確率は上がったり下がったりするのだろうか? – dassouki

関連する問題