Correlation in Cryptos

주요 암호화폐 수익률들의 선형 상관계수 분석

Author

gitSAM

Published

March 8, 2025

Abstract: 2025년 3월 현재, 시가총액이 크거나 투자자들에게 인기가 많은 주요 암호화폐(popular cryptocurrencies)를 선정하여 지난 1년간의 상관관계를 분석하였다. 대부분의 암호화폐 투자자들은 이러한 주요 암호화폐에 집중적으로 투자하는 경향이 있다. 한편, 암호화폐 자산에 대한 투자자의 평균 투자 기간은 단기(short-term)로, 일반적으로 1개월에서 3개월 사이에 해당한다. 이에 따라 본 연구에서는 데이터의 관측 빈도(observation frequency)를 일간(daily) 단위로 설정하고, 30일, 60일, 90일의 롤링 윈도우(rolling window)를 적용하여 주요 암호화폐 수익률의 선형 상관계수(Pearson’s coefficient)를 분석하였다. 이러한 분석은 변동성 헤징(volatility hedging)을 고려한 분산 투자(diversified investment) 전략 수립에 도움이 될 수 있다. 예를 들어, 일정한 투자 금액(예: 1억 원)을 주요 암호화폐 자산군 내에서 어떻게 배분할지 결정하는 데 있어, 상관계수 분석 결과가 투자 비중 조정에 유용한 정보를 제공할 것으로 기대된다.

1 서론

비트코인(BTC)의 가격 및 수익률은, 단기적으로 다음과 같은 관계를 보여왔다.

  • NDX (나스닥 100 지수)와 강한 양의 상관관계 (Nasdaq 2024, 2023),
  • DXY (미국 달러 지수)와 강한 음의 상관관계 (Coindesk 2023; Coinglass 2023). 만약 비트코인 가격이 달러 가격과 장기적으로도 반대 방향으로 움직인다면, 이는 비트코인이 인플레이션 헤지 자산으로 간주될 수도 있을 가능성을 나타낸다 (Dyhrberg 2021).
  • 금 가격 (GOLD), 국내 실질 총생산량 (GDP) 과의 상관관계는 불명확하거나 간접적인 것으로 알려져 있음 (Cointelegraph 2023; Cryptoslate 2022).

역사적 사례

  • 2020년 COVID-19 위기 이후 BTC와 NDX의 상관관계가 강화됨 (Nasdaq 2020),
  • 2022년 5월 연방준비제도(Fed)의 금리 인상 발표 당시, BTC와 NDX 모두 하락.
  • 2023년 비트코인 빙하기 기간 동안 BTC와 NDX의 상관관계 변화 분석 필요.
  • 2024년 3월 비트코인 ETF가 출시하여 기관 투자자 참여가 증가와 함께께 BTC과 NDX의 coupling이 심해짐.

1.1 주요 암호화폐 목록 및 카테고리

암호화폐 (Cryptocurrency) 심볼 (Ticker) 카테고리 (Category)
비트코인 (Bitcoin) BTC/USD Layer 1
이더리움 (Ethereum) ETH/USD Layer 1, Smart Contract
테더 (Tether) USDT/USD Stablecoin
리플 (XRP) XRP/USD Payment Network
솔라나 (Solana) SOL/USD Layer 1
체인링크 (Chainlink) LINK/USD Oracle
온도 (Ondo) ONDO/USD Real-World Asset (RWA)
카르다노 (Cardano) ADA/USD Layer 1
트론 (Tron) TRX/USD Layer 1
도지코인 (Dogecoin) DOGE/USD Meme Coin

1.2 암호화폐 관련 정보 제공 매체 리뷰

  • 시세 데이터 (Price Data): 실시간 및 과거 가격 변동, 거래량(volume) 등
  • 온체인 데이터 (On-Chain Data): 거래량, 지갑 주소 변화, 네트워크 활성도 등
  • 시장 분석 (Market Analysis): 전문가 및 AI 기반 분석 리포트
  • 뉴스 및 이벤트 (News & Events): 프로젝트 업데이트, 규제 변화 등
  • 소셜 미디어 분석 (Social Media Analysis): 트위터(X), 레딧(Reddit) 등에서의 커뮤니티 반응

