はじめに
株式会社インプルの奈良です。
この記事は、数学的素養皆無のTHE・文系出身の駆け出しエンジニアが機械学習・AI・ディープラーニングを用いたAIアプリ開発に向けての自己学習記事の備忘録になります。
背景として現在、昔からの友人ととあるAIアプリ開発を企画しています。
そのAIアプリ開発において、機械学習やディープラーニングによる時系列予測のキャッチアップが必要になったため、学習した内容の復習を兼ねてアウトプットするための記事をいくつかに分けて投稿したいと思います。
時系列データとは
時系列データとは、時間の経過に沿って一定の間隔で記録されたデータのことを指します。
ある特定の順序、特に時間によって順序付けされた一連のデータ点で、時間は秒単位から年単位まで、データの性質によります。
例として、毎日の天気予報をあげます。
ある特定の場所で毎日午前9時に天気(晴れ、曇り、雨など)を記録するとします。
この①特定の地点・②午前9時という時間・③天気の3つの記録は日々蓄積され、それぞれの記録は特定の日付と関連付けられます。これらの記録の一連のリストが時系列データです。(DBの主キーに紐づくデータ・リレーションのようなもの)
このデータを見ることで、過去の天気のパターンを理解したり、そのパターンから未来の天気を予測したりすることが可能になります。
他の時系列データの例としては、日々の株価、ウェブサイトの訪問者数、月ごとの製品の販売数、季節ごとの気温の変化などがあります。これらのデータすべてが時間によって順序付けられ、特定の時間間隔で収集されます。
時系列データ分析について
時系列データ分析とは、時間の経過に沿って収集されたデータ(時系列データ)を解析する一連の手法を指します。
時系列データ分析の目的は、データの中に存在する規則性やパターンを理解し、未来の値を予測することが多いです。
以下に、時系列データ分析の主な手法とその内容についてまとめました。
- トレンド分析: データが時間経過とともに上昇または下降しているかを調べるためのもの。例えば、会社の年間売上が一貫して増加している場合、そのトレンドは上向き。
- 季節性分析: 時系列データには、年間を通じて規則的に繰り返されるパターンが含まれている場合があります。これを季節性と呼びます。例えば、アイスクリームの売上は夏にピークを迎え、冬には減少するという季節性があります。
- サイクリック分析: サイクリック分析は季節性と似ていますが、サイクルが一定の期間で繰り返されるとは限らないパターンを調べます。たとえば、経済のブームとバストのサイクルは一定の期間で起こるわけではないため、これはサイクリックな動きと考えることができます。
- 異常検知: 異常検知は時系列データから予期しない大きな変動や異常値を見つけ出す手法です。例えば、ウェブサイトの訪問者数が突然大幅に増えた場合、これは異常と見なすことができます。
これらの分析を行うためには、統計学的な手法(自己相関、移動平均、指数平滑など)や機械学習モデル(ARIMA、状態空間モデル、深層学習など)が使われます。
上記の手法を適用することで、過去のデータを基に未来の予測を行ったり、異常な状態を早期に検出したり、一般的な傾向を理解したりすることが可能になります。
時系列データ分析は、経済、金融、マーケティング、気象予報、製品の需要予測など、あらゆる分野で活用されています。