1 서론: Factor theory

Assets represent bundles of factors

자산은 여러 factor risk들로 구성되어 있으며, 이러한 factor risk들의 exposure에 의해 투자자는 risk premium의 형태로 보상을 받는다. 이것이 바로 Factor Theory의 핵심이다. 현대 금융학에 한 획을 그은 CAPM(Capital Asset Pricing Model)은 자산이 오직 market portfolio라는 단일 팩터에만 노출되어 있다고 가정하지만, 이러한 가정은 현실의 복잡한 자산 가격 결정 메커니즘을 충분히 설명하지 못한다.

이 한계를 극복하기 위해 다양한 팩터 모델이 개발되었다. 1993년 Fama와 French는 market portfolio 외에도 sizevalue 팩터를 추가한 3팩터 모델을 제시하여 자산 수익률의 단면적 차이를 효과적으로 설명했고, 이는 자산 가격 결정 연구와 실무에 큰 영향을 미쳤다. 그러나 이후 다수의 연구에서는 momentum 팩터와 같은 추가적인 팩터의 중요성이 지속적으로 제기되었고, 2015년 Fama와 French는 이를 보완하기 위해 profitabilityinvestment 팩터를 포함한 5팩터 모델을 발표하였다.

본 리포트에서는 국내 ETF 5개를 대상으로 Fama-French 3팩터 모델을 R을 활용해 실증 분석하고, 각 팩터(\(\beta~factor\))의 통계적 유의성을 검증할 것이다. 더불어, momentum 팩터의 중요성과 함께 5팩터 모델의 한계 및 논쟁점을 논의하여, 국내 시장에서 팩터 모델의 적용 가능성과 향후 개선 방향을 모색하고자 한다.


2 What is Fama-French 3-Factor Model?

Fama-French 3-Factor Model은 자산 수익률을 다음 3가지 팩터로 기반으로 설명한다.

\(E(R_i) = R_f + \beta_{i, MKT} \times E(R_M-R_F) + \beta_{i, SMB} \times E(SMB) + \beta_{i, HML} \times E(HML)\)

CAPM에서는 average stock \(\beta\)와 market \(\beta\)가 1로 동일하다. 이는 투자자가 분산된 포트폴리오를 보유할 경우, 기본적으로 시장 수익률만을 얻는다는 의미다. 반면, Fama-French model에서는 \(\beta_{SMB}\)\(\beta_{HML}\)은 기본적으로 0을 중심으로 분포하도록 구성된다. 즉, 평균적인 투자자인 경우 \(\beta_{MKT}\)만을 얻게 된다. 따라서 \(\beta_{SMB}\)\(\beta_{HML}\)에서 추가적인 premium을 얻기 위해서는, 투자자는 size play를 할 건지, value play를 할 건지 선택해야 한다.

또한 CAPM과 Fama-French model은 \(\beta\)가 일정하다고 가정하지만, 실증 연구에 따르면 \(\beta\)는 시간이 지남에 따라 변동하며, 특히 경제 상황이 악화되는 시기에 \(\beta\)가 상승하는 경향이 있다. 이는 risk premium과 수익률 간의 관계에 추가적인 변동성을 가져올 수 있음을 시사한다.


3 분석

library(purrr)
package <- c("tidyverse", "quantmod", "broom", "timetk", "pander", "broom", "scales")
pack_map <- map(package, ~ library(.x, character.only = TRUE))

options(scipen = 999)

3.1 분석 대상 ETF 및 팩터 ETF 정의

실증 분석을 하기 위해서는 해당 팩터들이 tradeable assets이어야 하므로 ETF를 이용해 style analysis를 진행하도록 한다.

  • 분석 대상 ETF
    • KODEX 2차전지산업(305720.KS)
    • PLUS 고배당주(161510.KS)
    • TIMEFOLIO 코스피액티브(385720.KS)
    • TIGER 반도체(091230.KS)
    • RISE 내수주플러스(326230.KS)
  • 팩터 ETF
    • MKT: KODEX 200(069500.KS) - KOSPI 200을 추종하며 시가총액과 거래량을 중심으로 한국 증시를 대표하는 200종목으로 구성
    • SMB: KODEX 코스닥150(229200.KS) - KOSDAQ 150을 추종하며 주로 중소형주로 구성되어 size effect를 측정하기에 적합
    • HML: TIGER 우량가치(227570.KS) - FnGuide 퀄리티 밸류 지수를 추종하며 상대적으로 안정적인 수익과 견실한 재무 구조를 가진 우량주를 모아 구성


3.2 데이터 전처리

3.2.1 분석 대상 ETF 5개의 월간 수익률 테이블 생성

ticker <- tibble(ticker = c("305720.KS", "161510.KS", "385720.KS", "091230.KS", "326230.KS"))