2 데이터 분석

2.1 데이터

  • 데이터 소스: CCXT
  • 데이터 기간: 2024년 3월 1일 - 2025년 2월 28일
  • 데이터 빈도 (Data Frequency): 일간(Daily)
  • 분석 대상 암호화폐:
    • BTC/USD, ETH/USD, USDT/USD, XRP/USD, SOL/USD, LINK/USD, ONDO/USD, ADA/USD, TRX/USD, DOGE/USD
  • 롤링 윈도우 크기 (Rolling Window Size): 30일, 60일, 90일

2.2 분석 방법

  • 암호화폐의 일간 수익률(daily return)을 계산.
  • 각 롤링 윈도우 크기(30, 60, 90일)에 대해 롤링 상관 행렬(rolling correlation matrix)을 계산.
  • 평균 상관계수(mean of rolling correlation matrix)를 도출하여 암호화폐 간의 관계를 분석.
Code
# 분석 결과 (Results)

# 여러 거래소에서 지원하는 거래쌍을 확인

import ccxt
import pandas as pd

# 주요 암호화폐 목록
TICKER_COIN = ['BTC/USDT', 'ETH/USDT', 'USDT/USD', 'XRP/USDT', 'SOL/USDT', 'LINK/USDT', 'ONDO/USDT', 'ADA/USDT', 'TRX/USDT', 'DOGE/USDT']

# 지원하는 거래소 목록
exchanges = ['binance', 'kraken', 'bitfinex', 'poloniex']

# 각 거래소에서 지원하는 거래쌍 확인
for exchange_id in exchanges:
    exchange = getattr(ccxt, exchange_id)()
    markets = exchange.load_markets()
    supported_pairs = [pair for pair in TICKER_COIN if pair in markets]
    print(f"{exchange_id} supports: {supported_pairs}")

# 주요 암호화폐 목록
binance_tickers = ['BTC/USDT', 'ETH/USDT', 'XRP/USDT', 'SOL/USDT', 'LINK/USDT', 'ADA/USDT', 'TRX/USDT', 'DOGE/USDT']
kraken_tickers = ['USDT/USD']
poloniex_tickers = ['ONDO/USDT']

# 데이터 기간 설정
START_DATE = '2024-03-01'
END_DATE = '2025-02-28'

# 거래소 설정
binance = ccxt.binance()
kraken = ccxt.kraken()
poloniex = ccxt.poloniex()

# 데이터 불러오기 함수
def fetch_crypto_data(exchange, tickers, start, end):
    data = {}
    start_timestamp = exchange.parse8601(f'{start}T00:00:00Z')
    end_timestamp = exchange.parse8601(f'{end}T00:00:00Z')
    for ticker in tickers:
        try:
            ohlcv = exchange.fetch_ohlcv(ticker, '1d', since=start_timestamp, limit=1000)
            df = pd.DataFrame(ohlcv, columns=['timestamp', 'open', 'high', 'low', 'close', 'volume'])
            df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')
            df.set_index('timestamp', inplace=True)
            data[ticker] = df['close']
        except Exception as e:
            print(f"Error fetching {ticker} from {exchange.id}: {e}")
    return pd.DataFrame(data)

# 데이터 불러오기
binance_data = fetch_crypto_data(binance, binance_tickers, START_DATE, END_DATE)
kraken_data = fetch_crypto_data(kraken, kraken_tickers, START_DATE, END_DATE)
poloniex_data = fetch_crypto_data(poloniex, poloniex_tickers, START_DATE, END_DATE)

# 모든 데이터를 하나의 DataFrame으로 병합
crypto_prices = pd.concat([binance_data, kraken_data, poloniex_data], axis=1)

# 1) 일간 수익률 계산
def compute_returns(price_data: pd.DataFrame) -> pd.DataFrame:
    return price_data.pct_change().dropna(how='all')

crypto_returns = compute_returns(crypto_prices)

