2017-06-14 32 views
1

私はstatsmodels.formula.apiを使用して線形回帰を行います。私は予測のために3つの独立変数を使用しました。いくつかのケースでは、私は負の値を得ていますが、すべての出力は正でなければなりません。statsmodel.formula.api pythonの線形回帰

出力に負の値を設定できないことをモデルに伝える方法はありますか?

答えて

1

正または負の従属変数(または応答変数または出力変数)をモデル化する標準的な方法の1つは、指数平均関数を仮定することです。

共変量が与えられたときの応答の期待値はE(y | x)= exp(x b)です。

これをモデル化する1つの方法は、Poisson回帰を使用することです。統計モデルPoissonまたはGLMとPoissonファミリを使用します。ポアソンが連続変数の正しい尤度ではないとすれば、ミススペックミングのパラメータ推定値の共分散を調整する必要があります。cov_type='HC0'です。つまり、準最大可能性を使用しています。

output1 = smf.poisson(formula= 'y ~A+B+C', data= data).fit(cov_type='HC0')

及び代替は、暗黙的に対数正規モデルを前提とし、応答変数を、ログに記録するだろう。

http://blog.stata.com/2011/08/22/use-poisson-rather-than-regress-tell-a-friend/ https://stats.stackexchange.com/questions/8505/poisson-regression-vs-log-count-least-squares-regression

注意、statsmodelsはポアソン、二項、ロジットおよび同様で応答変数が整数であることを課していないので、我々は連続データと準最尤推定のためにこれらのモデルを使用することができます。

+0

詳細な説明をいただきありがとうございます。今では、線形の代わりに他のモデルを使用する方法を理解しています。ありがとうございました! – bikuser

1

モデルの出力値がある範囲内に収まるようにするには、線形回帰はおそらく適切な選択ではありません。ロジスティック回帰や、出力が既知の範囲内に収まる何らかのモデルが必要なように思えます。あなたが望むモデルの種類を決定することは、CrossValidatedの質問かもしれません。

言われていることは、事後の予測を簡単に制約することができます。すべての否定的な予測を0に設定するだけです。これが意味をなさないかどうかは異なる質問です。