ETF_df <- ticker %>% 
  mutate(data = map(ticker, ~getSymbols(Symbols = .x, 
                                        from = "2020-01-01", 
                                        to = "2025-02-28", 
                                        auto.assign = FALSE, 
                                        warnings = FALSE) %>% 
                      Ad() %>% 
                      na.omit()),
         monthly_ret = map(data, ~monthlyReturn(.x, type = "log")))

3.2.2 팩터 ETF 3개의 월간 수익률 테이블 생성

factor_ticker <- tibble(ticker = c("069500.KS", "229200.KS", "227570.KS"))

factor_df <- factor_ticker %>% 
  mutate(data = map(ticker, ~getSymbols(Symbols = .x, 
                                        from = "2020-01-01", 
                                        to = "2025-02-28", 
                                        auto.assign = FALSE, 
                                        warnings = FALSE) %>% 
                      Ad() %>% 
                      na.omit()),
         monthly_ret = map(data, ~monthlyReturn(.x, type = "log")))

factor_matrix <- purrr::reduce(factor_df$monthly_ret, merge) %>% 
  `colnames<-`(c("MKT", "SMB", "HML"))

3.3 Regression analysis

ETF_df <- ETF_df %>% 
  mutate(matrix = map(monthly_ret, ~merge(.x, factor_matrix) %>% na.omit()),
         model = map(matrix, ~lm(formula = `monthly.returns` ~ MKT + SMB + HML, data = .x)))

tiny_df <- ETF_df %>% 
  mutate(tidy = map(model, tidy)) %>% 
  unnest(tidy) %>% 
  dplyr::select(ticker, term, estimate, statistic, p.value)

glance_df <- ETF_df %>% 
  mutate(glance = map(model, glance)) %>% 
  unnest(glance) %>% 
  dplyr::select(ticker, `adj.r.squared`)

3.4 Results

3.4.1 KODEX 2차전지산업(305720.KS)

term estimate statistic p.value
(Intercept) 0.002961 0.2995 0.7656
MKT 0.793 2.154 0.03539
SMB 0.7099 3.334 0.001497
HML -0.104 -0.4142 0.6803

Adj.R2 = 57.92%

\(E(R_i) = 0.793 \times E(MKT) + 0.7099 \times E(SMB)\)

  • 2차전지 ETF답게 MKT 뿐만 아니라 SMB 역시 통계적으로 유의미해 size effect가 존재한다. 하지만 아쉽게도 \(\alpha\)가 존재하지 않고 \(Adj.R^2\) 역시 낮아 3-facotr model로는 수익률을 제대로 설명하지 못하고 있다. 설명력을 높여줄 숨겨진 팩터는 무엇일까?

3.4.2 PLUS 고배당주(161510.KS)

term estimate statistic p.value
(Intercept) 0.004125 1.367 0.1768
MKT 0.1865 1.661 0.1021
SMB -0.1042 -1.604 0.1141
HML 0.8172 10.67 0.000000000000002654

Adj.R2 = 82.51%

\(E(R_i) = 0.8172 \times E(HML)\)

  • 고배당주 ETF이기에 역시 HML 팩터가 유의미하다. 아쉬운건 \(Adj.R^2\)이 82.51%로 꽤 높은수치에도 불구하고 MKT 팩터가 유의미하지 않다는 것이다.

3.4.3 TIMEFOLIO 코스피액티브(385720.KS)

term estimate statistic p.value
(Intercept) 0.001301 0.4749 0.6373
MKT 0.6301 5.512 0.00000199
SMB 0.2656 4.247 0.0001176
HML -0.001343 -0.01572 0.9875

Adj.R2 = 89.14%

\(E(R_i) = 0.6301 \times E(MKT) + 0.2656 \times E(SMB)\)

  • 해당 ETF를 선택한건 코스피‘액티브’라는 명칭대로 얼마나 \(\alpha\)를 얻었는지를 확인하기 위해서였다. 하지만 결과는 실망스러웠다. 역시 \(\alpha\)는 통계적으로 유의미하지 못했다. \(Adj.R^2\)이 상당히 높고 SMB 팩터가 유의미한 것으로 보아 해당 ETF는 size play로 \(\alpha\)를 얻으려는 것으로 예상된다.

3.4.4 TIGER 반도체(091230.KS)

term estimate statistic p.value
(Intercept) -0.0008076 -0.1455 0.8848
MKT 1.303 6.306 0.00000004237
SMB 0.22 1.841 0.07077
HML -0.2906 -2.063 0.04363

Adj.R2 = 76.33%

\(E(R_i) = 1.303 \times E(MKT) - 0.2907 \times E(HML)\)

  • MKT의 \(\beta\)가 1을 초과하여 MKT 레버리지 전략 형태를 보이고 있다. 반대로 HML에 대해서는 short position의 형태를 보이고 있어 growth effect에 노출되어 있다. 다만 \(Adj.R^2\)이 낮아 숨겨진 factor가 있을 것으로 예상된다.

3.4.5 RISE 내수주플러스(326230.KS)

