3

pandasPythonで Winsorized 回帰を実行しようとしています。非常に役立つユーザー マニュアルには、次のサンプル コードが記載されています。

winz = rets.copy()
std_1year = rolling_std(rets, 250, min_periods=20)
cap_level = 3 * np.sign(winz) * std_1year
winz[np.abs(winz) > 3 * std_1year] = cap_level
winz_model = ols(y=winz['AAPL'], x=winz.ix[:, ['GOOG']],window=250)

4 行目は間違っているように見えます: RHS はcap_level[np.abs(winz) > 3 * std_1year]?

助けてくれてありがとう!私はまだ Pandas データフレームを使用するのが初めてで、正しく理解していることを確認したいと考えています。

4

1 に答える 1

2

編集:申し訳ありませんが、質問を誤解しました!

ほとんどのタイプでこれが間違っていることは間違いありません。ただしpandas.DataFrame、ブール値マスクを使用して値を設定するための特別なサポートがあります。対応する時間値を持つ RHS から対応する値を選択します。ボンネットの下で使用していnp.putmaskます。

これを自分で確認できます:

>>> df = pandas.DataFrame(np.linspace(0.0, 1.0, 10).reshape(5, 2))
>>> df[df > 0.5] = -df
>>> df
          0         1
0  0.000000  0.111111
1  0.222222  0.333333
2  0.444444 -0.555556
3 -0.666667 -0.777778
4 -0.888889 -1.000000
于 2012-07-02T16:31:03.927 に答える