在所有 pandas 数据框列上应用 statsmodels 自回归函数
Applying statsmodels Autoregression function on all pandas dataframe columns
我正在尝试在 pandas 数据帧中的某些数据上拟合自回归模型。
我当前的代码:-
import pandas as pd
import statsmodels.tsa.api as smt
store=[]
df = pd.DataFrame({'A':[0.345, 0.985, 0.912, 0.645, 0.885, 0.121],
'B':[0.475, 0.502, 0.312, 0.231, 0.450, 0.234],
'C':[0.098, 0.534, 0.125, 0.984, 0.236, 0.734],
'D':[0.345, 0.467, 0.935, 0.074, 0.623, 0.469]})
for i in range(len(df.columns)):
x=smt.AR(df.iloc[:,i]).fit(maxlag=1, ic='aic', trend='nc')
store.append(x)
我想知道我是否可以使用 apply 或 applymap 或 lambda 函数来代替 for 循环
我无法测试它,因为我没有这些包,但从 .apply()
's docs 中给出的示例来看,您应该可以这样做:
def fit_it(vector):
return smt.AR(vector).fit(maxlag=1, ic='aic', trend='nc').params[0]
results = df.apply(fit_it, axis=0, reduce=True)
我正在尝试在 pandas 数据帧中的某些数据上拟合自回归模型。
我当前的代码:-
import pandas as pd
import statsmodels.tsa.api as smt
store=[]
df = pd.DataFrame({'A':[0.345, 0.985, 0.912, 0.645, 0.885, 0.121],
'B':[0.475, 0.502, 0.312, 0.231, 0.450, 0.234],
'C':[0.098, 0.534, 0.125, 0.984, 0.236, 0.734],
'D':[0.345, 0.467, 0.935, 0.074, 0.623, 0.469]})
for i in range(len(df.columns)):
x=smt.AR(df.iloc[:,i]).fit(maxlag=1, ic='aic', trend='nc')
store.append(x)
我想知道我是否可以使用 apply 或 applymap 或 lambda 函数来代替 for 循环
我无法测试它,因为我没有这些包,但从 .apply()
's docs 中给出的示例来看,您应该可以这样做:
def fit_it(vector):
return smt.AR(vector).fit(maxlag=1, ic='aic', trend='nc').params[0]
results = df.apply(fit_it, axis=0, reduce=True)