top of page

​Workshop開催実績レポート

​ワークショップ開催の様子をレポートします。

同じようなワークショップ開催やカスタマイズした教材による

​イベント開催サービスを提供しております。

​社会人向けプログラミング講座やハッカソンにもご活用いただけます。

DALL·E 2024-01-25 12.40.31 - Create an image that aligns with the tone and manner of Promp

データAI解析のマスタリー

〜 高知県IoPクラウド「SAWACHI」

データAI解析 Workshop 〜

はじめに

 こんにちは。エンジニアの菊永です。

 

 今回は弊社の対外的な特徴として位置付けられている「時系列データ」の分析に関する知見や最新のAI関連技術を絡めたノウハウを公開・提供するWorkshopを開催しましたのでその内容についてご紹介します。

 

このWorkshopを開催した目的は大きく3つあります。

 

  • 主に時系列データの分析・予測の概念を理解してもらう。

  • IoPクラウド「SAWACHI」のデータ利活用を促進する。

  • 参加者の皆さんには各社におけるエバンジェリストになって頂く。

 

時系列データは私たちの身近にも数多く存在していて日々目にするものの、実は他のデータと比べるとその特殊性から、分析や予測となると少し敷居が高く感じてしまう領域でもあります。そこで、今回も ChatGPT にアシスタントとして支援してもらいながら、データ分析や予測をハンズオンを交えて皆さんに手を動かしてもらう内容を組み立ててみました。

 

本講座の主な構成

  1. 時系列データの基本概念とその予測への応用

  2. データの可視化と探索的データ分析(EDA)の重要性

  3. トレンド・季節性・残差の成分分解

  4. 定常性と非定常性の概念

  5. 時系列データの自己相関の理解と活用

ワークショップ開催の様子
ワークショップ開催の様子

1. 時系列データの基本概念とその予測への応用

 この部分では時系列データを分析し未来のデータポイントを予測する方法に焦点を当てています。このアプローチは、過去のデータパターンとトレンドを理解し、それらを基に未来の出来事や動向を予測するための技術やモデルの活用になります。

 

具体的には、自己回帰モデル、移動平均モデル、季節性を考慮したモデルなど、様々な統計的手法が用いられます。このプロセスは、ビジネスの意思決定、金融市場の分析、気候変動の予測など、多岐にわたる分野で応用されています。

 

本セミナーでは、時系列データ分析の具体的な応用事例や、モデル選択における考慮事項についても詳しく説明しました。

たとえば、自己回帰モデル(ARモデル)は、時系列データの過去の値を用いて未来の値を予測する際に有効であり、特に短期予測において高い精度を発揮します。また、季節性を考慮したモデルは、特定の周期性を示すデータ(例えば、月間の売上データや気温データ)の分析に適しています。

 

これらのモデルを選択し適用する際の指針や、モデルのパラメータを調整する方法についても紹介し、これらの技術を駆使することで、より正確な時系列データの予測が可能になり、結果としてビジネス戦略の策定や科学的研究における洞察を得ることができます。

解説スライド
解説スライド

2. データの可視化と探索的データ分析(EDA)の重要性

 データの可視化と探索的データ分析(EDA)は、データサイエンスプロジェクトにおける初期段階でのデータ理解の深化を目的として行います。

特に時系列データの可視化とEDAは、データのパターン、異常値、トレンドを発見し、分析の方向性を導くために不可欠です。これにより、より複雑なデータ処理やモデル構築に進む前に、データに関する直感を養うことができます。グラフ、プロット、サマリースタティスティックスなどのツールを用いて、データの概要を把握し、より効果的な予測モデルの開発に繋がります。

 

弊社としては前述の通り参加者の皆さまにエンジニアとしての一歩を踏み出して欲しいとの思いがありましたので、座学的な内容よりもエンジニアっぽく、実際に手を動かして試行錯誤してもらおうとハンズオン方式で進めてみました。

ただ、参加者の皆さまほとんどが非エンジニアであり、プログラミング経験者は少数だったのでハンズオンのアシスタントとして「ChatGPT Plus」の「Advanced Data Analysis」を活用して、より実践的な内容にチャレンジしてもらいました。

3. トレンド・季節性・残差の成分分解

トレンド・季節性・残差の成分分解は、時系列データを理解する上で重要な概念です。このアプローチは、データをトレンド(長期的な方向性)、季節性(定期的な変動)、残差(予測できない変動)の三つの成分に分けることを指します。

 

  • トレンド成分
    これはデータの長期的な方向性や傾向を示します。この成分は、データの大規模な移動を捉え、長期的な増加や減少を理解するのに役立ちます。

  • 季節性成分
    定期的なパターンや周期、例えば年間、月間、週間の変動を示します。季節性は、特定の時期に観測されるデータの定期的な変動を反映し、季節的変化を捉えます。

  • 残差成分
    トレンドや季節性によって説明されないデータの変動、すなわちランダムなノイズを指します。この成分は、モデルから予測できない不規則な変動を捉え、データの不確実性や予測不可能な変化を表します。

 

まずは時系列データの EDA の概要を掴んでもらうことから始めようと考え、時系列データ分析のチュートリアル等でよく使われる AirPassengers のデータを使用したハンズオンを実施しました。

解説スライド

少し驚かれるかもしれませんが、上のグラフや処理結果、Python コードは全て ChatGPT が参加者からの指示(プロンプト)によって自動作成したものです。

