質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.53%

  • Python 3.x

    6295questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • pandas

    572questions

    Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

  • Stata

    1questions

Python statsmodels summaryの出し方

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 257

ak_miyamoto

score 23

初学者です。

statsmodels.sandbox.regression.gmm.IV2SLS(ソース)のfitモジュールを用いデータを分析したのですが、サマリの可視化の仕方がわかりません。

import pandas as pd

data = pd.read_csv("filename.csv")

result = ssrg.IV2SLS(endog = data["y"], exog = data["c"], instrument = data[["iv1","iv2"]]).fit()

print(result)

とすると、

>>> 
<statsmodels.regression.linear_model.RegressionResultsWrapper at 0x2668f448208>

としか表示されません。
ここから、

※別の例から引用
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                Lottery   R-squared:                       0.348
Model:                            OLS   Adj. R-squared:                  0.333
Method:                 Least Squares   F-statistic:                     22.20
Date:                Mon, 14 May 2018   Prob (F-statistic):           1.90e-08
Time:                        21:48:09   Log-Likelihood:                -379.82
No. Observations:                  86   AIC:                             765.6
Df Residuals:                      83   BIC:                             773.0
Df Model:                           2                                         
Covariance Type:            nonrobust                                         
===================================================================================
                      coef    std err          t      P>|t|      [0.025      0.975]
-----------------------------------------------------------------------------------
Intercept         246.4341     35.233      6.995      0.000     176.358     316.510
Literacy           -0.4889      0.128     -3.832      0.000      -0.743      -0.235
np.log(Pop1831)   -31.3114      5.977     -5.239      0.000     -43.199     -19.424
==============================================================================
Omnibus:                        3.713   Durbin-Watson:                   2.019
Prob(Omnibus):                  0.156   Jarque-Bera (JB):                3.394
Skew:                          -0.487   Prob(JB):                        0.183
Kurtosis:                       3.003   Cond. No.                         702.
==============================================================================


のようなよくある結果をプリントしたいのですが、どうしたらよいでしょうか。
なお

results.summary()


としても

---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-121-c942b82acb49> in <module>()
----> 1 result.summary()

~\Anaconda3\lib\site-packages\statsmodels\sandbox\regression\gmm.py in summary(self, yname, xname, title, alpha)
325 top_right = [('R-squared:', ["%#8.3f" % self.rsquared]),
326 ('Adj. R-squared:', ["%#8.3f" % self.rsquared_adj]),
--> 327 ('F-statistic:', ["%#8.4g" % self.fvalue] ),
328 ('Prob (F-statistic):', ["%#6.3g" % self.f_pvalue]),
329 #('Log-Likelihood:', None), #["%#6.4g" % self.llf]),

~\Anaconda3\lib\site-packages\statsmodels\tools\decorators.py in __get__(self, obj, type)
95 if _cachedval is None:
96 # Call the "fget" function
---> 97 _cachedval = self.fget(obj)
98 # Set the attribute in obj
99 # print("Setting %s in cache to %s" % (name, _cachedval))

~\Anaconda3\lib\site-packages\statsmodels\sandbox\regression\gmm.py in fvalue(self)
217 restriction = np.eye(k_vars)
218 idx_noconstant = lrange(k_vars)
--> 219 del idx_noconstant[self.model.data.const_idx]
220 fval = self.f_test(restriction[idx_noconstant]).fvalue # without constant
221 return fval

TypeError: list indices must be integers or slices, not NoneType


となってしまいます。ソースを読んでもいまいちよくわかりません。
教えて下さると幸いです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

+1

当該関数の使用経験はありませんが、statsmodelsの標準的仕様からいうと、.summary()メソッドを使うといいかと思います。使用対象は学習後のオブジェクトになるので、今回の場合はresultになるはずです

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/05 10:22

    ご回答ありがとうございます。上記試してみたのですが、エラーが出てきてしまいます。
    これはどのようなことなのでしょうか。よろしければ教えて下さると幸いです。
    ```
    result.summary()

    >>>
    ---------------------------------------------------------------------------
    TypeError Traceback (most recent call last)
    <ipython-input-121-c942b82acb49> in <module>()
    ----> 1 result.summary()

    ~\Anaconda3\lib\site-packages\statsmodels\sandbox\regression\gmm.py in summary(self, yname, xname, title, alpha)
    325 top_right = [('R-squared:', ["%#8.3f" % self.rsquared]),
    326 ('Adj. R-squared:', ["%#8.3f" % self.rsquared_adj]),
    --> 327 ('F-statistic:', ["%#8.4g" % self.fvalue] ),
    328 ('Prob (F-statistic):', ["%#6.3g" % self.f_pvalue]),
    329 #('Log-Likelihood:', None), #["%#6.4g" % self.llf]),

    ~\Anaconda3\lib\site-packages\statsmodels\tools\decorators.py in __get__(self, obj, type)
    95 if _cachedval is None:
    96 # Call the "fget" function
    ---> 97 _cachedval = self.fget(obj)
    98 # Set the attribute in obj
    99 # print("Setting %s in cache to %s" % (name, _cachedval))

    ~\Anaconda3\lib\site-packages\statsmodels\sandbox\regression\gmm.py in fvalue(self)
    217 restriction = np.eye(k_vars)
    218 idx_noconstant = lrange(k_vars)
    --> 219 del idx_noconstant[self.model.data.const_idx]
    220 fval = self.f_test(restriction[idx_noconstant]).fvalue # without constant
    221 return fval

    TypeError: list indices must be integers or slices, not NoneType
    ```

    キャンセル

  • 2018/07/05 17:32

    summaryメソッドはIVRegressionResultsのメソッドのようで、IV2SLSにはないようです。私自身、この関数は未経験なので両者の相違がわかっていませんが、同じ機能であれば、こちらを使ったほうがいいかもしれません

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.53%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Python 3.x

    6295questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • pandas

    572questions

    Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

  • Stata

    1questions