我在python中使用ARIMA方法,并在Train和Test split中拆分数据。
我的理解是,如果我使用np.log
和diff()
,我可以将其转换为np.exp
和cumsum()
。以下示例来自stackoverflow并正在工作:
import pandas as pd
import numpy as np
np.random.seed(0)
s = pd.Series(np.random.uniform(10,10000, size=50))
df = s.to_frame()
df.columns = ['test']
df['new'] = np.log(df['test']).diff()
df['new'][0] = np.log(df['test'][0])
df['reserve'] = np.exp(df['new'].cumsum())
测试和保留的结果匹配1到1。 但是,如果我拆分数据框:
df['new'] = np.log(df['test']).diff()
df['new'][0] = np.log(df['test'][0])
df2 = df[-30:]
df2['reserve'] = np.exp(df2['new'].cumsum())
这不再匹配,我认为是因为cumsum(),但是解决方法是什么?我将对这部分数据进行预测,那么如何获得对df ['test']的原始大小有意义的保留列,或者根本不起作用?