ChatGPTのCode Interpreterがデータ分析でできることに衝撃を受けました
Treasuryデータについて「何か面白いことを教えて」といった曖昧な質問をしたところ、ChatGPTは私が手作業で何時間もかけて作成していた洞察に富んだグラフを瞬時に生成してくれました。
この記事は2023年に書かれたものです。一部の情報が変更されている可能性があります。
Ethan MollickがchatGPTのCode Interpreterがいかに強力かについて書いた時、私は非常に興味を持ちました。当時は休暇中だったので、触ってみることができたのは今日になってからでした。そして、本当に衝撃的でした!
背景として、Treasury Directのウェブサイトから米国政府のさまざまな証券に関するデータを使用することにしました。このデータセットを選んだのは、以前「TreasuryDirectウェブサイトが時代遅れだという話を鵜呑みにすべきではない理由」についてブログ記事を書いたことがあり、データセットにある程度馴染みがあるからです。そして、より重要なのは、以前グラフを生成するのにどのくらい時間がかかったかをおおまかに覚えていることです。
データセット全体のアップロードは非常に簡単
ボタンをクリックするだけで、データ辞書と一緒にデータセット全体をアップロードできます。データセットについては、ウェブサイトからのこの数文だけを伝えました:「TreasuryDirect発行証券データセットは、2002会計年度から現在まで、TreasuryDirectで発行、償還、または流通中の各種米国債の数を詳述しています。流通中の債券は、まだ償還されていないものを指します。流通中の米国債の数は、発行数と償還数の差から求められます。このデータセットには、米国債の価値や利回りに関する情報は含まれていません。」
プロンプトなしで、chatGPTがデータセットを大まかにどう理解しているかを教えてくれ、最初のデータ行をプレビューとして表示してくれるのが気に入りました。
さあ、データと「会話」を始めましょう
このデータセットについて何か面白いことを教えてくれますか?
chatGPTにかなり曖昧な質問をしました。「このデータセットについて何か面白いことを教えてくれますか?」これは超一般的な質問です。chatGPTが人間の興味を直感的に推測できるかどうかを見たかったのです。
そしてこれが返答です:
ご覧の通り、chatGPTは総販売額の経時的トレンドが私が興味を持ちそうなデータセットの最初の興味深い点だと正しく推測しました。そして次のチャートで証券タイプ別の総販売額を分解しています。(文言と最終チャートを注意深く見ると、chatGPTが「オレンジ」ではなく「より濃い青」と色を間違えていますが、大した問題ではありません。)
次に、chatGPTに別の曖昧な質問をしました :P
「このデータセットに基づいて、ウェブサイトTreasury Directの人気が高まっていると思いますか?」
そしてこの回答が気に入りました。「TreasuryDirectウェブサイトの人気は、販売と取引件数の経時的トレンドを調べることで推測できるかもしれません。これらの指標が増加していれば、より多くの人がウェブサイトを利用して米国債を購入していることを示唆している可能性があります。ただし、これは大まかな推定であり、ウェブサイトの人気の全体像を表していない可能性があることに注意することが重要です。他の要因が影響している可能性があるからです。」
この回答が気に入ったのは、トーンが適切だからです。ChatGPTは自信がないことを明確に述べ、回答は多くの可能性の一つに過ぎないとしています。
これがchatGPTが生成したグラフです
イテレーションが鍵
上のチャートは悪くないですが、まだ私が求める最終的な成果物ではありません。そこで、chatGPTに「取引件数の経時的チャートをブログに掲載したいのですが、チャートを読みやすくフォーマットし直してもらえますか?」と聞きました。
改善の過程を以下に一つずつ示します:
最初の改善
私のリクエストに対するchatGPTの返答はこうでした:
もちろん、チャートを読みやすくするために修正できます。読みやすさを改善するための変更点には以下が含まれます:
- タイトル、ラベル、目盛りのフォントサイズを大きくする。
- 視認性を向上させるためにプロットの線幅を調整する。
- より説明的なタイトルとラベルを追加する。
- 注意をそらさないようにグリッドラインを薄くする。
そしてこれがチャートです
2回目の改善
縦軸に何か不自然な点に気づいたので、「縦軸について、私の読者が1e6の意味を理解できるか不確かです」と伝えました。
そしてこれが結果です
「おっしゃる通りです。科学的記数法は一般の読者にとって分かりにくいことがあります。代わりに、Y軸のラベルを百万単位に変換し、その情報をラベルに追加できます。こうすれば、数字がより分かりやすくなります。調整しましょう。」
3回目の改善
上のチャートを見た後の私の返答はこうでした。「はい、このグラフはかなり良くなっています!トレンドから、過去数年間で取引件数が大幅に増加していることに気づきました。これを読者にどうやってよりよく示せますか?」
そしてchatGPTの回答:
「データの経時的なトレンドを強調する一般的な方法の一つは、グラフにトレンドラインを含めることです。トレンドライン(最適線とも呼ばれる)は、データ群の傾向を表現し、特定のパターンがあるかどうかを確認するための線です。
このデータの文脈では、トレンドラインを追加することで、短期的な変動にかかわらず、取引件数に全体的な増加があるかどうかを視覚化するのに役立ちます。
グラフにトレンドラインを追加しましょう。トレンドの推定には単純な線形回帰モデルを使用します。読者により多くの文脈を提供するために、トレンドラインの方程式とR二乗値(データが回帰線にどの程度適合しているかを測定)もグラフの凡例に含めます。」
chatGPTの回答は自信に満ちていますが、上のチャートには赤いトレンドラインが見当たりません。そこでフィードバックを提供しました
4回目の改善
「上のチャートから赤い線が全く見えません」
chatGPTの返答:
「混乱させて申し訳ありません。データの大きな変動のため、トレンドを表す赤い線が見えない可能性があります。トレンドライン、特に線形回帰モデルのものは、大きな変動がある場合やトレンドが線形でない場合、データを適切に表現できない可能性があります。
トレンドを強調する別の方法として、移動平均(ローリング平均)を使用することができます。この手法は、一定期間にわたる変動を平均化し、長期的なトレンドを強調します。
データに12ヶ月の移動平均を適用し、元のデータと一緒にプロットしましょう。これにより、全体的なトレンドをよりよく視覚化できるはずです。」
「移動平均は短期的な変動を平滑化し、データの長期的なトレンドを強調します。この場合、12ヶ月の期間にわたる取引件数の平均を計算しています。
移動平均線は、月次の変動にかかわらず、データの一般的なトレンドを示しています。ご覧の通り、取引件数に明確な上昇トレンドがあり、TreasuryDirectの人気が高まっているというご観察を裏付けています。」
素晴らしくないですか?12ヶ月の移動平均を見たいとは伝えていなかったのに、chatGPTが提案してくれました。正直なところ、過去数年間の大きな変化を過去20年と比較してこのように視覚化する方法を思いつきませんでした。改めて非常に感動しました!
色の選択にもご注目ください。変化を強調するためにトレンドラインに意図的に濃い色を使っています。これはまさに私が望んでいたことです。
最終改善
最後のチャートに既に感動していましたが、「もう一つ追加の質問ですが、上のチャートにグリッドラインは必要でしょうか?グリッドラインを排除することでチャートをさらにシンプルにできると思いますか?」と付け加えました。
そしてこれが受け取った結果です
この改善プロセスを読むと、時間がかかりすぎていると感じるかもしれませんが、実際には各イテレーションは5〜10秒もかかりません。自分でやるよりも間違いなくはるかに速いです!
私自身のチャートとchatGPTのチャートの直接比較
上で述べたように、以前このデータセットを使ってブログ記事を書いたので、過去に自分でいくつかのチャートを作成しました。今度は、chatGPTを使って同じチャートをどのくらい速く再作成できるか比較したいと思います。
そこで「2016年1月から2023年2月までのTreasury Directの資金口座のトレンドを示すグラフを生成してもらえますか?」と書きました。
私自身のチャートとchatGPTが作成したものを並べて見せましょう。以下は私が自分で作成したものです:
正しく覚えていれば、以前このチャートを作成するのに5〜10分以上かかりました。
しかしchatGPTでは数秒で、これが得られました(おまけの12ヶ月移動平均付き)。どちらのバージョンが優れているかは、皆さんが判断してください :P
まとめ
chatGPTのCode Interpreterがデータ分析で今できることに衝撃を受けており、今後さらなる改善でどんなことができるようになるのか待ちきれません :D
日常的に行っている最も面倒なデータ作業は何ですか?Code Interpreterに投げてみたことはありますか?私のデータと同じくらいうまく、皆さんの専門分野のデータも処理できるかどうか気になります。
よろしくお願いします、Chandler
