# 2) 롤링 상관계수 계산
def rolling_correlation(returns: pd.DataFrame, window: int) -> pd.DataFrame:
    """
    returns: (date x tickers) DataFrame
    window:  rolling window size (days)
    
    returns.rolling(window).corr() 결과는
      - MultiIndex (date, ticker1)
      - columns = ticker2
    형태를 가집니다.
    """
    corr_rolling = returns.rolling(window).corr()
    return corr_rolling

# 3) 날짜별 상관행렬을 모아서 평균 상관행렬을 산출
def average_correlation_matrix(returns: pd.DataFrame, window: int) -> pd.DataFrame:
    """
    - returns.rolling(window).corr() 결과를 사용
    - 각 날짜별 (티커 x 티커) 상관행렬을 합산 후, 날짜 개수로 나누어 평균
    """
    corr_rolling = rolling_correlation(returns, window)
    
    # MultiIndex에서 날짜(level=0) 목록을 추출
    unique_dates = corr_rolling.index.get_level_values(0).unique()
    tickers = returns.columns
    
    # 상관행렬 누적 합을 위한 (티커 x 티커) 형태의 빈 DataFrame
    sum_matrix = pd.DataFrame(0.0, index=tickers, columns=tickers)
    count = 0
    
    for date in unique_dates:
        # (ticker1 x ticker2) 형태를 얻기 위해 xs(date, level=0)
        date_corr = corr_rolling.xs(date, level=0)
        # date_corr.index = ticker1, date_corr.columns = ticker2
        
        # 혹시 일부 티커에 대한 데이터가 누락되었을 경우를 대비하여 reindex
        date_corr = date_corr.reindex(index=tickers, columns=tickers)
        
        # 날짜별 상관행렬(N x N)을 모두 누적
        if date_corr.notna().all().all():
            sum_matrix += date_corr.fillna(0.0)
            count += 1
    
    # 평균 계산 (count가 0이 되지 않는다고 가정)
    mean_matrix = sum_matrix / count
    
    return mean_matrix

# 4) 롤링 상관계수 평균 계산
rolling_corr_results = {}
for window in [30, 60, 90]:
    mean_corr_matrix = average_correlation_matrix(crypto_returns, window)
    rolling_corr_results[window] = mean_corr_matrix
binance supports: ['BTC/USDT', 'ETH/USDT', 'XRP/USDT', 'SOL/USDT', 'LINK/USDT', 'ONDO/USDT', 'ADA/USDT', 'TRX/USDT', 'DOGE/USDT']
kraken supports: ['BTC/USDT', 'ETH/USDT', 'USDT/USD', 'XRP/USDT', 'SOL/USDT', 'LINK/USDT', 'ADA/USDT', 'DOGE/USDT']
bitfinex supports: ['BTC/USDT', 'ETH/USDT', 'USDT/USD', 'XRP/USDT', 'SOL/USDT', 'LINK/USDT', 'ADA/USDT', 'TRX/USDT', 'DOGE/USDT']
poloniex supports: ['BTC/USDT', 'ETH/USDT', 'XRP/USDT', 'SOL/USDT', 'LINK/USDT', 'ONDO/USDT', 'ADA/USDT', 'TRX/USDT', 'DOGE/USDT']
Code
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

# 모든 행과 열이 출력되도록 설정
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', None)
pd.set_option('display.expand_frame_repr', False)

# 결과 출력 및 시각화
for window, result in rolling_corr_results.items():
    # 상관 행렬을 DataFrame으로 변환
    result_df = result.dropna(how='all')
    print(f"\n[Window = {window} days] Mean Correlation Matrix\n", result_df)
    
    # 히트맵 시각화
    plt.figure(figsize=(10, 8))
    
    # 대각선 요소를 마스킹
    mask = np.triu(np.ones(result_df.shape, dtype=bool))
    
    sns.heatmap(result_df, annot=True, cmap='coolwarm', center=0, mask=mask)
    plt.title(f'Mean Rolling Correlation Matrix (Window Size: {window} days)')
    plt.show()

[Window = 30 days] Mean Correlation Matrix
            BTC/USDT  ETH/USDT  XRP/USDT  SOL/USDT  LINK/USDT  ADA/USDT  TRX/USDT  DOGE/USDT  USDT/USD  ONDO/USDT
