독수리 요새
INR/USD 환율과 금값 사이의 관계 시각화 본문
발단은 동생이 보내준 아래 기사 때문이었다.
https://n.news.naver.com/article/028/0002720243?sid=101
기사 요약
1. 금 소비와 관련된 인도 전통 및 문화
힌두력의 길일: 인도에서는 길일에 금을 구매하는 전통이 있으며, 이는 디왈리 축제와 같은 중요한 명절에 집중된다.
디왈리 축제 (2024년: 10월 29일~11월 3일): 부와 풍요를 상징하는 락슈미 여신을 기리며 금을 구매, 가정에 행복과 번영을 기원한다.
결혼식 시즌 (11월 중순~1월): 결혼식이 집중적으로 열리며, 금 수요가 크게 증가한다. 결혼 지참금 문화로 인해 신부 가족이 금을 준비하는 경우가 많다.
2. 금 수요와 경제적 영향
세계 금 수요의 중심: 인도는 연간 700~800톤(t)의 금을 소비하며, 세계에서 중국에 이어 두 번째로 큰 금 소비국이다.
중국과 인도를 합치면 세계 금 수요의 60%에 달함.
인도 금 수요의 약 50%는 결혼식과 관련.
인플레이션과 금: 인도의 인플레이션이 1% 상승할 때 금 수요는 2.6% 증가. 금은 인도에서 화폐 가치 하락에 대비하는 자산으로 인식됨.
3. 금 수요 감소 요인
투자 형태 변화: 젊은 세대는 금 대신 주식, 채권 등 수익률이 높은 대체 자산에 투자. 금괴나 코인 수요는 2010년 340t에서 2023년 185t으로 감소.
정부 정책: 나렌드라 모디 총리의 화폐개혁과 금 수입관세 인상으로 금 수요가 억제됨.
2022년: 금 수입관세 15%로 인상.
2024년 7월: 금 수입관세를 6%로 인하하여 귀금속 내수 시장 활성화 시도.
4. 금 소비와 경제적 문제
경상수지 적자: 금 수입이 늘어나면 경상수지 적자가 커지는 구조. 2012/2013 회계연도에는 금 수입이 전체 수입의 10%를 차지하며 경상수지 악화.
금담보 대출: 인도의 금 보유량(25,000t, 약 1조5천억 달러)은 미국 중앙은행의 금 보유량(8100t)의 약 3배. 금을 담보로 대출받는 시장이 농촌 지역에서 특히 활성화됨.
5. 문화적 특성과 지역 차이
지역별 금 소비 관습: 북부는 금이 발에 닿는 것을 금기시하지만, 남부에서는 금 발찌나 발가락지를 사용하는 경우도 있음.
농촌 시장의 잠재력: 농촌 인구 9억1천만 명이 거주하며, 금 소비 잠재력이 높음.
6. 인도 정부의 '메이크 인 인디아' 정책
금 세공업 활성화를 위해 금 수입관세를 인하(15% → 6%)하며 국내 생산 및 소비 촉진.
결과: 금 수입액이 전월 대비 221% 증가(2024년 8월).
7. 인도 시장의 특성과 변화
소비 결정 요인: 종교, 문화, 경제적 동인이 소비에 중요한 역할.
소비 패턴 변화: 디지털 금융의 확산과 세대 교체로 금 소비는 감소, 대체 투자로 이동.
정부 정책: 귀금속 산업 육성을 위한 적극적인 정책 변화.
인도 시장의 중요성: 세계에서 가장 빠르게 성장하는 경제 대국으로, 종교∙문화적 특성과 인구 구조 변화에 맞춘 전략이 중요.
인도 사람들이 금 좋아하는 건 알고 있었다. 그리고 마침 현재 인도에서 디왈리 직후이며 한창 결혼 시즌이기도 하다. 한번 금값과 인도 경제의 관계를 R로 조사해 보고 싶어졌다.
# 필요한 라이브러리 설치
install.packages("quantmod")
install.packages("ggplot2")
# 라이브러리 로드
library(quantmod)
library(ggplot2)
# 1. 금값 데이터 로드 (Yahoo Finance)
# Gold price symbol: "GC=F" (Gold Futures)
getSymbols("GC=F", src = "yahoo", from = "2015-01-01", to = "2023-12-31")
gold_data <- data.frame(Date = index(`GC=F`), GoldPrice = coredata(`GC=F`)[, "GC=F.Close"])
# 2. 인도 환율 데이터 로드
# USD/INR Exchange rate: "USDINR=X"
getSymbols("USDINR=X", src = "yahoo", from = "2015-01-01", to = "2023-12-31")
inr_data <- data.frame(Date = index(`USDINR=X`), ExchangeRate = coredata(`USDINR=X`)[, "USDINR=X.Close"])
# 3. 데이터 병합
merged_data <- merge(gold_data, inr_data, by = "Date")
# 4. 상관관계 계산
correlation <- cor(merged_data$GoldPrice, merged_data$ExchangeRate, use = "complete.obs")
print(paste("금값과 인도 환율 간 상관계수: ", correlation))
# 5. 시각화
# 산점도: 금값과 환율
ggplot(merged_data, aes(x = GoldPrice, y = ExchangeRate)) +
geom_point(color = "blue") +
geom_smooth(method = "lm", color = "red", se = FALSE) +
labs( title = paste("금값과 루피화 환율의 상관관계 (Correlation:", round(correlation, 2), ")"),
x = "금값 (USD/Ounce)",
y = "환율 (USD/INR)") +
theme_minimal()
# 필요한 패키지 설치
install.packages("quantmod")
install.packages("ggplot2")
# 패키지 로드
library(quantmod)
library(ggplot2)
# 1. 데이터 다운로드
# 금값 데이터 (Gold Futures: GC=F)
getSymbols("GC=F", src = "yahoo", from = "2015-01-01", to = "2023-12-31")
gold_data <- data.frame(Date = index(`GC=F`), GoldPrice = coredata(`GC=F`)[, "GC=F.Close"])
# 원/달러 환율 데이터 (KRW/USD: KRW=X)
getSymbols("KRW=X", src = "yahoo", from = "2015-01-01", to = "2023-12-31")
krw_data <- data.frame(Date = index(`KRW=X`), ExchangeRate = coredata(`KRW=X`)[, "KRW=X.Close"])
# 2. 데이터 병합
merged_data <- merge(gold_data, krw_data, by = "Date", all = FALSE)
# 3. 상관관계 계산
correlation <- cor(merged_data$GoldPrice, merged_data$ExchangeRate, use = "complete.obs")
print(paste("금값과 원화 환율 간 상관계수: ", round(correlation, 2)))
# 4. 시각화
# 산점도: 금값과 원화 환율
ggplot(merged_data, aes(x = GoldPrice, y = ExchangeRate)) +
geom_point(color = "blue", alpha = 0.6) +
geom_smooth(method = "lm", color = "red", se = FALSE) +
labs(title = paste("금값과 원화 환율의 상관관계 (Correlation:", round(correlation, 2), ")"),
x = "금값 (USD/Ounce)",
y = "환율 (KRW/USD)") +
theme_minimal()
금값과 USD/INR, 금값과 KRW/USD 환율은 모두 양적 상관관계가 있지만 한국보다 인도의 경우에 상관계수가 훨씬 높다. 그리고 여기서 USD/INR, KRW/USD라는 사소한 표기 자체에 대해 의문이 생겨 추가로 질문을 했다.
# 1. 데이터 확인
cat("Gold TS length:", length(gold_ts), "\n")
cat("Exchange TS length:", length(exchange_ts), "\n")
# Granger Test 실행 및 에러 처리
granger_test_gold_to_exchange <- tryCatch(
grangertest(gold_ts ~ exchange_ts, order = optimal_lag),
error = function(e) {
cat("금값 -> 환율 Granger Test 실행 오류:", e$message, "\n")
return(NULL)
}
)
granger_test_exchange_to_gold <- tryCatch(
grangertest(exchange_ts ~ gold_ts, order = optimal_lag),
error = function(e) {
cat("환율 -> 금값 Granger Test 실행 오류:", e$message, "\n")
return(NULL)
}
)
# Granger Test 결과 확인
cat("Granger Test 금값 -> 환율 결과:", granger_test_gold_to_exchange, "\n")
cat("Granger Test 환율 -> 금값 결과:", granger_test_exchange_to_gold, "\n")
# Granger Test 결과 분석
if (!is.null(granger_test_gold_to_exchange)) {
if (length(granger_test_gold_to_exchange$p.value) > 0 && granger_test_gold_to_exchange$p.value < 0.05) {
print("금값이 환율의 Granger 원인일 가능성이 높습니다.")
} else {
print("금값은 환율의 Granger 원인이 아닙니다.")
}
} else {
print("금값 -> 환율 Granger Test가 실행되지 않았습니다.")
}
if (!is.null(granger_test_exchange_to_gold)) {
if (length(granger_test_exchange_to_gold$p.value) > 0 && granger_test_exchange_to_gold$p.value < 0.05) {
print("환율이 금값의 Granger 원인일 가능성이 높습니다.")
} else {
print("환율은 금값의 Granger 원인이 아닙니다.")
}
} else {
print("환율 -> 금값 Granger Test가 실행되지 않았습니다.")
}
즉 INR/USD 환율과 금값은 매우 뚜렷한 양적 상관관계가 있지만, 두 변수는 어느 방향으로든 인과관계는 아니다. Granger 테스트는 시간 순서에 따른 직접적인 인과관계만을 평가하므로, 두 변수 간 상관관계가 있다고 하더라도 인과관계가 없으면 Granger 테스트는 이를 발견하지 못한다.
인도의 GDP 성장률과 CPI 및 금값을 가지고 상관관계와 인과관계를 살펴보는 같은 실험을 추가로 해보면 매우 좋겠지만 여기서부터는 API 자료를 가져오거나 csv 데이터 전처리를 해야 해서 조금 귀찮다. 이건 나중에.
'미분류' 카테고리의 다른 글
R quantmod 패키지 (1) | 2024.12.19 |
---|---|
한국어와 일본어에서 "이다"와 "있다"의 차이점 (4) | 2024.12.08 |
괴상한 한자들 (0) | 2023.09.29 |
출사표에 나오는 신기한 한자 (1) | 2023.09.28 |
출사표 번역 (0) | 2023.09.28 |