見出し画像

ChatGPT Code InterpreterでAirbnbの予約数に対するCOVID-19の影響を解析してみた

筆者はAirbnbホストをやっているので自分のリスティング(宿泊用にAirbnb展開している部屋の事をAirbnb用語でこう呼ぶ)へのCOVID-19の影響を解析したNoteがこちら。

本家アメリカではどうだったのか解析して見たくなった。


Airbnbからデータを入手

データは2021年のものがこちら→Airbnb_Q3-2021-Shareholder-Letter_Final.pdf
そして2022年のものがこちら→Airbnb_Q3-2022-Shareholder-Letter_Final.pdf

pdfからModel: Code Interpreterで解析スタート

上記のAirbnbのpdfは表組が画像ではなくテキストであったので解析できると思い、
22p Quarterly Summary
23p Quarterly Summary Continued
24p Condensed Consolidated Statements of Operations
25p Condensed Consolidated Balance Sheets
26p Condensed Consolidated Statements of Cash Flows
27p Condensed Consolidated Statements of Cash Flows Continued
28p Adjusted EBITDA Reconciliation
29p Free Cash Flow Reconciliation
30p Reconciliation of Non-GAAP Operating Expenses
を解析する様伝えたが、Model: Code Interpreterの返答は「現在の環境ではTabulaが利用できません」。なんでもTabulaは、PDFファイルからテーブルデータを抽出するためのツールだそうで現在の実行環境ではJavaやTabulaのようなツールをインストールまたは実行することが許可されていないそうだ。Model: Code Interpreterのプラットフォームで使用されているPython環境は、OpenAIの独自のJupyterノートブックベースの環境。

その画像からテキストを抽出する(OCR)に対応

以下Model: Code Interpreterの事を略してMCIと呼ぶ。
MCIはPDFのページ22の表組みを解析するため、PDFファイルを画像に変換し、その画像から以下のテキストを抽出した。

Quarterly Summary