BTC/USDT   1.000000  0.812751  0.607459  0.759442   0.710901  0.726252  0.373219   0.824787  0.486519   0.395272
ETH/USDT   0.812751  1.000000  0.597512  0.724565   0.757776  0.738003  0.380331   0.762864  0.333017   0.419611
XRP/USDT   0.607459  0.597512  1.000000  0.592538   0.606949  0.682793  0.312756   0.622800  0.226918   0.284394
SOL/USDT   0.759442  0.724565  0.592538  1.000000   0.699289  0.708103  0.320065   0.717061  0.307900   0.344905
LINK/USDT  0.710901  0.757776  0.606949  0.699289   1.000000  0.773862  0.317306   0.695526  0.285704   0.457395
ADA/USDT   0.726252  0.738003  0.682793  0.708103   0.773862  1.000000  0.404491   0.743431  0.302803   0.368594
TRX/USDT   0.373219  0.380331  0.312756  0.320065   0.317306  0.404491  1.000000   0.360882  0.170416   0.137955
DOGE/USDT  0.824787  0.762864  0.622800  0.717061   0.695526  0.743431  0.360882   1.000000  0.355017   0.393610
USDT/USD   0.486519  0.333017  0.226918  0.307900   0.285704  0.302803  0.170416   0.355017  1.000000   0.274014
ONDO/USDT  0.395272  0.419611  0.284394  0.344905   0.457395  0.368594  0.137955   0.393610  0.274014   1.000000


[Window = 60 days] Mean Correlation Matrix
            BTC/USDT  ETH/USDT  XRP/USDT  SOL/USDT  LINK/USDT  ADA/USDT  TRX/USDT  DOGE/USDT  USDT/USD  ONDO/USDT
BTC/USDT   1.000000  0.806902  0.559687  0.755827   0.691801  0.698022  0.323507   0.825653  0.473639   0.369164
ETH/USDT   0.806902  1.000000  0.540319  0.707804   0.733414  0.699286  0.322430   0.746043  0.328703   0.393115
XRP/USDT   0.559687  0.540319  1.000000  0.550307   0.578009  0.663658  0.276250   0.578877  0.183762   0.242281
SOL/USDT   0.755827  0.707804  0.550307  1.000000   0.678059  0.685017  0.284950   0.710304  0.286279   0.311963
LINK/USDT  0.691801  0.733414  0.578009  0.678059   1.000000  0.745630  0.274904   0.672512  0.264784   0.425054
ADA/USDT   0.698022  0.699286  0.663658  0.685017   0.745630  1.000000  0.366857   0.713890  0.268321   0.313164
TRX/USDT   0.323507  0.322430  0.276250  0.284950   0.274904  0.366857  1.000000   0.315596  0.164262   0.104249
DOGE/USDT  0.825653  0.746043  0.578877  0.710304   0.672512  0.713890  0.315596   1.000000  0.346573   0.360646
USDT/USD   0.473639  0.328703  0.183762  0.286279   0.264784  0.268321  0.164262   0.346573  1.000000   0.259714
ONDO/USDT  0.369164  0.393115  0.242281  0.311963   0.425054  0.313164  0.104249   0.360646  0.259714   1.000000


[Window = 90 days] Mean Correlation Matrix
            BTC/USDT  ETH/USDT  XRP/USDT  SOL/USDT  LINK/USDT  ADA/USDT  TRX/USDT  DOGE/USDT  USDT/USD  ONDO/USDT
