時系列データとは - MATLAB & Simulink

時系列データ

時系列データの利用

時系列データとは、時間の経過に沿った各時点で収集または記録された連続したデータポイントのことです。時系列データは広く普及しており、特に自動車業界ではセンサーデータが本質的に時系列です。また科学研究分野では海洋測定や気候分析などのデータが、金融業界では株価やさまざまな指標が時系列データとして利用されています。タイムスタンプが解析に必須でない場合でも、データに時系列処理が必要になることがあるため、ユーザーが日常的に関わる重要な要素となります。

時系列データの扱いは難しいこともありますが、データ解析に携わる人にとっては欠かせないスキルです。本ガイドでは、よくある質問への回答を紹介し、今後の時系列データを用いた今後のプロジェクトの成功に役立つ貴重なリソースを提供します。

65 年間にわたる時系列データの 2D プロット。

MATLAB で可視化された時系列データ。時系列とは、時間の経過に沿って順に記録されたデータポイントの集合です。(コードを参照)

時系列データの主な特徴は何ですか?

時系列データを表す 3 つのラインプロット。分類の重要性を示すためにプロットの一部が強調表示されています。

時系列データの分類を理解するために、MATLAB で Grad-CAM などの可視化を行うことができます。(コードを参照)

時系列データには経時的な要素、つまり、時間が関係しています。重要なのは、それが連続したデータであり、データポイントが時間の経過に沿って順に収集または記録されているということです。これは通常、分、秒、日といった規則的な間隔を意味しますが、規則性は必ずしも必要ではなく、タイムスタンプがあることが重要です。データセットにタイムスタンプが含まれており、時間に関する並べ替えや解析が必要であれば、それは時系列データであると言えます。時系列データは、気象予報や金融分析など、時間の経過に沿ったデータポイントの順序が洞察や予測に影響を与える分野で広く利用されています。

時系列データの特徴は、時間を表す列があり、その列が概して順序付けられていることです。特定の時間値に対する測定値を表し、その範囲がミリ秒から 1 日単位になる場合もあります。同じ時系列内でデータに異なるサンプルレートが採用されていることもあります。時系列データは、特定の時点でのデータポイントだけでなく、日次や週次のサマリーのように、一定期間にわたる測定値を表すこともあります。

時系列データはどのように解析するのですか?

MATLAB® には、時系列データの事前処理に使用できる多くの組み込みアプリと関数が用意されています。どの手法を選択するかは、データの扱い方やクリーニングプロセスの習熟度に応じて異なります。時系列データの扱いに慣れていない方は、まずデータ クリーナー アプリなどの対話型アプリから始めるのが最適です。このアプリには、初期のデータ探索やクリーニングを直感的に行えるインターフェイスが備わっています。同期やリサンプリングなどの特定の目的には、ライブ エディター タスクが役立ちます。関数を知っていて、コーディングを好む方は、コマンドライン関数を直接使用することもできます。

時間領域と時間-周波数領域の信号を表した 4 つの可視化手法。

MATLAB の信号アナライザーアプリ。(ドキュメンテーションを参照)

時系列データを扱う上で重要な 2 つの要素は、同期とリサンプリングです。同期とは、タイムスタンプに基づいてデータポイントを整列させることで、データセットの比較を可能にし、解析の精度を高めます。リサンプリングは、特定の解析目標に合わせたデータポイントの頻度の調整に不可欠です。MATLAB では、特定の時点でデータセットを結合する際に役立つ synchronize コマンドと retime コマンドが用意されています。こうした関数に慣れていない方は、ライブ エディター タスクを利用することで、関数を対話形式に適用して、さまざまなオプションを試すことができます。

時系列解析には多くの手法がありますが、主なものはトレンド解析と季節性変動の 2 つのアプローチです。

  • トレンド解析とは、データの長期的な動向を特定して解析することで全体的な方向性を把握する手法で、情報に基づいた予測や意思決定を行う際に役立ちます。
  • 季節性変動は、年、月、日など、特定の周期ごとに繰り返される規則的なパターンを検出してモデル化する手法です。センサーの場合、この周期がさらに細分化されることがあります。自動車業界のエンジニアは、ナノ秒またはマイクロ秒単位の周期を考慮する必要があり、それが予測の精度に影響を与える極めて重要な要素となります。

