Pythonでは、Y、X1、X2、X3というラベルの列があるパンダデータフレームがあるとします。 私はX1、X2、X3でYに対してOLS回帰を実行します。 ループを使用して回帰からの係数をリストに格納します。 ループ内の関数の引数を変更するにはどうすればよいですか? 次のコードは機能しません。ループ(Python)で関数の引数を変更する方法は?
import pandas as pd
import statsmodels.api as sm
ols = sm.OLS(df[['Y']],(df[['X_1','X_2','X_3']]))
olsfit = ols.fit(cov_type='HC0')
coef = []
for i in range(4):
coef.append(olsfit.params.X_i)
なぜループが必要ですか?モデルオブジェクトには、すべてのモデルパラメータの係数を含む 'params'属性があります。 – ako
それは良い点です。多くの他の退行者がいるとしましょう。 Z_1、... Z_100、そしてX_1、...、X_N係数だけを抽出したいのですか? – DaveK
paramsはこの場合pandas.Seriesであり、いくつかの個別のパラメータを選択するためにインデックスを付けたり、numpy配列に変換してnumpyインデックスを使用したりすることができます。 – user333700