45年ぶりの戒厳令宣布後の為替変動ショック:R視覚化でウォン・ドル為替レートのグラフを作成する

2024年12月3日夜10時27分、韓国で戒厳令が宣布され、金融市場は大きな混乱に陥りました。 戒厳令は、国家非常事態の際に政府が軍事的統制を通じて秩序を維持する措置で、経済に深刻な影響を与える可能性があります。

今回の記事では、戒厳令の宣布が為替レートに与えた影響をRの視覚化方法を活用して分析し、ウォンドル為替レートのグラフを生成する過程を共有します。これにより、戒厳令の経済的影響を定量的に理解し、今後の対応策を模索してみましょう。

R로 시각화한 계엄령 발표후 원달러 환율 그래프
( Rで可視化してみた韓国ウォンドル為替レートグラフ )

1.必要なパッケージのインストールとロード

まず、データを取得して可視化するために必要なRパッケージをインストールしてロードします。ここで、パッケージをロードする前に該当パッケージがインストールされてない場合、コード実行時、コンソールウィンドウでパッケージのインストールが必要だと教えてくれます。たぶん、皆さんはalphavantagerというパッケージがインストールされてないと思います。 下記のソースコードでインストールコマンド(install.packages)を参考して未インストールされたパッケージをインストールしてください。

# 必要なパッケージのインストールとロード
# install.packages("alphavantager") # パッケージをインストールする際、パッケージ名の横に " 必須!
library(alphavantager)
library(dplyr)
library(ggplot2)
library(lubridate)
  • アルファバンテージは 株式、外国為替、仮想通貨データを提供する無料APIを提供します。ユーザーはメール登録後、無料APIキーを発行され、データを活用することができます。このAPIはJSONおよびCSV形式でデータを提供し、株式の時系列データ、企業の基本情報、技術的指標などを含みます。無料APIは1日最大500回、1分間に最大5回のリクエストが可能で、リアルタイムデータは外国為替と仮想通貨に限定されます。

2.Alpha Vantage APIの設定とデータダウンロード

Alpha Vantage APIを使用して、分単位の為替レートデータをダウンロードします。このAPIを使用するには 発行されたAPIキーが必要します。

# Alpha Vantage APIキーの設定
av_api_key("YOUR_ALPHA_VANTAGE_API_KEY") # 発行されたAPIキーを入力します。

# 分単位データをダウンロード
symbol <- "USDKRW" # ウォン-ドル為替レートシンボル
data <- av_get(
  symbol = symbol、
  av_fun = "TIME_SERIES_INTRADAY", # Intradayデータを取得するための設定
  interval = "1min"、# 1分単位の間隔
  outputsize = "full" # 全データを取得するための設定
)

3.データ前処理

ダウンロードしたデータを前処理し、分析に適した形に変換します。これには、時間帯の変換と必要な列の選択が含まれます。