BTC/USDT   1.000000  0.802569  0.521451  0.751743   0.674933  0.685430  0.292551   0.820818  0.456609   0.354759
ETH/USDT   0.802569  1.000000  0.497249  0.698130   0.721569  0.679298  0.277568   0.730402  0.317331   0.380166
XRP/USDT   0.521451  0.497249  1.000000  0.505134   0.547214  0.644037  0.254648   0.540650  0.150647   0.217965
SOL/USDT   0.751743  0.698130  0.505134  1.000000   0.655497  0.665090  0.268793   0.700802  0.262762   0.291730
LINK/USDT  0.674933  0.721569  0.547214  0.655497   1.000000  0.727091  0.248582   0.648950  0.240845   0.404284
ADA/USDT   0.685430  0.679298  0.644037  0.665090   0.727091  1.000000  0.335776   0.696838  0.245097   0.292516
TRX/USDT   0.292551  0.277568  0.254648  0.268793   0.248582  0.335776  1.000000   0.279397  0.152573   0.093492
DOGE/USDT  0.820818  0.730402  0.540650  0.700802   0.648950  0.696838  0.279397   1.000000  0.334601   0.338825
USDT/USD   0.456609  0.317331  0.150647  0.262762   0.240845  0.245097  0.152573   0.334601  1.000000   0.252754
ONDO/USDT  0.354759  0.380166  0.217965  0.291730   0.404284  0.292516  0.093492   0.338825  0.252754   1.000000

3 토론 (Discussions)

Important

변수들의 관찰 주기 (단기? 장기?)에 따라 또는 관찰 시기 (10년전? 지금?)에 따라 변수들 간의 선형관계는 유지되지 않을 수 있습니다. 2025년 현재 비트코인 (BTC) 가격은 시장 심리, 규제 변화, 기술적 요인 등에 크게 영향을 받고 있습니다.

  • 상관계수가 낮은 암호화폐 자산 조합을 식별하고, 헤지 투자 전략을 논의.
  • 특정 암호화폐 간의 높은 상관관계가 나타나는 이유 및 그에 따른 리스크 분석.

2024년 3월부터 2025년 2월까지 암호화폐 시장에 큰 영향을 미친 주요 변화 시기와 원인:

  1. 비트코인 반감기 (2024년 4월 20일): 비트코인 채굴 보상이 6.25 BTC에서 3.125 BTC로 절반으로 감소. 이는 비트코인의 공급 감소로 이어져 가격에 상승 압력을 가함.
  2. 비트코인 ETF 자금 유입 증가 (2024년 10월): 비트코인 ETF로의 지속적인 자금 유입이 관찰됨. 10월까지 ETF 투자자들이 총 345,200 BTC(200억 달러 이상의 가치)를 매입.
  3. 트럼프의 대통령 당선 (2024년 11월): 도널드 트럼프가 “암호화폐 대통령”이 되겠다는 공약을 내세우며 당선됨. 이는 암호화폐 시장에 대한 긍정적인 기대감을 불러일으킴.
  4. EU의 암호화폐 시장 규제(MiCA) 전면 시행 (2024년 12월 30일): 유럽연합에서 암호화폐 시장 규제(MiCA)가 전면 시행됨. 이로 인해 EU 전역에서 암호화폐 서비스 제공업체들에 대한 통일된 규제 프레임워크가 적용되기 시작.
  5. 트럼프의 암호화폐 정책 발표 (2025년 1월): 트럼프 대통령이 취임 후 미국을 “암호화폐의 수도”로 만들겠다는 계획을 발표함. 여기에는 비트코인 전략적 비축 등의 아이디어가 포함됨.

stars and bins에서 위의 변화 시기가 bins 역할을 한다는 가정하여, 기간 stars을 다음과 같이 나누어 상관관계를 conditional 해 본다.

  1. 20224년 3월 1일 (관측기간 시작일) - 2024년 4월 20일
  2. 2024년 4월 21일 - 2024년 9월 30일
  3. 2024년 10월 1일 - 2024년 11월 5일
  4. 2024년 11월 6일 - 2024년 12월 31일
  5. 2025년 1월 1일 - 2025년 2월 28일 (관측기간 종료일)

변화를 \(Z\)로 표기했다면, covariance decomposition formula에 의해,

(추후 계속)


4 부록: Conditioning Theorems in Probability Theory

4.1 Adam’s Law: Smoothing Property of Conditional Expectation

Also known as the Law of Total Expectation or Law of Iterated Expectations.

If \(X\) is a random variable whose expectation \(E(X)\) is defined and \(Z\) is any random variable defined on the same probability space, then: \[E(X) = E(E(X|Z)).\]

A conditional expectation can be viewed as a Radon–Nikodym derivative, making the tower property a direct consequence of the chain rule for conditional expectations.

