データサイエンスは、私たちが世界を理解し、問題を解決するための強力なツールです。
今回は、OpenAIのChatGPT Advanced Data Analysisを使用して、日本の都道府県別の人口データを分析するプロセスを紹介します。
データの読み込みから前処理、視覚化、さらには洞察の抽出まで、一連の分析手順を詳しく解説します。
また、当ブログ内のChatGPTについての記事を以下のページでまとめていますので、あわせてご覧ください。

ChatGPTとは
ChatGPTは、OpenAIが提供する自然言語生成モデルです。GPT(Generative Pre-training Transformer)と呼ばれるモデルのアーキテクチャを採用しています。
GPTは、Transformerと呼ばれるニューラルネットワークを使用して、文書や言語処理タスクでのテキスト生成を行うモデルです。GPTは、大量のテキストデータを学習し、そのデータをもとに新しい文章を生成することができます。
ChatGPTは、GPTをもとにしたモデルであり、対話型システムやチャットボットなどで使われることを想定して開発されています。対話を続けることができるようになっており、ユーザーが入力するテキストに対して、自然で返答ができるようになっています。
プログラミング不要のOpenAIのサービスとしてChatGPTを利用する方法については、以下の記事で解説しています。

Advanced Data Analysisとは
Advanced Data AnalysisはPythonのコードを読み込み、解釈し、実行する機能で、データ分析やデータ可視化、数学的な計算や複雑なアルゴリズムの解釈、プログラミングの問題解決やコーディングの練習などに活用できます。
Advanced Data Analysisの基本的な使い方は、以下の記事で解説しています。


データセットを入手する
今回データ分析の手順で解説に使用するデータセットは、日本政府が提供する統計データポータル「e-Stat」で公開されている人口推計を利用します。
e-Statは、初心者から上級者まで幅広く利用できるリソースが豊富に揃っており、以下の記事ではその特徴と活用方法について詳しく説明しています。また、具体的なデータのダウンロード方法も解説しています。

記事の手順に従い、あらかじめデータをダウンロードしておいてください。

Advanced Data Analysisでデータを分析する
ここからは、実際にAdvanced Data Analysisを使ってデータを分析する手順を解説します。
データセットを読み込む
まずデータセットを読み込みます。
先ほど紹介した「データサイエンスの学習に最適なデータセットが入手できる「政府統計の総合窓口(e-Stat)」の活用法」のページの手順でダウンロードした、日本の人口推計に関するファイルFEH_00200524_230716174817.csv
を使用します。
ChatGPTの画面でCode Interprerを選択したら、チャット入力欄の左に表示されている+
のボタンをクリックします。

ファイル選択ダイアログが表示されたら、先ほどのFEH_00200524_230716174817.csv
のファイルを指定します。
正しくファイルが読み込まれると左下の赤枠部分にファイル名が表示されます。
今回は以下のようなプロンプトを用意しました。
あなたは優秀なデータサイエンティストです。
「FEH_00200524_230716174817.csv」は日本政府が公開している、日本の統計データです。
このデータにはどのような情報が含まれているかを分析してください。

プロンプトを送信すると、以下のようにChatGPTがデータセットのファイルを読み込み、処理します。

ファイルを読み込むと、ChatGPTがデータの中身を解析し、以下のような情報が出力されました。
実データ以外、事前情報は全く与えていませんが、データの内容について概略を解説する文章を作成してくれました。
データが正しく読み込まれ、以下のような情報が含まれていることがわかります。
- “表章項目”: これはおそらくデータの種類を表しています。この例では、すべての行が”人口【千人】”となっています。
- “男女別”: 男女の性別を示しています。この例では、すべての行が”男女計”となっています。
- “人口”: これはおそらく人口の種類を示しています。この例では、すべての行が”総人口”となっています。
- “全国・都道府県”: これは日本の全国または特定の都道府県を示しています。
- “/時間軸(年)”とその後の年数の列(2010年から2014年): これらは各年の人口数を示しています。各年の人口数は文字列として表されているようです。
全体として、このデータセットは各都道府県の2010年から2014年までの総人口を表しています。データは千人単位で、男女合計の人口が示されています。次に、データの詳細な概要を把握するために、各列のユニークな値を調べてみましょう。
このように、瞬時にデータのアウトラインを掴むことができます。

