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返答:
聞かなきゃ良かった。聞いたらますますわからなくなった。
やっとの思いで、知ったかぶってこう聞き返した。
筆者問:「Airbnbの主要KPIのトレンド」のシートはどれでしょう? Airbnbの売上 = 予約総額(予約件数 × 予約単価) × テイクレート で計算できるものは?
エクセルの不備を何度か指摘してもらい、手直しした完璧なエクセルをアップした後、
筆者問:Airbnb予約総数 四班機推移をそれぞれ縦軸を予約件数、横軸を2019の 1Q 2Q 3Q 4Q 2020年の 1Q 2Q 3Q 4Q、2021年の 1Q 2Q 3Q 4Qを棒グラフで表してみてください。
そしてついにMCIが出したグラフがこちら。
このグラフに関するMCIの解説はこちら。
確かに。パンデミックが始まった時にドッカンと予約数が減少しているのがわかる。
WHOのデータを解析
WHO Coronavirus (COVID-19) DashboardのサイトからCSVをダウンロードし、MCIに渡してみた。
アメリカでの状況を抽出可能か聞いてみると、以下の返答が得られた。
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回ほどした。まずは、こちら。
とまことしやかに解説しているが、この様に突っ込むと、
筆者問:上記の棒グラフに月ベースで出されたアメリカの新規COVID-19感染者数(赤色の線は各月を表し、その高さはその月のアメリカの新規COVID-19感染者数)を正しい位置に重ねることができますでしょうか?2021年11月から始まるのであれば、上記棒グラフの2021 Q4の真ん中あたりから始まる必要があります。
今度はこんなグラフを出してきた。
下記のような大嘘つきの解説もつけてきた。
「すいません。赤い折れ線グラフは水平線になってますよ。」と指摘してあげると、「申し訳ありませんが、エラーが発生しました。エラーは、以前のコードセルで「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とやるデータサイエンティストごっこは本当に楽しい。
この記事が気に入ったらサポートをしてみませんか?