MATLAB には、データクリーニング、可視化、高度なモデル化のための組み込み関数など、これらの手法を効率的に実行するためのツールや関数が用意されています。timetable テーブル型は、特に時系列データの整理と管理に役立ちます。一方、信号アナライザーアプリは、信号を対話形式で可視化して解析できる強力なプラットフォームを提供します。

エンジニアが直面する時系列データに関する課題とは何ですか?

エンジニアは、センサーの不具合による欠損データの処理、外れ値の対応、データ内のノイズ管理といった課題に直面することがよくあります。通常、時系列データを効果的に使用してモデル化するには、事前にクリーニングと準備が必要です。

時系列データが正しく順序付けられ、整理されているようにすることが大きな課題となっています。データに大規模な処理の必要性がない場合でも、解析や機械学習モデルのために論理的に構造化されている必要があります。季節性やトレンドを理解することは極めて重要です。これらのパターンが本物の特徴ではなく、人為的なものである可能性があるからです。これに対処しなければ、モデルを誤った方向に導く可能性があり、特にディープラーニングでは誤ったパターンが恒久化されてしまう恐れがあります。さらに、エンジニアは複雑な解析に取り組む前に、季節性や定常性といった時系列の基本をしっかりと理解しておく必要があります。工学の経歴がなく、主に機械学習の分野に従事している場合には、こうした基礎的な知識が不足している傾向があります。

MATLAB ユーザーには特に別の課題があり、「時系列」という概念と MATLAB の timeseries オブジェクトを混同してしまうことがあります。「時系列」は検索するが、時間ベースのデータを扱う際により高度な機能を提供する timetable 機能は知らないというユーザーが数多くいます。MATLAB で timetable を使用すると、可視化やデータ準備などのタスクの実行が可能になります。効果的な時系列データ管理に欠かせない同期などの高度な処理もサポートしています。

マルチレートデータを 1 つのデータセットに同期する様子を示すアニメーション。時間が調整され、それに応じてデータがリサンプリングされます。

今後、MATLAB の開発では timetable 機能に重点を置く予定です。従来の timeseries オブジェクトは現在メンテナンスモードになっています。この取り組みにより、より優れた機能が実現し、時系列データを扱う MATLAB ユーザーをより効果的にサポートできるようになります。

次のステップとして、エンジニアはどこを目指すべきですか?

タイムスタンプ付きのデータの 2 つのラインプロットと、次のステップとしての一連のボタンを表示したスクリーンショット。

MATLAB のデータ クリーナー アプリを使用した時系列データの前処理と整理。(ドキュメンテーションを参照)

MATLAB には、時系列データをクリーニングするためのツールや関数がいくつか用意されています。コーディングを行う場合はコマンドライン関数を使用できます。また、データ クリーナー アプリやライブ エディター タスクなどのローコード機能を活用することもできます。これらのツールは、データを同期したり、線形内挿などの手法を使って欠損値を補間したりするのに役立ちます。

次のステップはアプリケーションによって異なりますが、以下の 4 つの選択肢があります。

  • 例: 信号処理や周波数領域に関する例をご覧ください。参考になるより高度な技術を紹介しています。
  • 信号処理入門: 信号処理入門は、その概念や信号データ処理に初めて取り組むユーザーにとって最適な出発点となります。
  • ディープラーニングと機械学習の例: ディープラーニングや機械学習における時系列予測の例をご覧ください。関連技術や応用方法を理解することができます。
  • リアルタイム アプリケーション: リアルタイム処理やモデルの更新に興味がある方は、ストリーミング アプリケーションをご検討ください。ただし、リアルタイム アプリケーションに取り組む前に、基礎的な概念を理解しておくことが重要です。

参考: 時系列解析