データを元にグラフを作成する
先ほどのデータをさらにわかりやすくグラフにまとめてもらいます。
まず、以下のようなプロンプトを作成しました。
このデータを元に2010年の各都道府県の人口を表す棒グラフを作成してください。
以下のように一瞬でデータを元にグラフが作成されました。

しかし、このままでは見にくいため、グラフを改良する指示を与えます。
グラフのX軸を都道府県、Y軸を人口としてください
指示通りX軸に、都道府県、Y軸に人口というグラフに変更されました。

都道府県名が文字化けしているので修正してもらいます。
2023年7月現在、Advanced Data Analysisは日本語フォントが使えないため、日本語のテキストは英語に置き換える必要があります。(ChatGPTで置き換え可)
以下のプロンプトを実行します。
都道府県名が□と表示されており、認識できません。
文字コードが問題の場合は、グラフ描画時にデータを英語表記に変更して描画できますか?
ChatGPTから訂正案を提示されました。

訂正案を了承すると、英語表記に修正され、正しく表示されました。

全国の人口が入っていると、そこにグラフの上限がスケールされてしまい見にくいため、修正を依頼します。
All of Japanのデータは除外して、再度グラフを作成してください。
以下のように都道府県別人口のグラフが完成しました。

グラフのバリエーション
棒グラフ以外にも、折れ線グラフ、円グラフなど、Matplotlibで描画可能なもであれば表示できます。
それではこのグラフを円グラフに変更してください。
円グラフが作成されました。

データを分析する
最後に、読み込んだデータを分析してもらいます。
まず、データセットに含まれる4年分のデータから、人口の変化率を表すグラフを作成してもらいます。
プロンプト
それでは、続いて全都道府県の2010年から2014年までの人口の増加率が一目でわかるようグラフを作成してください。グラフのフォーマットはお任せします。
All of Japanのデータは除外してください。
以下のように変化率を表すグラフが作成されました。

このグラフを元に、人口の変化率に関する分析を依頼します。
このデータから人口の推移について読み取れることを解説してください。
簡単なプロンプトですが以下のように、人口の推移の背景を分析してくれました。
このデータセットと生成したグラフから、2010年から2014年までの日本の各都道府県の人口増加率について多くの洞察を得ることができます。以下にいくつかの主要な観察結果を示します:
- 人口増加率の最大と最小:人口増加率が最も高いのは沖縄県で、最も低い(実際には人口が減少している)のは秋田県です。これは、沖縄が観光地であるために人口が増加しやすい一方、秋田県などの地方都市では若者が大都市に流出し、人口が減少する傾向にあることを示している可能性があります。
- 人口増加率の分布:多くの都道府県で人口増加率が0%未満、つまり人口が減少しています。これは、日本全体で見ると人口減少が進行していることを示しています。この傾向は、低い出生率と高齢化が進行していることによるものと考えられます。
- 大都市と地方の違い:大都市(例えば、東京や大阪)では、人口が増加または安定しています。これは、これらの都市が経済活動の中心であり、多くの雇用機会を提供しているためでしょう。一方、多くの地方都市では人口が減少しています。これは、若者が教育や就労の機会を求めて地方から都市部へ移住するためでしょう。
これらの観察結果は、日本の人口動態についての一般的な理解を深めるのに役立ちます。しかし、より具体的な理由や詳細な解析を行うためには、さらに詳細なデータ(例えば、出生率、死亡率、内部移動、外国からの移民数など)を調査する必要があります。
Advanced Data Analysisを使うことでデータの整形、可視化、分析が一瞬で実行可能。

まとめ
今回はChatGPTのAdvanced Data Analysisを使ってデータを分析する方法について解説しました。
データは世界を理解するための鍵であり、効果的なツールと組み合わせることで、新たな洞察を得ることが可能になります。
また、以下の記事で効率的にPythonのプログラミングスキルを学べるプログラミングスクールの選び方について解説しています。最近ではほとんどのスクールがオンラインで授業を受けられるようになり、仕事をしながらでも自宅で自分のペースで学習できるようになりました。
スキルアップや副業にぜひ活用してみてください。

スクールではなく、自分でPythonを習得したい方には、いつでもどこでも学べる動画学習プラットフォームのUdemyがおすすめです。
講座単位で購入できるため、スクールに比べ非常に安価(セール時1200円程度~)に学ぶことができます。私も受講しているおすすめの講座を以下の記事でまとめていますので、ぜひ参考にしてみてください。

それでは、また次の記事でお会いしましょう。


コメント