ビッグマック指数

投資のためのファンダメンタルズ分析

Tip
  • ビッグマック指数の読み方
    • 例として2024年1月の日本円の米ドルに対するビッグマック指数は -46.5%(GDP調整前)。よって日本円は米ドルに対して 46.5% 通貨安(円安)。同じく2024年1月のスイスフランの米ドルに対するビッグマック指数は +43.5%(GDP調整前)。よってスイスフランは米ドルに対して 43.5% 通貨高。
    • 読み方はGDP調整後も同様。
  • 「人はビッグマックのみにて生くるものにあらず」。ビッグマックに利用されている食材費やその他のコストが世界各国の全ての品目の物価を反映している訳ではありません。

時系列推移

コード

Tip
Table 1: 変数一覧
変数 データ
1 dollar_ex 対米ドル為替レート(出典:Reuters)
2 GDP_dollar 米ドル建て1人当たりGDP(出典:IMF)
3 GDP_local 自国通貨建て1人当たりGDP
4 local_price ビッグマック価格(自国通貨建て、出典:McDonalds; The Economist)
5 dollar_price ビッグマック価格(米ドル建て)

前処理パート

ビッグマック指数算出対象国・地域

以降「ビッグマック指数算出対象国・地域」は「対象国」と表記する。

library("tidyverse")
library("data.table")
big_mac_countries <- c(
  "ARG", "AUS", "BRA", "GBR", "CAN", "CHL", "CHN", "CZE", "DNK",
  "EGY", "HKG", "HUN", "IDN", "ISR", "JPN", "MYS", "MEX", "NZL",
  "NOR", "PER", "PHL", "POL", "RUS", "SAU", "SGP", "ZAF", "KOR",
  "SWE", "CHE", "TWN", "THA", "TUR", "ARE", "USA", "COL", "CRI",
  "PAK", "LKA", "UKR", "URY", "IND", "VNM", "GTM", "HND", "VEN",
  "NIC", "AZE", "BHR", "HRV", "JOR", "KWT", "LBN", "MDA", "OMN",
  "QAT", "ROU", "EUZ"
)

ソースデータの読み込み

big_mac_data <- "https://raw.githubusercontent.com/TheEconomist/big-mac-data/master/source-data/big-mac-source-data-v2.csv" %>%
  fread(na.strings = "#N/A") %>%
  .[, GDP_local := as.numeric(GDP_local)] %>%
  .[, local_price := ifelse(local_price == "-", NA, local_price) %>% as.numeric()] %>%
  .[!is.na(local_price)] %>%
  .[order(date, name)]
glimpse(big_mac_data)
Rows: 2,160
Columns: 8
$ name          <chr> "Argentina", "Australia", "Brazil", "Britain", "Canada",…
$ iso_a3        <chr> "ARG", "AUS", "BRA", "GBR", "CAN", "CHL", "CHN", "CZE", …
$ currency_code <chr> "ARS", "AUD", "BRL", "GBP", "CAD", "CLP", "CNY", "CZK", …
$ local_price   <dbl> 2.50, 2.59, 2.95, 1.90, 2.85, 1260.00, 9.90, 54.37, 24.7…
$ dollar_ex     <dbl> 1.0000000, 1.6800000, 1.7900000, 0.6329114, 1.4700000, 5…
$ GDP_dollar    <dbl> 9283.180, 20388.810, 5199.450, 28306.430, 21046.560, 547…
$ GDP_local     <dbl> 9283.18, 32394.17, 6029.89, 17089.80, 31222.68, 2520325.…
$ date          <IDate> 2000-04-01, 2000-04-01, 2000-04-01, 2000-04-01, 2000-0…
Tip

米国の GDP_dollarGDP_local が同一であることから GDP_local は「自国通貨建て1人当たりGDP」と判断する。

(big_mac_data_USA <- big_mac_data[big_mac_data$iso_a3 == "USA", c("date", "iso_a3", "GDP_dollar", "GDP_local")])
          date iso_a3 GDP_dollar GDP_local
 1: 2000-04-01    USA   32833.67  32833.67
 2: 2001-04-01    USA   34496.24  34496.24
 3: 2002-04-01    USA   36312.78  36312.78
 4: 2003-04-01    USA   37101.45  37101.45
 5: 2004-05-01    USA   37945.76  37945.76
 6: 2005-06-01    USA   39405.35  39405.35
 7: 2006-01-01    USA   41641.62  41641.62
 8: 2006-05-01    USA   41641.62  41641.62
 9: 2007-01-01    USA   44034.26  44034.26
