1

私はデータセットでパンダOLSを実行します。x値の時系列が20未満の場合、すべてが正常に機能します。pandas.olsが処理できる依存関係の最大数はありますか?これは私が行っていることですが、DataReaderでデータをフェッチする代わりにファイルにデータがあります。

from pandas import Series, DataFrame, ols
from pandas.io.data import DataReader
from DataContainer import DataContainer
import random

window = 21
basic = DataReader("BHI", "yahoo")
print len(basic)
dependance = 15

sp100 = [
            "AAPL", "ABT", "ACN", "AEP", "ALL", "AMGN", "AMZN", "APC",
            "AXP", "BA", "BAC", "BAX", "BK", "BMY", "BRK.B", "CAT", "C", "CL",
            "CMCSA", "COF", "COP", "COST", "CPB", "CSCO", "CVS", "CVX", "DD", "DELL",
            "DIS", "DOW", "DVN", "EBAY", "EMC", "EXC", "F", "FCX", "FDX", "GD", "GE",
            "GILD", "GOOG", "GS", "HAL", "HD", "HNZ", "HON", "HPQ", "IBM", "INTC",
            "JNJ", "JPM_1", "KFT", "KO", "LLY", "LMT", "LOW", "MA", "MCD", "MDT", "MET",
            "MMM", "MO", "MON", "MRK", "MS", "MSFT", "NKE", "NOV", "NSC", "NWSA",
            "NYX", "ORCL", "OXY", "PEP", "PFE", "PG", "PM", "QCOM", "RF", "RTN",
            "SBUX", "SLB", "SLE", "SO", "SPG", "T", "TGT", "TWX", "TXN", "UNH", "UPS",
            "USB", "UTX", "VZ", "WAG", "WFC", "WMB", "WMT", "XOM"
        ]

keys = random.sample(sp100, dependance)

data = {key: DataReader(key, "yahoo") for key in keys}
vals = {key: DataFrame(data=Series(data[key], name=key), index=basic.index) for key in data}
model = ols(y=basic, x=vals, window=window)

エラーは、依存関係> = 20になるとすぐに発生しますが、依存関係<20の場合は発生しません。vals dictが存在するのは、ローカルデータ構造がすべてのDataFrameに同じ名前を付けているためですが、これはolsが嫌いであり、DataFrameの名前を変更するためのより良い方法が見つかりませんでした。

4

1 に答える 1

0

OK、これは pandas 0.9.0 および/または statsmodels 0.4.2 のバグ/機能のようです。pandas 0.10.0 および statsmodels 0.5.0 にアップグレードすると、すべて正常に動作するようになりました。

于 2013-01-21T21:18:36.563 に答える