11

pandas 0.11.0(データ処理)を使用してロジスティック回帰を行ってstatsmodels 0.4.3おり、Mac OSX Lionで実際の回帰を行っています。

~2,900 の異なるロジスティック回帰モデルを実行し、結果を csv ファイルに出力し、特定の方法でフォーマットする必要があります。

現在、私はprint result.summary()(次のように)結果をシェルに出力することだけを認識しています:

 Logit Regression Results                           
  ==============================================================================
 Dep. Variable:            death_death   No. Observations:                 9752
 Model:                          Logit   Df Residuals:                     9747
 Method:                           MLE   Df Model:                            4
 Date:                Wed, 22 May 2013   Pseudo R-squ.:                -0.02672
 Time:                        22:15:05   Log-Likelihood:                -5806.9
 converged:                       True   LL-Null:                       -5655.8
                                         LLR p-value:                     1.000
 ===============================================================================
                   coef    std err          z      P>|z|      [95.0% Conf. Int.]
 -------------------------------------------------------------------------------
 age_age5064    -0.1999      0.055     -3.619      0.000        -0.308    -0.092
 age_age6574    -0.2553      0.053     -4.847      0.000        -0.359    -0.152
 sex_female     -0.2515      0.044     -5.765      0.000        -0.337    -0.166
 stage_early    -0.1838      0.041     -4.528      0.000        -0.263    -0.104
 access         -0.0102      0.001    -16.381      0.000        -0.011    -0.009
 ===============================================================================

print np.exp(result.params)によって計算され、シェルに次のように出力されるオッズ比も必要です。

age_age5064    0.818842
age_age6574    0.774648
sex_female     0.777667
stage_early    0.832098
access         0.989859
dtype: float64

私が必要とするのは、これらのそれぞれが次のような非常に長い行の形式で csv ファイルに書き込まれることです (この時点では、次のようなものが必要かどうかはわかりませんがLog-Likelihood、完全を期すためにそれを含めました):

`Log-Likelihood, age_age5064_coef, age_age5064_std_err, age_age5064_z, age_age5064_p>|z|,...age_age6574_coef, age_age6574_std_err, ......access_coef, access_std_err, ....age_age5064_odds_ratio, age_age6574_odds_ratio, ...sex_female_odds_ratio,.....access_odds_ratio`

これらの実際の値がすべて含まれる非常に長い行と、同様の形式のすべての列指定を含むヘッダーが表示されます。

私はcsv modulePython の に精通しており、さらに に慣れてきていpandasます。~2,900 のロジスティック回帰モデルがすべて完了したら、この情報をフォーマットしてファイルに保存し、ファイルpandas dataframeに書き込むことができるかどうかはわかりません。to_csvそれは確かにいいでしょう。また、各モデルが完成するごとに書いても構いません( を使用csv module)。

アップデート:

そのため、statsmodels サイトを詳しく調べていました。具体的には、モデルの結果がクラス内にどのように格納されているかを把握しようとしていました。「Results」というクラスがあり、これを使用する必要があるようです。このクラスからの継承を使用して別のクラスを作成すると、必要なフォーマットを取得するために、メソッド/演算子の一部が変更される可能性があります。私はこれを行う方法についてほとんど経験がなく、これを理解するのにかなりの時間を費やす必要があります (これは問題ありません)。誰かが助けてくれる/経験があれば、それは素晴らしいことです!

クラスが配置されているサイトは次のとおりです: statsmodels results class

4

5 に答える 5

2
  • results.params : 係数用
  • results.pvalues : p 値用

ところで、 dir(results) を使用して、オブジェクトのすべての属性を見つけることができます

于 2014-07-07T14:09:32.930 に答える
1

実際には、ここのドキュメントに記載されている組み込みメソッドがあります。

f = open('csvfile.csv','w')
f.write(result.summary().as_csv())
f.close()

これは、要約をcsvファイルに出力するためのはるかに簡単な(そしてきれいな)方法だと思います。

于 2018-07-26T22:14:23.083 に答える