10: 2007-06-01    USA   44034.26  44034.26
11: 2008-06-01    USA   46216.85  46216.85
12: 2009-07-01    USA   47943.35  47943.35
13: 2010-01-01    USA   48470.55  48470.55
14: 2010-07-01    USA   48470.55  48470.55
15: 2011-07-01    USA   47102.43  47102.43
16: 2012-01-01    USA   48586.29  48586.29
17: 2012-07-01    USA   48586.29  48586.29
18: 2013-01-01    USA   50008.11  50008.11
19: 2013-07-01    USA   50008.11  50008.11
20: 2014-01-01    USA   51736.74  51736.74
21: 2014-07-01    USA   51736.74  51736.74
22: 2015-01-01    USA   53245.52  53245.52
23: 2015-07-01    USA   53245.52  53245.52
24: 2016-01-01    USA   55083.51  55083.51
25: 2016-07-01    USA   55083.51  55083.51
26: 2017-01-01    USA   56729.68  56729.68
27: 2017-07-01    USA   56729.68  56729.68
28: 2018-01-01    USA   57839.99  57839.99
29: 2018-07-01    USA   57839.99  57839.99
30: 2019-01-01    USA   59878.72  59878.72
31: 2019-07-09    USA   59878.72  59878.72
32: 2020-01-14    USA   62787.78  62787.78
33: 2020-07-01    USA   62787.78  62787.78
34: 2021-01-01    USA   65077.30  65077.30
35: 2021-07-01    USA   65077.30  65077.30
36: 2022-01-01    USA   63577.34  63577.34
37: 2022-07-01    USA   63577.34  63577.34
38: 2023-01-01    USA   70159.77  70159.77
39: 2023-07-01    USA   70159.77  70159.77
40: 2024-01-01    USA   76343.25  76343.25
          date iso_a3 GDP_dollar GDP_local
all(big_mac_data_USA$GDP_dollar == big_mac_data_USA$GDP_local)
[1] TRUE

対象国の米ドル換算ビッグマック価格算出

dollar_price として列に追加

big_mac_data[, dollar_price := local_price / dollar_ex]
glimpse(big_mac_data)
Rows: 2,160
Columns: 9
$ name          <chr> "Argentina", "Australia", "Brazil", "Britain", "Canada",…
$ iso_a3        <chr> "ARG", "AUS", "BRA", "GBR", "CAN", "CHL", "CHN", "CZE", …
$ currency_code <chr> "ARS", "AUD", "BRL", "GBP", "CAD", "CLP", "CNY", "CZK", …
$ local_price   <dbl> 2.50, 2.59, 2.95, 1.90, 2.85, 1260.00, 9.90, 54.37, 24.7…
$ dollar_ex     <dbl> 1.0000000, 1.6800000, 1.7900000, 0.6329114, 1.4700000, 5…
$ GDP_dollar    <dbl> 9283.180, 20388.810, 5199.450, 28306.430, 21046.560, 547…
$ GDP_local     <dbl> 9283.18, 32394.17, 6029.89, 17089.80, 31222.68, 2520325.…
$ date          <IDate> 2000-04-01, 2000-04-01, 2000-04-01, 2000-04-01, 2000-0…
$ dollar_price  <dbl> 2.500000, 1.541667, 1.648045, 3.002000, 1.938776, 2.4513…

基準通貨

通貨安または通貨高を比較する基準通貨。The Economist では USDEURGBPJPYCNY の5つを基準通貨としている。

但し本ページでは米ドル USD のみを基準通貨とする。(例)米ドルに対して日本円は10%の通貨安。

# base_currencies = c('USD', 'EUR', 'GBP', 'JPY', 'CNY')
base_currencies <- "USD"

GDP調整前ビッグマック指数算出パート

big_mac_index の作成

対象国かつ米ドル換算ビッグマック価格が存在する行を抽出し big_mac_index を作成。