# データの前処理(UTC → KST 変換を含む)
data_filtered % %
  select(timestamp, open, high, low, close) %>% # 必要な列選択
  mutate(timestamp = with_tz(timestamp, tzone = "Asia/Seoul"))%>% # UTC → KST 変換
  filter(
    timestamp >= as.POSIXct("2024-12-03 00:00:00:00", tz = "Asia/Seoul") & # KST基準12月3日0時以降
      timestamp %
  arrange(timestamp) # 時系列で並べ替えます。

# データが空白の場合の処理
if (nrow(data_filtered) == 0) {
  stop("No data available for the selected time range for the selected time range. Please check the API or time range.")
}

4.平均、最高、最低為替レート計算

前処理されたデータをもとに、平均、最高、最低の為替レートを計算します。

# 平均、最高、最低の為替レートを計算します。
avg_rate <- mean(data_filtered$close, na.rm = TRUE) # 平均為替レートを計算する
max_rate <- max(data_filtered$high, na.rm = TRUE) # 最高レートを計算します。
min_rate <- min(data_filtered$low, na.rm = TRUE) # 最低為替レートを計算する

5.ウォンドル為替レートのグラフを視覚化する

ggplot2を使って為替レートの変動を可視化します。

# 可視化
ggplot(data_filtered, aes(x = timestamp, y = close)) + ggplot(data_filtered, aes(x = timestamp, y = close)) + #
  geom_line(color = "steelblue", size = 1.2) + # 為替レート変化の折れ線グラフ
  geom_hline(yintercept = avg_rate, color = "darkgreen", linetype = "dashed", size = 1) + # 平均為替レートの水平線
  geom_hline(yintercept = max_rate, color = "red", linetype = "dotted", size = 1) + # 最高為替レートの水平線
  geom_hline(yintercept = min_rate, color = "blue", linetype = "dotted", size = 1) + # 最低為替レートの水平線
  annotate("text", x = max(data_filtered$timestamp), y = avg_rate、
           label = paste0("Average: ", round(avg_rate, 2)), vjust = -1, color = "darkgreen") + +...
  annotate("text", x = max(data_filtered$timestamp), y = max_rate、
           label = paste0("Max: ", round(max_rate, 2)), vjust = -1, color = "赤") + annotate("text")
  annotate("text", x = max(data_filtered$timestamp), y = min_rate、
           label = paste0("Min: ", round(min_rate, 2)), vjust = 2, color = "青") + annotate("text")
  labs(
    title = "2024年12月3日0時(日本時間12月3日0時)からのKRW/USD為替レート"、
    subtitle = "1-Minute Interval Data via Alpha Vantage API"、
    x = "時間(KST)"、
    y = "為替レート(KRW/USD")
  
  theme_minimal() +
  theme(
    plot.title = element_text(size = 18, face="bold")、
    plot.subtitle= element_text(size=14)、
    axis.title= element_text(size=12)、
    axis.text= element_text(size=10)、
    axis.text.x= element_text(angle=45,hjust=1)         

6.戒厳令と金融市場: データが意味すること

戒厳令の宣布は、金融市場に大きな心理的・実質的なショックを与えました。Rを活用すれば、このようなデータを定量的に分析し、投資判断を下すのに役立ちます。

この記事で見てきたウォンドル為替レートグラフ作成コードは、為替レートデータを直接取り込み、変化を分析して視覚化する方法を示しています。このような方法は、単に数字を越えて、経済状況を総合的に理解するのに非常に便利です。

# 全コードとコード詳細解説

# 必要なパッケージのインストールとロード
# install.packages("alphavantager")
library(alphavantager)
library(dplyr)
library(ggplot2)
library(lubridate)

# Alpha Vantage APIキー設定
av_api_key("YOUR_ALPHA_VANTAGE_API_KEY") # 発行されたAPIキーを入力します。

# 分単位データをダウンロード
symbol <- "USDKRW" # ウォン-ドル為替レートシンボル
data <- av_get(
  symbol = symbol、
  av_fun = "TIME_SERIES_INTRADAY", # Intradayデータを取得するための設定
  interval = "1min"、# 1分単位の間隔
  outputsize = "full" # 全データを取得するための設定
)

# データの前処理 (UTC → KST 変換を含む)
data_filtered %
  select(timestamp, open, high, high, low, close) %>% # 必要な列選択
  mutate(timestamp = with_tz(timestamp, tzone = "Asia/Seoul"))%>% # UTC → KST 変換
  filter(
    timestamp >= as.POSIXct("2024-12-03 00:00:00:00", tz = "Asia/Seoul") & # KST基準12月3日0時以降
      timestamp %
  arrange(timestamp) # 時系列で並べ替えます。

# データが空白の場合の処理
if (nrow(data_filtered) == 0) {
  stop("No data available for the selected time range for the selected time range. Please check the API or time range.")
}

#の平均、最高、最低の為替レート計算
avg_rate <- mean(data_filtered$close, na.rm = TRUE) #の平均為替レートを計算します。
max_rate <- max(data_filtered$high, na.rm = TRUE) # 最高為替レートを計算する
min_rate <- min(data_filtered$low, na.rm = TRUE) # 最低為替レートを計算する

# の可視化
ggplot(data_filtered, aes(x = timestamp, y = close)) + ggplot(data_filtered, aes(x = timestamp, y = close))
  geom_line(color = "steelblue", size = 1.2) + #の為替レート変化の折れ線グラフ
  geom_hline(yintercept = avg_rate, color = "darkgreen", linetype = "dashed", size = 1) + 1TP5.2
  geom_hline(yintercept = max_rate, color = "red", linetype = "dotted", size = 1) + geom_hline(yintercept = max_rate, color = "red", linetype = "dotted", size = 1)
  geom_hline(yintercept = min_rate, color = "blue", linetype = "dotted", size = 1) + geom_hline(yintercept = min_rate, color = "青", linetype = "点線", size = 1)
  annotate("text", x = max(data_filtered$timestamp), y = avg_rate、
           label = paste0("Average: ", round(avg_rate, 2)), vjust = -1, color = "darkgreen") + annotate("text")
  annotate("text", x = max(data_filtered$timestamp), y = max_rate、
           label = paste0("Max: ", round(max_rate, 2)), vjust = -1, color = "赤") + annotate("text")
  annotate("text", x = max(data_filtered$timestamp), y = min_rate、
           label = paste0("Min: ", round(min_rate, 2)), vjust = 2, color = "青") + annotate("text")
  labs(
    title = "2024年12月3日0時(日本時間12月3日0時)からのKRW/USD為替レート"、
    subtitle = "1-Minute Interval Data via Alpha Vantage API"、
    x = "時間(KST)"、
    y = "為替レート(KRW/USD")
  
  theme_minimal() +
  theme(
    plot.title=element_text(size=18, face="bold")、
    plot.subtitle=element_text(size=14)、
    axis.title=element_text(size=12)、
    axis.text=element_text(size=10)、
    axis.text.x=element_text(angle=45,hjust=1)
)

コード解釈

1. パッケージのインストールとロード

   library(alphavantager)
   library(dplyr)
   library(ggplot2)
   library(lubridate)
  • アルファバンタガー: Alpha Vantage APIを介して金融データを取得するために使用されます。
  • dplyrです:データ前処理と操作のためのパッケージです。
  • ggplot2:データ可視化のためのパッケージです。
  • ルブリデート: 日付と時間操作のためのパッケージです。

2. Alpha Vantage APIキー設定

   av_api_key("YOUR_ALPHA_VANTAGE_API_KEY")
  • Alpha Vantage APIを使用するためにプライベートAPIキーを設定します。

3. データダウンロード

   symbol <- "USDKRW"
   data <- av_get(
     symbol=symbol、
     av_fun="TIME_SERIES_INTRADAY"、
     interval="1min"、
     outputsize="full"
   )
  • 記号: ウォン-ドル為替レートのシンボルを設定します。
  • av_get: Alpha Vantageから分単位でウォン-ドル為替レートデータを取得します。

4. データ前処理

   data_filtered %
     select(timestamp, open, high, low, close) %>%
     mutate(timestamp=with_tz(timestamp, tzone="Asia/Seoul"))%>%
     filter(
       timestamp >= as.POSIXct("2024-12-03 00:00:00:00", tz="Asia/Seoul")&timestamp >= as.POSIXct(
       timestamp %
     arrange(timestamp)
  • 選択: 必要な列だけを選択します。
  • 変異させるUTC時間を韓国標準時(KST)に変換します。
  • フィルター: 指定した日付範囲内のデータをフィルタリングします。
  • 手配するを表示します:データを時系列に並べ替えます。

5. データが空の場合の処理

   if (nrow(data_filtered) == 0) { {
     stop("選択された時間帯のデータがありません。 APIまたは時間帯を確認してください。")
   }
  • フィルタリングされたデータが空の場合、エラーメッセージを出力し、実行を中断します。

6. 平均、最高、最低為替レート計算

   avg_rate <- mean(data_filtered$close, na.rm=TRUE)
   max_rate <- max(data_filtered$high, na.rm=TRUE)
   min_rate <- min(data_filtered$low, na.rm=TRUE)
  • 平均(avg_rate)、最高(max_rate)、最低(min_rate) 為替レートをそれぞれ計算します。

7.ウォン・ドル為替レートグラフ 可視化 下記

   ggplot(data_filtered, aes(x=timestamp, y=close)) + ggplot(data_filtered, aes(x=timestamp, y=close)) +...
     geom_line(color="steelblue", size=1.2) +
     geom_hline(yintercept=avg_rate,color="darkgreen",linetype="dashed",size=1)+ geom_hline(yintercept=avg_rate,color="darkgreen",linetype="dashed",size=1)
     geom_hline(yintercept=max_rate,color="red",linetype="dotted",size=1)+。
     geom_hline(yintercept=min_rate,color="blue",linetype="dotted",size=1)+。
     annotate("text",x=max(data_filtered$timestamp),y=avg_rate、
              label=paste0("平均: ",round(avg_rate,2)),vjust=-1,color="darkgreen")+。
     annotate("text",x=max(data_filtered$timestamp),y=max_rate、
              label=paste0("Max: ",round(max_rate,2)),vjust=-1,color="red")+。
     annotate("text",x=max(data_filtered$timestamp),y=min_rate、
              label=paste0("Min: ",round(min_rate,2)),vjust=2,color="blue")+。
     labs(
       title="2024年12月3日(KST)午前0時からのKRW/USD為替レート"、
       subtitle="Alpha Vantage APIによる1分足データ"、
       x="時間(KST)"、
       y="為替レート(KRW/USDあたり")
     
     theme_minimal() +
     theme(
       plot.title=element_text(size=18, face="bold")、
       plot.subtitle=element_text(size=14)、
       axis.title=element_text(size=12)、
       axis.text=element_text(size=10)、
       axis.text.x=element_text(angle=45,hjust=1)
     )
  • geom_line: 為替レートの変化を折れ線グラフで表示します。
  • geom_hline平均(緑の点線)、最高(赤い点線)、最低(青い点線)の為替レートを水平線で表示します。
  • 注釈をつける: グラフに各数値のテキスト注釈を追加します。
  • 研究室: グラフタイトルと軸ラベルを設定します。
  • theme_minimal および テーマ:グラフのスタイルとテキストサイズを設定します。

このコードは、R視覚化方法を使用してAlpha Vantage APIからデータを取得して分析し、韓国ウォン-ドル為替レートのグラフを生成するプロセスを示しています。 生成されたグラフを見ると、日付が少し合わないのですが、これは時間体制のためと思われ、もう少し研究して韓国現地時間に合わせて変えてみようと思います)。

類似の投稿