반응형

 

파이썬으로 비트코인 가격과 미국 기준금리 데이터를 분석하고 시각화하기

비트코인, 미국 기준금리, 파이썬

비트코인과 미국 기준금리 간의 상관관계를 파이썬 코드를 통해 분석한 결과, 상관관계가 낮음을 발견했습니다. 이는 비트코인 가격에 큰 영향을 미치는 요인이 다른 변수들에 의해 결정된다는 것을 시사합니다. 따라서 비트코인 투자 결정을 내리기 위해서는 여러 가지 요소를 고려해야 함을 알려드립니다. 이 글을 통해 비트코인 투자를 고려하는 구독자분들께서는 상관관계를 너무 중요시하지 않고 다양한 정보를 수집하여 투자 결정을 내리시기를 권장합니다.

 

비트코인 가격과 미국 기준금리 데이터 수집

  • FinanceDataReader와 pandas_datareader를 이용하여 데이터 수집
  • 비트코인 가격은 'BTC/KRW'을 이용하여 대한민국 원화 가격으로 수집
  • 미국 기준금리는 FRED API를 이용하여 수집

데이터 전처리

  • 비트코인 가격은 종가 기준으로 로그 적용
  • y축 값을 지수 함수로 변환하여 비트코인 가격을 실제 가격으로 표시
데이터 시각화
  • matplotlib을 이용하여 비트코인 가격과 미국 기준금리를 동시에 시각화
  • 비트코인 가격을 로그 스케일로 표시
  • 미국 기준금리를 빨간색으로 표시하여 가격과의 대조를 강조
  • 두 가지 그래프를 서로 다른 y축을 사용하여 겹치지 않게 표시
상관관계 분석
  • 비트코인 가격과 미국 기준금리의 상관관계를 분석
  • Pearson 상관계수를 계산하여 두 변수 간의 상관관계를 평가
  • 결과를 통해 두 변수는 서로 상관관계가 낮다는 것을 확인

파이썬 코드 & 그래프 분석 & 상관계수

https://colab.research.google.com/drive/1ErZYQzuPfPcUml0Uac1WdbX7gyPkYvbN?usp=sharing

 

btc_fred_price.ipynb

Colaboratory notebook

colab.research.google.com

import FinanceDataReader as fdr
import pandas_datareader.data as web
import matplotlib.pyplot as plt
import numpy as np
import matplotlib.ticker as ticker

#FinanceDataReader로 비트코인 가격 데이터 받아오기
btc = fdr.DataReader('BTC/KRW', '2012')

#종가 기준으로 로그 적용
btc['Close_Log'] = np.log(btc['Close'])

#FRED API를 사용하여 미국 기준금리 데이터 받아오기
start = datetime.datetime(2014, 1, 1)
end = datetime.datetime.today()
fedfunds = web.DataReader('FEDFUNDS', 'fred', start, end)

#그래프 그리기
fig, ax = plt.subplots(figsize=(12,6))
ax.plot(btc.index, btc['Close_Log'], label='Bitcoin Price (Log Scale)')
ax.set_title('Bitcoin Price vs. Federal Funds Rate')
ax.set_xlabel('Date')
ax.set_ylabel('Log Price / Interest Rate (%)')

#y축 값을 지수 함수로 변환하여 비트코인 가격을 실제 가격으로 표시
def y_fmt(x, _):
    return '{:,.0f}'.format(np.exp(x))

ax.yaxis.set_major_formatter(ticker.FuncFormatter(y_fmt))


#미국 기준금리 그래프 추가
ax2 = ax.twinx()
ax2.plot(fedfunds.index, fedfunds['FEDFUNDS'], color='red', label='Federal Funds Rate')
ax2.set_ylabel('Interest Rate (%)')

#범례 추가
lines, labels = ax.get_legend_handles_labels()
lines2, labels2 = ax2.get_legend_handles_labels()
ax2.legend(lines + lines2, labels + labels2, loc='upper left')

plt.show()

bitcoin price & federal funds rate

위 코드 결과에서는 비트코인 가격의 로그 스케일과 미국 기준금리가 어떤 관계에 있는지를 분석하고 있습니다. 그래프를 보면 미국 기준금리와 비트코인 가격은 서로 반대 방향으로 움직이는 경향이 있음을 알 수 있습니다. 미국 기준금리가 오르면 비트코인 가격이 하락하고, 미국 기준금리가 내려가면 비트코인 가격이 상승하는 경향을 보입니다. 또한, y축 값을 지수 함수로 변환하여 비트코인 가격을 실제 가격으로 표시하였습니다. 따라서, 이 코드를 통해 비트코인 가격의 변동을 이해하고 미국 기준금리와의 관련성을 파악할 수 있습니다.

import pandas as pd

# 두 데이터프레임을 공통의 기간으로 조정
btc = btc.loc[btc.index >= fedfunds.index[0], :]
fedfunds = fedfunds.loc[fedfunds.index >= btc.index[0], :]

# 상관계수 계산
corr = pd.concat([btc['Close_Log'], fedfunds['FEDFUNDS']], axis=1).corr(method='pearson').iloc[0, 1]
print('두 그래프의 상관계수:', corr)
두 그래프의 상관계수: 0.27237114544454205
상관계수가 0.27237114544454205라는 것은 비트코인 가격과 미국 기준금리 간에 어느 정도 양의 상관관계가 있다는 것을 나타냅니다. 하지만 이 값이 크지는 않기 때문에 두 변수 간에는 약한 상관관계가 있다고 해석할 수 있습니다.

 

반응형