big_mac_index <- big_mac_data[
  !is.na(dollar_price) & iso_a3 %in% big_mac_countries,
  .(date, iso_a3, currency_code, name, local_price, dollar_ex, dollar_price)
]
glimpse(big_mac_index)
Rows: 1,797
Columns: 7
$ date          <IDate> 2000-04-01, 2000-04-01, 2000-04-01, 2000-04-01, 2000-0…
$ iso_a3        <chr> "ARG", "AUS", "BRA", "GBR", "CAN", "CHL", "CHN", "CZE", …
$ currency_code <chr> "ARS", "AUD", "BRL", "GBP", "CAD", "CLP", "CNY", "CZK", …
$ name          <chr> "Argentina", "Australia", "Brazil", "Britain", "Canada",…
$ local_price   <dbl> 2.50, 2.59, 2.95, 1.90, 2.85, 1260.00, 9.90, 54.37, 24.7…
$ dollar_ex     <dbl> 1.0000000, 1.6800000, 1.7900000, 0.6329114, 1.4700000, 5…
$ dollar_price  <dbl> 2.500000, 1.541667, 1.648045, 3.002000, 1.938776, 2.4513…

ビッグマック指数の作成

date ごとに「対象国の米ドル換算マクドナルド価格」の「米ドルマクドナルド価格(米国のマクドナルド価格)」からの乖離を求め、「GDP調整前ビッグマック指数」(ここでは USD 列)とする。

for (currency in base_currencies) {
  big_mac_index[
    ,
    (currency) :=
      dollar_price /
      .SD[currency_code == currency]$dollar_price -
      1,
    by = date
  ]
}

求めたGDP調整前ビッグマック指数( USD )を小数点5位で四捨五入。

big_mac_index[, (base_currencies) := round(.SD, 5L), .SDcols = base_currencies]

よって currency_codeUSD の場合のビッグマック指数( USD )は全て 0 になる。