A special discrete case: If \(\{Z_{i}\}\) is a finite or countable partition of the sample space, then: \[E(X) = \sum_{i} E(X \mid Z_i)P(Z_i).\]

4.2 Eve’s Law: Variance Decomposition Formula

Known as the Conditional Variance Formula or the Law of Iterated Variances.

If \(X\) and \(Y\) are random variables defined on the same probability space, and if \(Y\) has finite variance, then:

\[\operatorname{Var}(Y)=E[\operatorname{Var}(Y\mid X)]+\operatorname{Var}(E[Y\mid X]).\]

This is a special case of the covariance decomposition formula.

Applications

  • 분산 = “(조건부 분산)의 평균” + “(조건부 평균)의 분산”

  • Analysis of Variance (ANOVA): Variability in \(Y\) splits into an “unexplained” within-group variance and an “explained” between-group variance. The F-test examines if the explained variance is significantly large, indicating a meaningful effect of \(X\) on \(Y\).

  • Linear Regression Models: The proportion of explained variance is measured as \(R^2\). For simple linear regression (single predictor), \(R^2\) equals the squared Pearson correlation coefficient between \(X\) and \(Y\).

  • Machine Learning and Bayesian Inference: In many Bayesian and ensemble methods, one decomposes prediction uncertainty via the law of total variance. For a Bayesian neural network with random parameters \(\theta\): \(\operatorname {Var} (Y)=\operatorname {E} {\bigl [}\operatorname {Var} (Y\mid \theta ){\bigr ]}+\operatorname {Var} {\bigl (}\operatorname {E} [Y\mid \theta ]{\bigr )}\) often referred to as “aleatoric” (within-model) vs. “epistemic” (between-model) uncertainty

  • Information Theory: For jointly Gaussian \((X,Y)\), the fraction \(\operatorname {Var} (\operatorname {E} [Y\mid X])/\operatorname {Var} (Y)\) relates directly to the mutual information \(I(Y;X)\). In non-Gaussian settings, a high explained-variance ratio still indicates significant information about Y contained in X

Example 1 (Exam Scores): Suppose students’ exam scores vary between two classrooms. The variance of all scores (\(Y\)) can be decomposed into the variance within classrooms (unexplained) and the variance between classroom averages (explained), reflecting differences in teaching quality or resources.

Example 2 (Mixture of Two Gaussians): Consider \(Y\) as a mixture of two normal distributions, where the mixing distribution is Bernoulli with parameter \(p\). Suppose:

\[Y \mid (X=0) \sim N(\mu_0, \sigma_0^2), \quad Y \mid (X=1) \sim N(\mu_1, \sigma_1^2).\]

Then the law of total variance gives:

\[\operatorname{Var}(Y) = p\sigma_1^2 + (1-p)\sigma_0^2 + p(1-p)(\mu_1 - \mu_0)^2.\]

4.3 Covariance Decomposition Formula

Known as the Law of Total Covariance or Conditional Covariance Formula.

If \(X\), \(Y\), and \(Z\) are random variables defined on the same probability space, with finite covariance between \(X\) and \(Y\), then:

\[\operatorname{cov}(X,Y)=E[\operatorname{cov}(X,Y\mid Z)]+\operatorname{cov}(E[X\mid Z],E[Y\mid Z]).\]

This relationship is a particular instance of the general Law of Total Cumulance and is crucial for analyzing dependencies among variables conditioned on a third variable or groupings.

4.4 Bias-Variance Decomposition of MSE

Key: The Bias-Variance Decomposition emphasizes the trade-off between making \(\hat{Y}\) reliably close to its own expected value (low variance) and aligning that expected value with the true target \(\mathbb{E}[Y]\) (low bias).

In many estimation or prediction settings, we have a random outcome \(Y\) and an estimator (or model prediction) \(\hat{Y}\). The Mean Squared Error (MSE) of \(\hat{Y}\) is:

\[ \mathrm{MSE}(\hat{Y}) = \mathbb{E}\bigl[(Y - \hat{Y})^2\bigr]. \]

If we decompose \(\hat{Y}\) around its expected value, we can split MSE into a bias term and a variance term (plus any irreducible noise in certain contexts). Formally, assume