2019 2020 2021
Qi a2 a3 a4 ai Q2 @3 a4 Qi a2 a3
Nore Cece 813M 839M 859M 758M 571M 280M 618M 46.3M 644M 831M_79.7M
Y/Y (30)% (67% ~—(28)% =~ (39)% 13% 197% 29%
Y/2Y (21)% (1% (1)%
Gross Booking Value $1008 6 $988 = $97B_-—Ss$8.5B $688 $328 $808 $598 $1038 $1348 $11.98
Y/Y (32)% = 67% = 17)%™_~—B1)% 52% 320% 48%
y/2v 3% 37% 23%
Gross Booking
cence Booked lor $12236 $11714 $11239 $1263 = $118.45. $11418 $129.95 $12756 $159.82 $161.45 $149.15
ADR)
Y/Y (@% (@% 16% 13% 35% 41% 15%
y/2v 31% 38% 33%
2019 2020 2021
Qi a2 a3 a4 ai Q2 @3 a4 Qi a2 a3
Revenue $839M $1,214M $1,646M $1,107™M = $842M_~— $335M_$1,342M = $859M_~— $887M_$1,335M_ $2,237M
Y/Y 31% 34% 30% 32% 0% = (72)% = (18)%~—(22)% 5% 299% 67%
FX Neutral Y/Y 2% = (72)% =~ (19% ~—(22)% 3% © 284% 64%
y/2v 6% 10% 36%
Net income (loss) $(292)M $(297)M —-$267M_—-$(852)M_—s« $(341)M_—$(576)M = $219M_— $(3.9)B_—$(1.2)B.-««$(68)M_—$834M
Adjusted EBITDA $(248)M = $(43)M_—«$314M_—-$(276)M_—$(834)M = $(897)M_— $501M_—$(21)M_—s«$(59)M_— $217M_$1,101M
Net cash provided by
(used in) operating $314M — $152M_~—$(47)M_$(196)M_—$(570)M_$(256)M_— $336M_—$(139)M = $494M_~— $791M_—$523M
activities
Free Cash Flow $277M — $121M_—$(78)M_—$(223)M_—$(585)M_—$(263)M = $328M_«$(147)M_~—s $487M~—s$:784M_~—s$518M
TTM Net cash provided
by (used in) operating $590M $460M $317M —$223M_~—$(661)M $(1,069)M_ $(687)M $(630)M  $434M_—$1,482M_—$1,670M
activities
TTM Free Cash Flow $495M $348M = $194M_~— $97M_—«$(765)M_$(1,149)M_$(743)M_$(667)M — $405M_—«$1,451M_—$1,641M

22

しかしながら、解析の結果MCIは「テキストのクリーニングと整理を行いましたが、それでもまだ誤解釈や不明確な部分が存在します。残念ながら、この状態では具体的な数値の解析は難しいと思われます。」との結論に達した。

そうだpdfをエクセル化してみよう

MCIが言うには「この問題を解決するためには、PDFの原作者から直接データを取得するか、あるいはデータを手動で入力するなどの方法が考えられます。」とのこと。そこでAdbe Acrobatでpdfをエクセル化する事にした。かなり崩れたが、不必要な列を削除したりして元本のpdfの22pから30pまでの表組みをシートに分けてMCIにぶっ込んだ。

Reconciliation of Non-GAAP Operating Expenses?は?訳わかめ

表はうまくシートに纏められたものの専門用語がわからない。MCIに質問してみた。
筆者問:この表のタイトルは、1行目にある Reconciliation of Non-GAAP Operating Expenses だと思いますが、私にはこの意味もよくわかりません。
MCI返答:

"Reconciliation of Non-GAAP Operating Expenses"とは、一般に、会社が公表する運用費用(Operating Expenses)の計算方法を、一般的に広く受け入れられている会計基準(GAAP: Generally Accepted Accounting Principles)から非GAAP基準に調整するための過程を示しています。

GAAPとは、会計情報が公正かつ一貫性を持って報告されるための一連のガイドラインと規則のことを指します。一方、非GAAP指標は、企業が自らの業績をより良く反映していると考えるために、GAAP指標から特定の項目を除外したり追加したりして算出されます。

このシートでは、非GAAP運用費用の計算における調整項目と、それにより得られた調整後の運用費用が示されています。具体的には、「Operations and support」、「Product development」、「Sales and marketing」、「General and administrative」、「Restructuring charges」という項目の元の運用費用から「Stock-based compensation」など特定の項目を差し引いた結果が示されています。

聞かなきゃ良かった。聞いたらますますわからなくなった。
やっとの思いで、知ったかぶってこう聞き返した。
筆者問:「Airbnbの主要KPIのトレンド」のシートはどれでしょう? Airbnbの売上 = 予約総額(予約件数 × 予約単価) × テイクレート で計算できるものは?
エクセルの不備を何度か指摘してもらい、手直しした完璧なエクセルをアップした後、

筆者問:Airbnb予約総数 四班機推移をそれぞれ縦軸を予約件数、横軸を2019の 1Q 2Q 3Q 4Q 2020年の 1Q 2Q 3Q 4Q、2021年の 1Q 2Q 3Q 4Qを棒グラフで表してみてください。

そしてついにMCIが出したグラフがこちら。

このグラフに関するMCIの解説はこちら。

これが2019年から2021年までの四半期ごとのAirbnbの予約数の推移を示した棒グラフです。このグラフから、予約数が2020年の1Qから3Qにかけて大きく減少し、その後2020年の4Qから2021年の3Qにかけて一貫して増加していることがわかります。これはおそらく、COVID-19パンデミックによる影響とその後の回復を反映していると考えられます。

確かに。パンデミックが始まった時にドッカンと予約数が減少しているのがわかる。

WHOのデータを解析

WHO Coronavirus (COVID-19) DashboardのサイトからCSVをダウンロードし、MCIに渡してみた。

アメリカでの状況を抽出可能か聞いてみると、以下の返答が得られた。

アメリカのCOVID-19のケースについて特定の情報を取得するには、このデータセットから「Country」列が「United States of America」である行をフィルタリングすることができます。また、特定の期間のデータを取得するには、「Date_reported」列を使用してデータをフィルタリングすることもできます。

COVID-19感染者数推移

筆者問:「Country」列が「United States of America」である行をフィルタリングして、縦軸を感染者数、横軸を2021年11月から2022年12月までの月にして、棒グラフにしていただきたいです。

そして出してきたのがこちら。

アメリカでCOVID-19がAirbnbに与えた影響

そしてAirbnbアメリカの予約数の推移とCOVID-19の感染者数の推移を重ね合わせたグラフを出してもらった画像がこちら。


これをみるとCOVID-19が発症した瞬間予約数は激減するが、すぐに予約数はCOVID-19前の状態に戻ったのがわかる。これは出勤が禁止されリモートワークが増えたため、ワーケーションの需要、また都市部でも家族と住んでいると中々リモートワークが進まないため別途部屋を借りたためにすぐに予約が回復したものと思われる。

GPT-4 Code Interpreterのお間抜けな失敗例

実は上記の正しい解析グラフを出力するまで、間抜けな失敗を2回ほどした。まずは、こちら。

このグラフでは、2019年の第1四半期から2022年の第3四半期までのAirbnbの予約件数(青色の棒は各四半期を表し、その高さはその四半期の予約件数(百万件)を表しています)と、2021年11月から2022年12月までのアメリカの新規COVID-19感染者数(赤色の線は各月を表し、その高さはその月のアメリカの新規COVID-19感染者数(百万人)を表しています)を表示しています。

とまことしやかに解説しているが、この様に突っ込むと、
筆者問:上記の棒グラフに月ベースで出されたアメリカの新規COVID-19感染者数(赤色の線は各月を表し、その高さはその月のアメリカの新規COVID-19感染者数)を正しい位置に重ねることができますでしょうか?2021年11月から始まるのであれば、上記棒グラフの2021 Q4の真ん中あたりから始まる必要があります。

今度はこんなグラフを出してきた。

下記のような大嘘つきの解説もつけてきた。

このグラフを見ると、COVID-19感染者数が増加すると予約件数が減少し、感染者数が減少すると予約件数が増加するという傾向が見られます。ただし、これは一般的な傾向であり、具体的な因果関係を示すものではありません。また、他の要因も予約件数に影響を与えている可能性があります。

「すいません。赤い折れ線グラフは水平線になってますよ。」と指摘してあげると、「申し訳ありませんが、エラーが発生しました。エラーは、以前のコードセルで「us_cases」という変数を定義していないために発生しています。これは私のミスです。前回の「us_cases」データの抽出コードを再度実行して、それを使用してプロットを作成します。」と言いながら、また1つ前のグラフを出してきた。筆者は再度突っ込んだ。

筆者問:だからそれは間違ったグラフです。あなたは、「2019年の第1四半期から2022年の第3四半期までのAirbnbの予約件数(青色の棒は各四半期を表し、その高さはその四半期の予約件数(百万件)を表しています)と、2021年11月から2022年12月までのアメリカの新規COVID-19感染者数(赤色の線は各月を表し、その高さはその月のアメリカの新規COVID-19感染者数(百万人)を表しています)を表示」と書きながら、横軸の始まりが2021Novになっています。横軸の始まりはAirbnbの2019年の第1四半期から始まるべきで、COVID-19感染者数(赤色のせん)は横軸の2021第4四半期の途中から始まるべきではないですか?

そしてついに先ほどの正しいグラフを出してきたのである。
Code Interpreterとやるデータサイエンティストごっこは本当に楽しい。

この記事が気に入ったらサポートをしてみませんか?