big_mac_index[, (base_currencies) := round(.SD, 5L), .SDcols = base_currencies]
big_mac_index[, .SD[currency_code == "USD"]]$USD
 [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[39] 0 0

GDP調整前ビッグマック指数

直近のGDP調整前ビッグマック指数。USD 列が各通貨( currency_code )の米ドルに対するビッグマック指数。

big_mac_index %>%
  .[, .SD[max(date) == date]] %>%
  .[, .(date, name, currency_code, local_price, USD)] %>%
  .[order(USD), ]
          date                 name currency_code local_price      USD
 1: 2024-01-01               Taiwan           TWD       75.00 -0.57952
 2: 2024-01-01            Indonesia           IDR    38000.00 -0.57286
 3: 2024-01-01                India           INR      215.00 -0.54512
 4: 2024-01-01         South Africa           ZAR       51.90 -0.52459
 5: 2024-01-01                Egypt           EGP       85.00 -0.51655
 6: 2024-01-01             Malaysia           MYR       13.15 -0.51104
 7: 2024-01-01          Philippines           PHP      161.00 -0.49742
 8: 2024-01-01              Ukraine           UAH      110.00 -0.48371
 9: 2024-01-01            Hong Kong           HKD       23.00 -0.48297
10: 2024-01-01              Vietnam           VND    74000.00 -0.47058
11: 2024-01-01                Japan           JPY      450.00 -0.46513
12: 2024-01-01              Romania           RON       15.65 -0.39845
13: 2024-01-01                China           CNY       25.00 -0.38988
14: 2024-01-01           Azerbaijan           AZN        5.95 -0.38579
15: 2024-01-01               Jordan           JOD        2.50 -0.38030
16: 2024-01-01              Moldova           MDL       63.00 -0.37446
17: 2024-01-01                 Oman           OMR        1.42 -0.35179
18: 2024-01-01            Guatemala           GTQ       29.00 -0.34783
19: 2024-01-01             Thailand           THB      135.00 -0.33499
20: 2024-01-01             Pakistan           PKR     1065.00 -0.33094
21: 2024-01-01            Argentina           ARS     3150.00 -0.32606
22: 2024-01-01                Qatar           QAR       14.00 -0.32424
23: 2024-01-01               Turkey           TRY      120.00 -0.30293
24: 2024-01-01              Hungary           HUF     1400.00 -0.30111
25: 2024-01-01          South Korea           KRW     5500.00 -0.27806
26: 2024-01-01             Honduras           HNL      102.00 -0.27366
27: 2024-01-01                 Peru           PEN       15.90 -0.25320
28: 2024-01-01            Nicaragua           NIO      159.00 -0.23702
29: 2024-01-01                Chile           CLP     4050.00 -0.21684
30: 2024-01-01              Bahrain           BHD        1.70 -0.20740
31: 2024-01-01               Israel           ILS       17.00 -0.20630
32: 2024-01-01               Kuwait           KWD        1.40 -0.20050
33: 2024-01-01       Czech Republic           CZK      105.00 -0.18966
34: 2024-01-01              Croatia           EUR        4.38 -0.16206
35: 2024-01-01              Lebanon           LBP   430000.00 -0.15563
36: 2024-01-01               Brazil           BRL       23.90 -0.15482
37: 2024-01-01 United Arab Emirates           AED       18.00 -0.13872
38: 2024-01-01            Venezuela           VES      178.13 -0.13282
39: 2024-01-01            Singapore           SGD        6.65 -0.12880
40: 2024-01-01               Poland           PLN       19.90 -0.12737
41: 2024-01-01          New Zealand           NZD        8.20 -0.12027
42: 2024-01-01         Saudi Arabia           SAR       19.00 -0.10969
43: 2024-01-01            Australia           AUD        7.70 -0.10821
44: 2024-01-01             Colombia           COP    19900.00 -0.10596
45: 2024-01-01               Mexico           MXN       89.00 -0.08735
46: 2024-01-01               Canada           CAD        7.47 -0.02366
47: 2024-01-01            Sri Lanka           LKR     1820.00 -0.00028
48: 2024-01-01        United States           USD        5.69  0.00000
49: 2024-01-01              Denmark           DKK       39.00  0.00032
50: 2024-01-01              Britain           GBP        4.49  0.00358
51: 2024-01-01           Costa Rica           CRC     2950.00  0.00387
52: 2024-01-01               Sweden           SEK       61.29  0.03080
53: 2024-01-01            Euro area           EUR        5.39  0.03116
54: 2024-01-01              Uruguay           UYU      275.00  0.23718
55: 2024-01-01               Norway           NOK       75.00  0.25465
56: 2024-01-01          Switzerland           CHF        7.10  0.43533
          date                 name currency_code local_price      USD

GDP調整後ビッグマック指数算出パート

big_mac_gdp_data の作成

自国通貨建て1人当たりGDPが 0 以下で無い国を抽出し big_mac_gdp_data を作成。

big_mac_gdp_data <- big_mac_data[GDP_local > 0]
glimpse(big_mac_gdp_data)
Rows: 2,136
Columns: 9
$ name          <chr> "Argentina", "Australia", "Brazil", "Britain", "Canada",…
$ iso_a3        <chr> "ARG", "AUS", "BRA", "GBR", "CAN", "CHL", "CHN", "CZE", …
$ currency_code <chr> "ARS", "AUD", "BRL", "GBP", "CAD", "CLP", "CNY", "CZK", …
$ local_price   <dbl> 2.50, 2.59, 2.95, 1.90, 2.85, 1260.00, 9.90, 54.37, 24.7…
$ dollar_ex     <dbl> 1.0000000, 1.6800000, 1.7900000, 0.6329114, 1.4700000, 5…
$ GDP_dollar    <dbl> 9283.180, 20388.810, 5199.450, 28306.430, 21046.560, 547…
$ GDP_local     <dbl> 9283.18, 32394.17, 6029.89, 17089.80, 31222.68, 2520325.…
$ date          <IDate> 2000-04-01, 2000-04-01, 2000-04-01, 2000-04-01, 2000-0…
$ dollar_price  <dbl> 2.500000, 1.541667, 1.648045, 3.002000, 1.938776, 2.4513…

GDP調整後ビッグマック指数算出対象国・地域

線形回帰によるGDP調整後ビッグマック指数算出対象国・地域。 以降「線形回帰によるGDP調整後ビッグマック指数算出対象国・地域」は「線形回帰対象国」と表記する。

regression_countries <- c(
  "ARG", "AUS", "BRA", "GBR", "CAN", "CHL", "CHN", "CZE", "DNK",
  "EGY", "EUZ", "HKG", "HUN", "IDN", "ISR", "JPN", "MYS", "MEX",
  "NZL", "NOR", "PER", "PHL", "POL", "RUS", "SAU", "SGP", "ZAF",
  "KOR", "SWE", "CHE", "TWN", "THA", "TUR", "USA", "COL", "PAK",
  "IND", "AUT", "BEL", "NLD", "FIN", "FRA", "DEU", "IRL", "ITA",
  "PRT", "ESP", "GRC", "EST"
)
# 2021年1月以降、下記の国々が線形回帰対象国に加えられている。
regression_addons_2021 <- c(
  "ARE", "CRI", "LKA", "UKR", "URY", "VNM", "GTM", "HND", "NIC",
  "AZE", "BHR", "HRV", "JOR", "KWT", "MDA", "OMN", "QAT", "ROU",
  "SVK", "SVN", "LVA", "LTU"
)
# 線形回帰対象国を抽出
big_mac_gdp_data <- big_mac_gdp_data[iso_a3 %in% regression_countries |
  (iso_a3 %in% regression_addons_2021 & date >= as.Date("2021-01-01"))]
glimpse(big_mac_gdp_data)
Rows: 1,886
Columns: 9
$ name          <chr> "Argentina", "Australia", "Brazil", "Britain", "Canada",…
$ iso_a3        <chr> "ARG", "AUS", "BRA", "GBR", "CAN", "CHL", "CHN", "CZE", …
$ currency_code <chr> "ARS", "AUD", "BRL", "GBP", "CAD", "CLP", "CNY", "CZK", …
$ local_price   <dbl> 2.50, 2.59, 2.95, 1.90, 2.85, 1260.00, 9.90, 54.37, 24.7…
$ dollar_ex     <dbl> 1.0000000, 1.6800000, 1.7900000, 0.6329114, 1.4700000, 5…
$ GDP_dollar    <dbl> 9283.180, 20388.810, 5199.450, 28306.430, 21046.560, 547…
$ GDP_local     <dbl> 9283.18, 32394.17, 6029.89, 17089.80, 31222.68, 2520325.…
$ date          <IDate> 2000-04-01, 2000-04-01, 2000-04-01, 2000-04-01, 2000-0…
$ dollar_price  <dbl> 2.500000, 1.541667, 1.648045, 3.002000, 1.938776, 2.4513…

米ドル建て1人当たりGDP( GDP_bigmac )の算出

線形回帰対象国の「自国通貨建てビッグマック価格に対する自国通貨建て1人当たりGDPの比」に「米国のビッグマック価格」を乗じた結果を「線形回帰対象国の米ドル建て1人当たりGDP」とする( GDP_bigmac )。

big_mac_gdp_data %>%
  .[, GDP_bigmac := GDP_local / (local_price / .SD[iso_a3 == "USA"]$local_price), by = date]
glimpse(big_mac_gdp_data)
Rows: 1,886
Columns: 10
$ name          <chr> "Argentina", "Australia", "Brazil", "Britain", "Canada",…
$ iso_a3        <chr> "ARG", "AUS", "BRA", "GBR", "CAN", "CHL", "CHN", "CZE", …
$ currency_code <chr> "ARS", "AUD", "BRL", "GBP", "CAD", "CLP", "CNY", "CZK", …
$ local_price   <dbl> 2.50, 2.59, 2.95, 1.90, 2.85, 1260.00, 9.90, 54.37, 24.7…
$ dollar_ex     <dbl> 1.0000000, 1.6800000, 1.7900000, 0.6329114, 1.4700000, 5…
$ GDP_dollar    <dbl> 9283.180, 20388.810, 5199.450, 28306.430, 21046.560, 547…
$ GDP_local     <dbl> 9283.18, 32394.17, 6029.89, 17089.80, 31222.68, 2520325.…
$ date          <IDate> 2000-04-01, 2000-04-01, 2000-04-01, 2000-04-01, 2000-0…
$ dollar_price  <dbl> 2.500000, 1.541667, 1.648045, 3.002000, 1.938776, 2.4513…
$ GDP_bigmac    <dbl> 8317.7293, 28016.5795, 4578.6283, 20147.9747, 24539.9309…

よって米国の1人当たりGDP( GDP_local )と米ドル建て1人当たりGDP( GDP_bigmac )は同一となる。

big_mac_gdp_data[, .SD[iso_a3 == "USA"], ] %>% .[, .(currency_code, GDP_local, GDP_bigmac)]
    currency_code GDP_local GDP_bigmac
 1:           USD  32833.67   32833.67
 2:           USD  34496.24   34496.24
 3:           USD  36312.78   36312.78
 4:           USD  37101.45   37101.45
 5:           USD  37945.76   37945.76
 6:           USD  39405.35   39405.35
 7:           USD  41641.62   41641.62
 8:           USD  41641.62   41641.62
 9:           USD  44034.26   44034.26
10:           USD  44034.26   44034.26
11:           USD  46216.85   46216.85
12:           USD  47943.35   47943.35
13:           USD  48470.55   48470.55
14:           USD  48470.55   48470.55
15:           USD  47102.43   47102.43
16:           USD  48586.29   48586.29
17:           USD  48586.29   48586.29
18:           USD  50008.11   50008.11
19:           USD  50008.11   50008.11
20:           USD  51736.74   51736.74
21:           USD  51736.74   51736.74
22:           USD  53245.52   53245.52
23:           USD  53245.52   53245.52
24:           USD  55083.51   55083.51
25:           USD  55083.51   55083.51
26:           USD  56729.68   56729.68
27:           USD  56729.68   56729.68
28:           USD  57839.99   57839.99
29:           USD  57839.99   57839.99
30:           USD  59878.72   59878.72
31:           USD  59878.72   59878.72
32:           USD  62787.78   62787.78
33:           USD  62787.78   62787.78
34:           USD  65077.30   65077.30
35:           USD  65077.30   65077.30
36:           USD  63577.34   63577.34
37:           USD  63577.34   63577.34
38:           USD  70159.77   70159.77
39:           USD  70159.77   70159.77
40:           USD  76343.25   76343.25
    currency_code GDP_local GDP_bigmac
all(big_mac_gdp_data[, .SD[iso_a3 == "USA"], ] %>% .[, .(GDP_local)] == big_mac_gdp_data[, .SD[iso_a3 == "USA"], ] %>% .[, .(GDP_bigmac)])
[1] TRUE

GDP調整後米ドル換算ビッグマック価格( adj_price )の算出

date ごとに線形回帰対象国の「米ドル建て1人当たりGDP( GDP_bigmac )」を説明変数、「米ドル換算ビッグマック価格( dollar_price )」を目的変数とし、その線形回帰の結果をGDP調整後米ドル換算ビッグマック価格( adj_price )とする。

big_mac_gdp_data[
  ,
  `:=`(
    adj_price = lm(dollar_price ~ GDP_bigmac) %>% predict()
  ),
  by = date
]
glimpse(big_mac_gdp_data)
Rows: 1,886
Columns: 11
$ name          <chr> "Argentina", "Australia", "Brazil", "Britain", "Canada",…
$ iso_a3        <chr> "ARG", "AUS", "BRA", "GBR", "CAN", "CHL", "CHN", "CZE", …
$ currency_code <chr> "ARS", "AUD", "BRL", "GBP", "CAD", "CLP", "CNY", "CZK", …
$ local_price   <dbl> 2.50, 2.59, 2.95, 1.90, 2.85, 1260.00, 9.90, 54.37, 24.7…
$ dollar_ex     <dbl> 1.0000000, 1.6800000, 1.7900000, 0.6329114, 1.4700000, 5…
$ GDP_dollar    <dbl> 9283.180, 20388.810, 5199.450, 28306.430, 21046.560, 547…
$ GDP_local     <dbl> 9283.18, 32394.17, 6029.89, 17089.80, 31222.68, 2520325.…
$ date          <IDate> 2000-04-01, 2000-04-01, 2000-04-01, 2000-04-01, 2000-0…
$ dollar_price  <dbl> 2.500000, 1.541667, 1.648045, 3.002000, 1.938776, 2.4513…
$ GDP_bigmac    <dbl> 8317.7293, 28016.5795, 4578.6283, 20147.9747, 24539.9309…
$ adj_price     <dbl> 1.941787, 2.286551, 1.876347, 2.148837, 2.225703, 1.8746…

よって米国の自国通貨建てビッグマック価格(=米ドル換算ビッグマック価格)とGDP調整後米ドル換算ビッグマック価格には差異が出る場合がある。

big_mac_gdp_data %>%
  .[, .SD[iso_a3 == "USA"]] %>%
  .[, .(name, currency_code, local_price, dollar_price, adj_price)] %>%
  tail()
            name currency_code local_price dollar_price adj_price
1: United States           USD        4.93         4.93  4.718820
2: United States           USD        5.04         5.04  4.731159
3: United States           USD        5.15         5.15  4.564286
4: United States           USD        5.36         5.36  4.895050
5: United States           USD        5.58         5.58  5.178366
6: United States           USD        5.69         5.69  5.244963

big_mac_adj_index の作成

米ドル換算ビッグマック価格が存在し、かつ線形回帰対象国であり、かつ対象国である行を抽出し big_mac_adj_index を作成。

big_mac_adj_index <- big_mac_gdp_data[
  !is.na(dollar_price) &
    (
      iso_a3 %in% regression_countries |
        iso_a3 %in% regression_addons_2021 & date >= "2021-01-01"
    ) &
    iso_a3 %in% big_mac_countries,
  .(date, iso_a3, currency_code, name, local_price, dollar_ex, dollar_price, GDP_bigmac, adj_price)
]

ビッグマック指数の作成

日付ごとに「米ドル換算ビッグマック価格( dollar_price )とGDP調整後米ドル換算ビッグマック価格( adj_price )の比」の「米ドルでのビッグマック価格と米国のGDP調整後ビッグマック価格の比」からの乖離をGDP調整後ビッグマック指数( USD 列)とする。

for (currency in base_currencies) {
  big_mac_adj_index[
    ,
    (currency) :=
      (
        dollar_price / adj_price
      ) /
      (
        .SD[currency_code == currency]$dollar_price /
          .SD[currency_code == currency]$adj_price
      ) -
      1,
    by = date
  ]
}

求めたGDP調整後ビッグマック指数を小数点5位で四捨五入

big_mac_adj_index[, (base_currencies) := round(.SD, 5L), .SDcols = base_currencies]
glimpse(big_mac_adj_index)
Rows: 1,546
Columns: 10
$ date          <IDate> 2000-04-01, 2000-04-01, 2000-04-01, 2000-04-01, 2000-0…
$ iso_a3        <chr> "ARG", "AUS", "BRA", "GBR", "CAN", "CHL", "CHN", "CZE", …
$ currency_code <chr> "ARS", "AUD", "BRL", "GBP", "CAD", "CLP", "CNY", "CZK", …
$ name          <chr> "Argentina", "Australia", "Brazil", "Britain", "Canada",…
$ local_price   <dbl> 2.50, 2.59, 2.95, 1.90, 2.85, 1260.00, 9.90, 54.37, 24.7…
$ dollar_ex     <dbl> 1.0000000, 1.6800000, 1.7900000, 0.6329114, 1.4700000, 5…
$ dollar_price  <dbl> 2.500000, 1.541667, 1.648045, 3.002000, 1.938776, 2.4513…
$ GDP_bigmac    <dbl> 8317.7293, 28016.5795, 4578.6283, 20147.9747, 24539.9309…
$ adj_price     <dbl> 1.941787, 2.286551, 1.876347, 2.148837, 2.225703, 1.8746…
$ USD           <dbl> 0.36269, -0.28638, -0.07036, 0.47865, -0.07803, 0.38404,…

GDP調整後ビッグマック指数

直近のGDP調整後ビッグマック指数。USD 列が各通貨( currency_code )の米ドルに対するビッグマック指数

big_mac_adj_index %>%
  .[, .SD[max(date) == date]] %>%
  .[, .(date, name, currency_code, local_price, USD)] %>%
  .[order(USD), ]
          date                 name currency_code local_price      USD
 1: 2024-01-01               Taiwan           TWD       75.00 -0.57641
 2: 2024-01-01            Hong Kong           HKD       23.00 -0.50819
 3: 2024-01-01            Indonesia           IDR    38000.00 -0.46694
 4: 2024-01-01                Japan           JPY      450.00 -0.43058
 5: 2024-01-01                India           INR      215.00 -0.42010
 6: 2024-01-01             Malaysia           MYR       13.15 -0.41849
 7: 2024-01-01         South Africa           ZAR       51.90 -0.40966
 8: 2024-01-01                Qatar           QAR       14.00 -0.40871
 9: 2024-01-01                Egypt           EGP       85.00 -0.38364
10: 2024-01-01          Philippines           PHP      161.00 -0.36393
11: 2024-01-01              Ukraine           UAH      110.00 -0.34840
12: 2024-01-01              Vietnam           VND    74000.00 -0.33093
13: 2024-01-01              Romania           RON       15.65 -0.29268
14: 2024-01-01                China           CNY       25.00 -0.26296
15: 2024-01-01                 Oman           OMR        1.42 -0.26118
16: 2024-01-01           Azerbaijan           AZN        5.95 -0.23904
17: 2024-01-01               Jordan           JOD        2.50 -0.21710
18: 2024-01-01              Moldova           MDL       63.00 -0.21676
19: 2024-01-01          South Korea           KRW     5500.00 -0.19790
20: 2024-01-01            Singapore           SGD        6.65 -0.18164
21: 2024-01-01              Hungary           HUF     1400.00 -0.18121
22: 2024-01-01            Guatemala           GTQ       29.00 -0.17704
23: 2024-01-01             Thailand           THB      135.00 -0.16940
24: 2024-01-01               Israel           ILS       17.00 -0.16793
25: 2024-01-01             Pakistan           PKR     1065.00 -0.13532
26: 2024-01-01            Argentina           ARS     3150.00 -0.13459
27: 2024-01-01               Turkey           TRY      120.00 -0.12239
28: 2024-01-01               Kuwait           KWD        1.40 -0.11649
29: 2024-01-01              Bahrain           BHD        1.70 -0.09790
30: 2024-01-01 United Arab Emirates           AED       18.00 -0.09297
31: 2024-01-01            Australia           AUD        7.70 -0.08771
32: 2024-01-01             Honduras           HNL      102.00 -0.07088
33: 2024-01-01       Czech Republic           CZK      105.00 -0.07048
34: 2024-01-01                 Peru           PEN       15.90 -0.06503
35: 2024-01-01                Chile           CLP     4050.00 -0.05108
36: 2024-01-01          New Zealand           NZD        8.20 -0.04886
37: 2024-01-01            Nicaragua           NIO      159.00 -0.01960
38: 2024-01-01        United States           USD        5.69  0.00000
39: 2024-01-01              Croatia           EUR        4.38  0.00077
40: 2024-01-01         Saudi Arabia           SAR       19.00  0.00481
41: 2024-01-01              Denmark           DKK       39.00  0.01830
42: 2024-01-01               Poland           PLN       19.90  0.03916
43: 2024-01-01               Canada           CAD        7.47  0.04521
44: 2024-01-01               Brazil           BRL       23.90  0.05097
45: 2024-01-01              Britain           GBP        4.49  0.10293
46: 2024-01-01               Sweden           SEK       61.29  0.11000
47: 2024-01-01               Mexico           MXN       89.00  0.12273
48: 2024-01-01             Colombia           COP    19900.00  0.12665
49: 2024-01-01            Euro area           EUR        5.39  0.15279
50: 2024-01-01           Costa Rica           CRC     2950.00  0.22661
51: 2024-01-01               Norway           NOK       75.00  0.25145
52: 2024-01-01            Sri Lanka           LKR     1820.00  0.28296
53: 2024-01-01          Switzerland           CHF        7.10  0.45592
54: 2024-01-01              Uruguay           UYU      275.00  0.50761
          date                 name currency_code local_price      USD

データソース

最終更新

Sys.time()
[1] "2024-05-18 11:25:42 JST"

R、Quarto、Package

R.Version()$version.string
[1] "R version 4.3.3 (2024-02-29 ucrt)"
quarto::quarto_version()
[1] '1.4.553'
packageVersion(pkg = 'tidyverse')
[1] '2.0.0'

著者