相关疑难解决方法(0)

熊猫滚动回归:循环的替代方案

我得到了很好的利用了大熊猫的MovingOLS类(来源这里不推荐使用内)stats/ols模块.不幸的是,完全被大熊猫0.20摧毁了.

关于如何以有效的方式运行滚动OLS回归的问题已被多次询问(例如,这里),但在我看来,有点广泛地表达并没有得到很好的答案.

这是我的问题:

  1. 我怎样才能最好地模仿大熊猫的基本框架MovingOLS?这个类最吸引人的特点是能够将多个方法/属性视为单独的时间序列 - 即系数,r平方,t-统计等,而无需重新运行回归.例如,您可以创建类似model = pd.MovingOLS(y, x),然后调用.t_stat,.rmse,.std_err,等.在下面的示例中,相反,我没有看到被迫分别计算每个统计信息的方法.有没有一种方法不涉及创建滑动/滚动"块"(步幅)和运行回归/使用线性代数来获取每个模型参数?

  2. 更广泛地说,大熊猫在幕后发生了什么使得rolling.apply无法采用更复杂的功能?*当你.rolling用外行的术语创建一个对象时,内部发生了什么 - 它与循环每个窗口和创建一个根本不同我正在做下面的高维数组?

*即func传递给.apply:

必须从ndarray输入生成单个值*args和**kwargs传递给函数

以下是我目前处理的一些样本数据,回归贸易加权美元对利率差价和铜价的百分比变化.(这没有多大意义;只是随机选择它们.)我已经从基于类的实现中取出它并尝试将其剥离为更简单的脚本.

from datetime import date
from pandas_datareader.data import DataReader
import statsmodels.formula.api as smf

syms = {'TWEXBMTH' : 'usd', 
        'T10Y2YM' : 'term_spread', 
        'PCOPPUSDM' : 'copper'
       }

start = date(2000, 1, 1)
data = (DataReader(syms.keys(), 'fred', start)
        .pct_change()
        .dropna())
data = data.rename(columns …
Run Code Online (Sandbox Code Playgroud)

python numpy linear-regression pandas statsmodels

31
推荐指数
2
解决办法
7689
查看次数

标签 统计

linear-regression ×1

numpy ×1

pandas ×1

python ×1

statsmodels ×1