具体的な Advanced Data Analysis の使い方は下記のような感じです。

 

  1. 処理対象となるデータ(CSVファイル)をチャットへアップロード。(ChatGPT Plus 提供機能)

  2. 例)「添付のデータは航空機の乗客数の推移です。 まずはこのデータをグラフにして表示して下さい。」というプロンプトを入力。

  3. 例)「この時系列データの変動成分について確認したい。 STL分解を行い、下記の3つの成分に分解してそれぞれをグラフとして表示して下さい。」というプロンプトを入力。

 

いかがでしょうか?

本来であれば、時系列データ分析のノウハウと一定程度のプログラミングのスキルを必要とするような EDA もプログラミング部分を ChatGPT が支援してくれ、また必要であればデータの処理結果からの考察なども担ってくれるため、私たちユーザが指示の出し方だけ心得ておけば、ある程度の EDA 的作業には自身の手で取り組むことができるのは魅力的だと思います。

 

以降のハンズオンも参加者には可能な限り自身の手を動かして、ChatGPT をアシスタントとして使いながら課題に取り組んでもらいました。

4. 定常性と非定常性の概念

定常性と非定常性の概念は、時系列データの特性を理解する上で非常に重要となります。

 

  • 定常性
    統計的特性(平均・分散など)が時間に依存せず一定であることを意味します。

  • 非定常性
    時間の経過と共に統計的特性(平均・分散など)が変化します。

 

定常性の概念を理解し、非定常性データを定常性データに変換することは、時系列分析において重要なステップであり、予測モデルの精度を高めるために必要になります。データの定常性を確認し、必要に応じて変換処理を施すことで、より信頼性の高い分析結果を得ることができます。

解説スライド
解説スライド
解説スライド
解説スライド

上図は先ほどの AirPassengers のデータに対して ADF 検定という定常性を判断する検定処理を行った結果「非定常」であったため、「差分系列」を求めて再度 ADF 検定を行うという処理の概要です。

解説スライド

5. 時系列データの自己相関の理解と活用

自己相関は、時系列データにおける時間的依存性を示し、過去のデータが将来のデータに与える影響を量化します。これを分析することで、データ内の周期性やトレンドを特定し、予測モデルの構築において重要な情報を提供します。

 

この部分では、自己相関を可視化するためにコレログラムを使用する方法、自己相関の強度を測定する技術、そしてこの知識をどのようにして時系列予測モデルの改善に役立てるかについて説明しました。特に、自己相関の存在が予測モデルにおいて重要な役割を果たすこと、例えば自己回帰(AR)モデルのように、過去のデータポイントを使用して未来のデータポイントを予測するモデルの選択とパラメータ調整において、この概念がどのように活用されるか?補足しながら進めました。

 

先ほどまでと同じく、ChatGPT に「原系列」と「1階差分系列」の自己相関を求めてプロットするよう指示した結果です。

原系列・差分系列の自己相関
(コレログラム)

解説スライド
解説スライド

ここまで ChatGPT と二人三脚で進めてきた EDA ステップの締め括りとして、上記のそれぞれの時系列データの特性からどのようなモデリングを行うべきか?考察を求めてみた結果をそのまま引用掲載します。

ChatGPT : Data Analysis による考察

この時系列データとその1階差分系列の分析結果から、予測モデルを提案するにあたり、以下の点を考慮します:

 

非定常性: 元の時系列データのADF検定結果は非定常性を示していましたが、1階差分を取ることで定常性が改善されました。これは、差分を取る必要があることを示しています。

 

季節性: 季節成分の分析から、データには明確な季節パターンが存在することが示されました。この周期性は12ヶ月ごとに見られるため、季節性を考慮することが重要です。

 

自己相関と偏自己相関: 自己相関関数(ACF)と偏自己相関関数(PACF)の分析は、モデルに含めるべき適切なAR項やMA項を決定するのに役立ちます。1階差分系列のACFとPACFのグラフは、モデル選択の手がかりを提供します。

 

これらの観察に基づき、**季節性自己回帰和分移動平均モデル(SARIMA)または季節性統合移動平均自己回帰モデル(SARIMAX)**が適切な選択肢と考えられます。SARIMAXモデルは外部の説明変数をモデルに組み込むことができるため、追加の情報がある場合はSARIMAXを選択すると良いでしょう。

 

このあと、実際に ChatGPT の考察にもとづいた提案にあるように…

 

  • 季節性自己回帰和分移動平均モデル(SARIMA)

  • 季節性統合移動平均自己回帰モデル(SARIMAX)

 

などのモデリング手法を用いてモデル構築を行いましたが、その具体的な手法やコード・検証結果などは、また別途ご紹介したいと思います。

まとめ

今回は、時系列データ分析における探索的データ分析(EDA)を ChatGPT(※ Data Analysis)を上手く活用しながら、Python コードなどを書かなくても…ある意味ノーコードで進めていける手法について一部、弊社からの提案的な要素も含めてご紹介し、実際にハンズオンで手を動かして頂きました。

時系列データは身近ではあるけど、分析するとなると意外に「何から手をつければ良いか分からない」や「難しくて敷居が高そう」と思われがちですが、参加者の皆さんに実際に手を動かしてハンズオンで体験してもらい、弊社が大切にしている”手触り感”を掴んで頂けたのでは!?と考えています。

 

私たちは、このように主に「エンジニアではない(非エンジニア)」方々にいかにテクノロジーを活用して頂けるか?を常に考えながら、日々アップデートしたコンテンツでセミナーを実施しています。

ご興味・ご関心のある方がいらっしゃいましたらご遠慮なくお問い合わせ下さい。

​イベントのご相談承ります

同じようなワークショップ開催やカスタマイズした教材による

​イベント開催サービスを提供しております。

​社会人向けプログラミング講座やハッカソンにもご活用いただけます。

bottom of page