Python-Statsmodels-不同的输入类型导致不同的输出类型?

问题描述 投票:0回答:1

我当时使用Statsmodel训练一些时间序列模型,发现某些输出的数据类型将根据输入类型而有所不同,而我期望输出的类型与输入类型无关。

我的问题是,这在statsmodels(以及其他软件包,例如sklearn)中是否正常?如果没有,处理这种情况的正常/标准/惯例方式是什么?

我在下面有一个例子。如果我使用pandas.Series作为输入,那么statsmodels的输出bse将是pandas.Series。如果输入为list,则输出为np.array

from statsmodels.tsa.arima_model import ARIMA

x1 = pd.Series([1.5302615469999998,1.130221162,1.059648341,1.246757738,0.98096523,1.173285138,
1.630229825,1.6447988169999999,1.753422,1.7624994719999998,1.60655743,1.7999185709999999,
1.7284643419999999,1.74167109,1.606315199,1.510957898,1.38138611,1.4421003190000001,1.172060761,
0.978149498,0.878831354,0.802660206])

x2 = [s for s in x1]

model1 = ARIMA(x1, order=(1,1,0))
model2 = ARIMA(x2, order=(1,1,0))

model_fit1 = model1.fit(disp=False)
model_fit2 = model2.fit(disp=False)

model_fit1.bse #outputs pandas series
model_fit2.bse #outputs numpy array
python types statsmodels conventions
1个回答
0
投票

这适用于所有或大多数模型以及statsmodels中的许多功能。它是熊猫支持的一部分。

Pandas Series或DataFrame提供了索引和其他信息,例如设计矩阵的列名,并且模型和许多函数尝试保留它并返回具有适当索引的Series或DataFrame。]

如果可能的话,任何其他类型都将转换为numpy数组(np.asarray),这些数据结构具有的任何其他信息都将被忽略。

因此规则是,如果用户使用熊猫,则代码假定用户希望返回匹配的熊猫数据结构。可以将其扩展到除大熊猫以外的其他数据结构,但目前尚无计划支持其他软件包中的数据结构。

© www.soinside.com 2019 - 2024. All rights reserved.