質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

835閲覧

時系列データについて

shosinnshadesu

総合スコア93

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/11/13 00:20

現在arimaを使って時系列データの予測をしようとしています。しかし、下のコードをやっても
画像のように予測が最初はできるのですが途中から直線になってしまいます。どうしたら良いのでしょうか?

python

1pip install git+https://github.com/statsmodels/statsmodels.git 2 3import pandas as pd 4import numpy as np 5import matplotlib.pyplot as plt 6import seaborn as sns 7import keras 8from sklearn.model_selection import train_test_split 9from statsmodels.graphics.tsaplots import plot_acf, plot_pacf 10from statsmodels.tsa.arima.model import ARIMA 11from sklearn.metrics import mean_squared_error 12from statsmodels.tsa.stattools import adfuller 13from statsmodels.graphics.tsaplots import plot_acf 14 15testla_df = pd.read_csv("/content/drive/MyDrive/stock/TSLA.csv") 16 17def preprocess(df): 18 df['Date'] = df['Date'].apply(lambda x: pd.to_datetime(x)) 19 df = df.set_index('Date') 20 df.drop(['Open', 'High', 'Low', 'Adj Close', 'Volume'], axis=1, inplace=True) 21 return df 22 23tesla_df = preprocess(testla_df) 24 25x = tesla_df.values 26 27train = x[:1000] 28test = x[1000: 29 30model = ARIMA(train, order=(3, 1, 1)) 31result = model.fit() 32 33predictions = result.forecast(steps=len(test)) 34 35plt.plot(predictions) 36

predictions

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

予測が最初はできるのですが途中から直線になってしまいます。

直線の予測をしているということです。
ARIMAというのはAR自己回帰とMA移動平均、そしてI階差を統合したモデルとなっています。

c.f. ARIMAモデル(自己回帰和分移動平均モデル)について分かりやすく解説!

c.f. 時系列データのパターンを明らかにする「自己回帰モデル」

AR部分は自己回帰で過去のパターンを繰り返すように学習しますが、MAの部分は過去の平均に近づくような学習をします。
過去が周期性がはっきりとした繰り返しの連続(サンプルデータのUKGASなど)であればそれを繰り返すような予測値を返しますが、株価のようなランダムウォーク(に近い)と呼ばれる値の場合は過去の周期性がほとんどないのでARでの学習が弱く、MAの学習で平均値となる水平な直線の予測結果となりがちです。

c.f. UKgasで時系列データ分析

ですので、

  • 周期性のあるデータの時系列分析を学びたいのであればUKgasのようなデータに取り組む
  • 株価など周期性のほぼないデータであればARIMAというのはこういうものだと理解し、より時系列分析の学習にはげむ(別の説明変数を入れたVARモデルなどがあります)

が後者の株価の予測ができたという話は聞いたことがありません。ガチの研究テーマの一つと思います。

投稿2021/11/21 09:30

aokikenichi

総合スコア2218

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問