Преобразовать (прогнозируемое) значение с помощью log и diff обратно в исходный формат - PullRequest
0 голосов
/ 14 июня 2019

Я использую подход ARIMA в python, и я разделяю данные в разделении Train и Test. Как я понял, если я использую 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'] или он не работает вообще?

...