나는 시간별 해상도 (commoditiy price)를 갖는 5 년 시계열을 포함하는 .csv 파일을 가지고 있습니다. 과거 데이터를 바탕으로 6 학년 가격 예측을 만들고 싶습니다.통계 모델을 사용하여 예측
저는 이러한 유형의 절차에 관한 www에 관한 몇 가지 기사를 읽었습니다. 파이썬 (특히 통계 모델)과 통계에 대한 지식이 제한되어 있으므로 기본적으로 코드에 코드를 기반으로합니다.
그
는 관심이있는 사람들을위한 링크입니다 : 모든http://www.seanabu.com/2016/03/22/time-series-seasonal-ARIMA-model-in-python/이
http://www.johnwittenauer.net/a-simple-time-series-analysis-of-the-sp-500-index/
먼저, 여기에 .csv 파일의 샘플입니다. 이 경우 월별 해상도로 데이터가 표시됩니다. 실제 데이터가 아닙니다. 여기에 예제를 제공하기 위해 무작위로 숫자를 선택합니다 (이 경우 1 년이면 2 년차 예측을 개발할 수 있고, 전체 CSV 파일)로 볼 수 있습니다 :
입력 파일을 읽고 날짜 인덱스로 날짜 열을 설정 한 후 follwing을 스크립트에 대한 예측을 개발하는 데 사용 된 다음과 같이
Price
2011-01-31 32.21
2011-02-28 28.32
2011-03-31 27.12
2011-04-30 29.56
2011-05-31 31.98
2011-06-30 26.25
2011-07-31 24.75
2011-08-31 25.56
2011-09-30 26.68
2011-10-31 29.12
2011-11-30 33.87
2011-12-31 35.45
내 현재 진행 상황은 사용 가능한 데이터
model = sm.tsa.ARIMA(df['Price'].iloc[1:], order=(1, 0, 0))
results = model.fit(disp=-1)
df['Forecast'] = results.fittedvalues
df[['Price', 'Forecast']].plot(figsize=(16, 12))
, wh 내가 말했듯이, 나는 어떤 통계 능력이 없어하지 않고 내가 순서는 내부 속성 변경, 기본적으로이 출력 (에 도착 방법을 모르고 거의가 지금
: 무형 문화 유산은 다음과 같은 출력을 제공합니다 첫 번째 줄은 출력을 변경), '실제'예측은 상당히 좋아 보이며 또 다른 해 (2016)로 연장하고 싶습니다. 마지막으로
start = datetime.datetime.strptime("2016-01-01", "%Y-%m-%d")
date_list = pd.date_range('2016-01-01', freq='1D', periods=366)
future = pd.DataFrame(index=date_list, columns= df.columns)
data = pd.concat([df, future])
내가 statsmodels의 .predict 기능을 사용하는 경우 : 다음과 같이 그렇게하기 위해
은 추가 행은 dataframe에서 만든 내가 무엇을 얻을
data['Forecast'] = results.predict(start = 1825, end = 2192, dynamic= True)
data[['Price', 'Forecast']].plot(figsize=(12, 8))
예측은 예측과 같이 전혀 보이지 않는 직선입니다 (아래 참조). 또한, 현재 1825 번째에서 2192 번째 날 (2016 년)부터 6 년 전체 기간까지 범위를 확장하면 예측 기간은 전체 기간 (2011-2016)에 대한 직선입니다.
계절 변화 (이 경우에는 의미가 있음)를 설명하는 'statsmodels.tsa.statespace.sarimax.SARIMAX.predict'메소드를 사용하려고했지만 '모듈'에 대한 오류가 발생합니다. 'SARIMAX'속성이 없습니다. 그러나 이것은 2 차적인 문제이며, 필요하다면 더 자세히 설명 할 것입니다.
어딘가에 나는 그립을 잃고, 그리고 난 곳 아무 생각이 없습니다. 읽어 주셔서 감사합니다. 건배!
나는 비슷한 문제가 있습니다. 당신이 그것을 해결할 수 있었습니까? 고마워요 – kthouz
아니, 나는 그것을 해결하지 않았습니다. 내 작업에서 약간의 인터럽트가 있었기 때문에 어느 시점에서 그 값을 떨어 뜨 렸습니다. 다시는이 값으로 되돌아 가지 않습니다. – davidr