\[ \hat{Y} = f(X) + \text{estimation noise}, \quad Y = f(X) + \varepsilon, \]

where \(\varepsilon\) is an irreducible error term with mean zero (e.g., observational or inherent noise). Then:

\[ \begin{aligned} \mathrm{MSE}(\hat{Y}) &= \mathbb{E}\bigl[(Y - \hat{Y})^2\bigr]\\ &= \underbrace{\mathbb{E}\Bigl[\bigl(\hat{Y} - \mathbb{E}[\hat{Y}]\bigr)^2\Bigr]}_{\text{Variance}(\hat{Y})} \;+\; \underbrace{\Bigl(\mathbb{E}[\hat{Y}] \;-\; \mathbb{E}[Y]\Bigr)^2}_{\text{Bias}(\hat{Y})^2} \;+\; \underbrace{\mathbb{E}\bigl[\varepsilon^2\bigr]}_{\text{Irreducible noise}}, \end{aligned} \]

where:

  1. Variance: \(\text{Var}(\hat{Y})\) represents how much \(\hat{Y}\) fluctuates around its own mean.
  2. Bias: \(\text{Bias}(\hat{Y})^2\) measures how far \(\hat{Y}\) (on average) deviates from the true mean \(\mathbb{E}[Y]\).
  3. Irreducible noise: \(\mathbb{E}[\varepsilon^2]\) is the part of the error that cannot be reduced by any estimator.

In a strictly theoretical sense (when \(\varepsilon\) is embedded in \(Y\)), one often writes the Bias-Variance decomposition as:

\[ \mathrm{MSE}(\hat{Y}) = \underbrace{\mathrm{Var}(\hat{Y})}_{\text{Variance term}} \;+\; \underbrace{\mathrm{Bias}(\hat{Y})^2}_{\text{Bias term}}. \]

Here, if there is additional irreducible noise, it appears as a separate constant term. This decomposition closely aligns with the Law of Total Variance (Eve’s Law) in the sense that the total mean squared difference can be split into a “spread around the estimator’s mean” plus the “squared difference of that mean from the true value,” mirroring how variance itself decomposes into conditional components.

References

Coindesk. 2023. “Bitcoin’s Negative Correlation with Dollar Index Strengthens Ahead of u.s. GDP Data.” Coindesk Markets. https://www.coindesk.com/markets/2023/04/27/bitcoins-negative-correlation-with-dollar-index-strengthens-ahead-of-us-gdp.
Coinglass. 2023. “The Relationship Between the US Dollar Index (DXY) and Bitcoin Price Volatility.” Coinglass Learn. https://www.coinglass.com/learn/the-relationship-between-the-us-dollar-index-dxy-and-bitcoin-price-volatility-1.
Cointelegraph. 2023. “Bitcoin and Correlations — Examining the Relationship Between BTC, Gold and the Nasdaq.” Cointelegraph News. https://cointelegraph.com/news/bitcoin-and-correlations-examining-the-relationship-between-btc-gold-and-the-nasdaq.
Cryptoslate. 2022. “Bitcoin-GDP Correlation May Explain Drop in Price as US Enters a Technical Recession.” Cryptoslate News. https://cryptoslate.com/bitcoin-gdp-correlation-may-explain-drop-in-price-as-us-enters-a-technical-recession/.
Dyhrberg, Anne Haubo. 2021. “Inflation and Bitcoin: A Descriptive Time-Series Analysis.” Economics Letters 204. https://doi.org/10.1016/j.econlet.2021.109875.
Nasdaq. 2020. “Study Shows Recent Correlation Between Bitcoin and Stocks Is Temporary.” Nasdaq Articles. https://www.nasdaq.com/articles/study-shows-recent-correlation-between-bitcoin-and-stocks-is-temporary.
———. 2023. “Understanding Bitcoin, Nasdaq-100 Correlations.” Nasdaq Articles. https://www.nasdaq.com/articles/understanding-bitcoin-nasdaq-100-correlations.
———. 2024. “Bitcoin’s Correlation to Equities Is Rising.” Nasdaq Articles. https://www.nasdaq.com/articles/bitcoins-correlation-to-equities-is-rising.