term estimate statistic p.value
(Intercept) -0.004664 -1.459 0.1499
MKT 0.1138 0.9563 0.3429
SMB 0.1712 2.488 0.01574
HML 0.5448 6.715 0.000000008828

Adj.R2 = 76.27%

\(E(R_i) = 0.1712 \times E(SMB) + 0.5448 \times E(HML)\)

  • 내수주 ETF는 특이하게 MKT 팩터는 유효하지 않지만 size play와 value play를 동시에 구사하고 있다. 특히 HML로 인한 value effect가 크며 역시 \(Adj.R^2\)이 낮아 숨겨진 factor가 있을 것으로 예상된다.

4 So we a need 5-factor model? or more factors?

앞서 제시한 3팩터 모델의 분석 결과를 살펴보면, 각 ETF마다 시장(MKT), 사이즈(SMB), 밸류(HML) 팩터의 역할은 분명히 나타나지만, 다음 ETF 종목에서는 전체 설명력이 낮거나 추가적인 팩터의 존재를 시사하는 결과가 도출되었다.

이와 같이, 3팩터 모델은 국내 ETF의 수익률을 어느 정도 설명할 수 있으나, 모든 대상 종목들에서 \(\alpha\)가 유의하지 않고, 낮은 \(Adj.R^2\)으로 인해 ‘hidden risk factor’가 존재할 가능성이 높다.

또한, CAPM 및 Fama-French model이 \(\beta\)의 시변동성을 고려하지 않는다는 점도 실제 금융시장에서는 중요한 이슈로 작용한다. 이러한 관점에서 볼 때, 5팩터 모델은 보다 다양한 risk factor를 반영해 자산 수익률의 설명력을 높일 수 있는 방법이 될 수 있다.

Limits

2015년 Fama와 French는 기존 3팩터 모델을 개선한 5팩터 모델을 발표하였다. 이러한 개선에도 불구하고 여러 문제점이 제기됐다. 다음은 글로벌 자산 관리 회사 Robeco에 개제된 사설의 요약이다.

  • Low-volatility anomaly
    • 5팩터 모델은 여전히 CAPM의 기본 가정(higher \(\beta\), higher returns)을 유지하는데, 이는 저변동성 주식들이 실제로는 더 우수한 수익률을 보인다는 Low-volatility anomaly와 모순된다.
  • Overlooking the momentum premium
    • 모멘텀 팩터는 오랜 기간 여러 연구에서 중요한 요인으로 입증되었으나, 여전히 이를 반영하지 않았다.
  • The robustness of the two new factors
    • 새롭게 정의된 profitability, investment 요인의 정의가 불투명하다. 특히, investment 요인은 asset growth로 정의되는데, Fama와 French는 과거 이를 ’less robust’로 평가한 적이 있다. 또한, 모멘텀 및 가치 요인과 달리 이 두 신규 요인이 다양한 시간대나 자산군에서도 일관되게 작용하는지에 대한 확신이 부족하다.
  • Economic rationale
    • Fama와 French는 과거 size와 value 요인을 재무적 위험(financial distress)과 연계하여 설명하려 했지만, 오히려 financial distress와 수익률은 서로 상반되는 모습을 보인다는 연구 결과들이 다수 발표되었다.

      최근 Fama와 French는 새로운 두 팩터를 단순한 ’risk factor’라고 보기보다는, ’expected return’을 설명하기 위한 배당 할인 모형 기반의 접근을 사용하고 있다. 그러나 이러한 설명은 high profitability & low investment 기업의 높은 수익률이 실제 위험 프리미엄의 결과인지, 아니면 단순한 시장의 mispricing인지를 명확히 밝히지 못하고 있다.

5 결론

본 리포트에서는 국내 ETF 5개를 대상으로 Fama-French 3팩터 모델을 R을 활용해 실증 분석하였으며, 각 ETF에서 나타난 팩터의 통계적 유의성을 검토하였다. 분석 결과, 일부 ETF에서는 시장, 사이즈, 밸류 요인이 유의미하게 작용하는 반면, 다른 ETF에서는 특정 요인의 역할이 미미하거나 설명력이 낮은 사례가 관찰되었다. 이는 기존 3팩터 모델만으로는 국내 ETF의 수익률 변동성을 완벽하게 설명하기 어렵다는 점을 시사한다.

특히, 모멘텀과 같은 추가적인 요인이 실제 투자 수익률에 영향을 미칠 가능성이 있으며, 기존 연구 및 Robeco의 주요 우려 사항에서도 이러한 점이 강조되고 있다. 또한, 베타의 시변동성과 시장 악화 시 베타 상승 현상은 정적 모형의 한계를 보여준다.

따라서, 향후 국내 시장에 적용할 팩터 모델은 기존 3팩터 모델에 모멘텀, 수익성, 투자 요인 등 추가 요인을 고려하거나, 베타의 시변동성을 반영하는 동적 모형으로 확장할 필요가 있다.