R언어 데이터 프레임으로 필터, 정렬, 랭킹, 계산 결과값 칼럼 추가, 조인등 기본 사용법 예제를 메모해 둔다.

 

코드 가독성을 높이기 위해서 dplyr 패키지를 사용한다.

# 경고 메세지 없이 dplyr 패키지 불러오기
library(dplyr, warn.conflicts = FALSE)

 

필터링

필터된_PER <- filter(PER데이터, PER > 0)

 

정렬 

정렬된_PER <- arrange(필터된_PER, PER)

 

순위값 칼럼 'PER랭킹' 추가

정렬된_PER <- mutate(정렬된_PER, PER랭킹 = rank(정렬된_PER$PER))

 

 

조인 (데이터 프레임 합치기)

전체_데이터 <- inner_join(정렬된_PER,정렬된_ROA,by='회사명')

 

이 모든 것을 파이프로 합치기

library(dplyr, warn.conflicts = FALSE)
library(readxl)

파일_경로 <- r"(엑셀파일명.xls)" # raw 문자열 r"(...)"

PER_데이터 <- read_excel(파일_경로, sheet = "PER") |>
    filter(PER > 0) |>
    mutate(PER랭킹 = rank(PER)) |>
    arrange(PER랭킹)
    
ROA_데이터 <- read_excel(파일_경로, sheet = "ROA") |>
    rename(ROA = 'ROA(영업이익)(%)') |>
    filter(!is.na(ROA)) |>
    mutate(ROA랭킹 = rank(-ROA)) |>
    arrange(ROA랭킹)
    
전체_데이터 <- inner_join(PER_데이터,ROA_데이터,by='회사명') |>
    mutate(종합_랭킹 = rank(PER랭킹 + ROA랭킹)) |>
    arrange(종합_랭킹)
    
print(전체_데이터)

 

R언어 4.0부터 파이프 기호가 '%>%'에서 '|>'로 바뀌었다.

호환성을 위해서  예전 기호 '%>%'도 여전히 지원되지만, 새로운 파이프 기호 '|>'가 가독성이 더 좋아보인다.

 

파이썬 pandas, R언어 dplyr, Julia 데이터 프레임을 비교 검토한 후, 코드 가독성 면에서 R언어 dplyr패키지가 가장 우수하다고 생각된다.

 

'데이터 분석' 카테고리의 다른 글

R언어 데이터 프레임 사용법 예제 1.  (0) 2024.05.30
R언어 절사 평균 mean trim  (0) 2023.06.28
R언어 무료 IDE  (0) 2023.06.28
무료 R언어 강의 영상  (0) 2023.06.26
윈저화 평균 (winsorized mean)  (0) 2023.04.28

오랜만에 다시 R언어를 공부한 스터디 메모이다.

 

R언어는 dplyr 패키지를 이용하면 코드 가독성이 좋아진다.

# 경고 메세지 없이 dplyr 패키지 불러오기
library(dplyr, warn.conflicts = FALSE)

 

데이터 프레임의 값에 액세스 하는 방법.

# 시리즈_ex1 생성
시리즈_ex1 <- c(100, 500, 150)
names(시리즈_ex1) <- c('카카오', '삼성전자', '현대차')

# df_ex1 생성
df_ex1 <- data.frame(가격=c(100, 500, 150), PER=c(0.5, 1.2, 0.2), ROA=c(1.01, 3.1, 0.97), row.names=c('카카오', '삼성전자', '현대차'))

# 출력
print(df_ex1$가격)
print(df_ex1['삼성전자', '가격'])
print(df_ex1['카카오', ])
print(df_ex1['카카오', 'ROA'])

칼럼 전체에 액세스 할 때 '$' 기호를 사용하는 게 특이하다.

R언어 데이터 프레임의 셀에 액세스 할 때, [행, 열] 형식으로 접근한다.

파이썬 pandas의 데이터 프레임에서 셀에 액세스 할 때는 [열, 행] 형식으로 접근하는 것과 대비된다.

파이썬 pandas에서도 loc 프로퍼티를 사용하면 [행, 열] 형식으로 셀에 액세스할 수 있기는 하지만 굳이??

개인적으로 R언어가 더 편하게 느껴진다.

'데이터 분석' 카테고리의 다른 글

R언어 데이터 프레임 사용법 예제 2.  (0) 2024.05.30
R언어 절사 평균 mean trim  (0) 2023.06.28
R언어 무료 IDE  (0) 2023.06.28
무료 R언어 강의 영상  (0) 2023.06.26
윈저화 평균 (winsorized mean)  (0) 2023.04.28

퀀트 전략의 부진.

투자 이야기 2024. 5. 11. 15:11 Posted by UnHa Kim

강환국이 퀀트 투자 붐을 일으킨 이후 역설적으로 팩터를 이용한 퀀트 투자 전략이 부진을 거듭하고 있다.

 

아마도 2가지 문제가 겹친 것으로 보인다.

 

첫째, 주식 투자에 대중의 관심이 쏠리는 때는 항상 고점 부근이다.

퀀트 투자도 일종의 주식 투자 기법이며, 퀀트 투자에 대중의 관심이 쏠린다는 것은 그 자체로 주가가 고점 부근이라는 의미이기도 하다.

주가가 원래 자리를 찾아가면서 전체 시장이 부진함에 따라 퀀트 투자도 부진할 수 밖에 없다.

 

둘째, '트레이더 효과'이다.

특정 기법을 많은 사람이 쓸 수록 해당 기법의 수익성이 떨어지는 현상을 의미한다.

 

이러한 '트레이더 효과'에 대해서 좀 더 자세히 언급하고자 한다.

 

우선, 워렌 버핏의 스승인 '벤저민 그레이엄'이 '현명한 투자자'에서 언급한 관련 내용을 인용해 본다.

어떤 이론이 과거 통계와 그럴듯하게 맞아떨어지거나 장기간 좋은 성과를 내면, 추종자가 증가하면서 주목받게 된다. 그러나 추종자가 증가할수록, 이론의 신뢰도는 감소하는 경향이 있다. 이유는 두 가지이다. 첫째, 시간이 흐르면서 이론과 맞지 않는 새로운 변수가 등장한다. 둘째, 주식시장에서 인기 높은 이론은 시장 참여자들의 행동에 영향을 미치게 되므로, 결국 수익 기회가 사라지게 된다.

 

그 사례로 1930년대에 유행한 '다우 이론'과 1950년대에 유행한 '공식에 의한 투자'의 사례를 들고 있다.

둘 다 정량적인 기법이어서 누구나 쉽게 따라할 수 있는 기법이었다.

 

주식 투자만 이런 것이 아니라, 원자재 투자에서도 비슷한 현상이 발생한다.

'터틀의 방식'에서 언급된 '트레이더 효과'에 대한 설명을 인용해 본다.

 

트레이더의 트레이딩 행동 자체가 애초에 트레이딩이 성공할 것으로 기대하게 만들었던 시장 조건을 변화시키는 것이다. 나는 이를 트레이더 효과라고 부른다. 어떤 일이나 현상이 꾸준히 반복되어 나타나면 몇몇 시장 참여자들이 그와 같은 현상에 주목하게 된다. 마찬가지로 최근 몇 년간 꾸준히 좋은 성과를 낸 트레이딩 전략은 수많은 트레이더의 눈에 띄게 마련이다. 하지만 너무 많은 트레이더들이 이 전략을 사용하게 되면 이 전략도 예전만큼의 성과를 내기 어려워진다.

 

그리고, 미국에서 퀀트 투자 붐이 일어난 후 장기간 부진했던 사례가 있다.

1990년대에 '제임스 오쇼너시'는 'What works on Wall Street'(번역서 '월가의 퀀트 투자 바이블')을 펴내며 미국에서 퀀트 투자 붐을 일으켰으며, 대중의 폭발적 관심에 힘입어 대규모 자금을 끌어모아서 독자 퀀트 펀드도 출시했지만, 6년간 부진을 거듭하다가 대형 투자은행에 흡수합병 되었다.

이게 꽤나 유명한 사건이어서 워렌 버핏은 버크셔 해서웨이 주주총회 발언 때, 주식 투자는 방정식으로 표현할 수 없다고 말하며 '제임스 오쇼너시' 사례를 언급할 정도였다.

 

그래서, 퀀트 투자는 완전히 망했는가?

'제임스 오쇼너시'가 포기하고 펀드를 팔아버린 직후 퀀트 전략은 엄청난 수익율을 내면서 부활했다.

 

이것으로 알 수 있는 점은 강환국이 유행시킨 퀀트 투자 기법은 대중적인 유행이 지나간 후, 대부분의 추종자들이 포기하고 다른 투자 방법론을 찾아떠난 이후에야 부활할 가능성이 있다.

특히, 거래량이 적고 시총이 작은 소형주 전략의 경우 이러한 부진이 두드러 질 수 있다.

 

그렇다면, 투자를 그만 두고 은행에 예금이나 맡길 것인가?

한국인의 평균 기대 수명은 여전히 길고, 한국에서 노동으로 높은 소득을 올릴 수 있는 연령대는 여전히 제한적이며, 우리는 노동 소득 없이 장기간 생존할 수 있는 방법을 찾아야 한다는 사실에는 변함없다.

돈이 많다면서 상가를 매입해서 임대하는 것도 가능하겠지만 이것은 초기 투자 비용이 아주 크니까, 대부분의 경우 소액으로 투자 가능한 금융 투자 이외에는 딱히 대안이 없을 것이다.

주식 시장이 한국에만 있는 것도 아니고, 자동화 시킬 수 있는 정량적 투자 전략이 팩터 기법만 있는 것도 아니고, 투자 자산군이 주식만 있는 것도 아니다.

한국 주식에 투자하는 팩터에 기반한 주식 퀀트 전략이 부진해도 여전히 투자할 만한 금융 자산과 투자 기법은 많다.

그리고, 지금 당장은 한국 주식 퀀트 전략이 부진해서 비중을 축소하더라도 시간이 지난 후 수익율이 되살아날 때 다시 쓰면 된다.

 

90년간 수익율을 유지해온 NCAV 전략도 사용자들이 부진한 기간을 버티지 못하고 나가떨어졌기 때문에 지금껏 수익율을 유지하고 있을 가능성이 높다.

부진이 얼마나 오래 지속될 지 알 수 없는 전략을 장기간  유지한다는 것은 아무나 할 수 없다.

책에서 퀀트 투자에서 있어서 가장 중요한 것은 인내심과 일관성이라고 그렇게나 강조했던 '제임스 오쇼너시' 본인도 6년만에 포기해 버렸다.

 

그렇기에 '윌터 슐로스' 같은 사람이 대단한 것이다.

'월터 슐로스'는 대학도 나오지 않았고, '벤저민 그레이엄'의 강의를 청강했던 이력만으로도 펀드 매니저로서 CAGR 18~19%를 기록했는 데, 아주 단순한 전략만을 쓰면서 수십 년간 일관되게 유지했다고 알려져 있다.

이건 말로는 쉬운 데 실제로는 실행하기 매우 어렵다.

이렇게 남들이 따라하기 어려운 차별점이 있어야 성공할 수 있다.

그런데, 그 차별점이라는 게 특별하게 우수한 전략이 아닐 경우도 많다.

 

비교 경쟁 우위가 '남보다 뛰어난 전략'이 아니라 '남들도 다 아는 단순한 전략을 오랫동안 일관되게 유지할 수 있는 인내심'일 수도 있다는 말을 벤저민 그레이엄이 '현명한 투자자' 서문에서 언급한 표현을 그대로 인용하면, 

지식이 다소 부족하더라도 투자 기질을 갖춘 '평범한 사람들'이 돈을 훨씬 더 벌고 유지한 사례가 많다.

지식보다 기질이 중요하다는 말, 투자는 간단하지만 쉽지 않다는 말 모두 비슷비슷한 내용인 것 같다.

 

이러한 투자의 어려움을 경감시켜주는 것은 역시나 분산인 것 같다.

물론, 분산을 하면 기대 수익율은 낮아진다.

그러나, 특정 전략이 부진해도 다른 전략에서 벌충을 하면 심리적으로 일관성을 유지하는 데 많은 도움이 된다.

어쨌거나, 중도 포기하는 것보다는 상대적으로 낮은 수익율이라도 꾸준히 버티면서 (작더라도) 수익을 얻는 것이 유리하다.

 

멘탈이 아주 강해서 버틸 수만 있다면 장기 기대 수익율이 가장 높은 전략에 집중 투자하는 게 더 좋겠지만, 그렇지 않은 대부분의 일반인의 경우 분산 투자가 투자를 지속하는 데 도움을 줘서 장기적으로는 더 유리할 것이다.

 

결론 : 한국 주식 시장에서의 퀀트 개별 종목 투자 기법이 부진하다면 다른 자산군에 투자하거나, 다른 전략을 쓰면 된다. 존버가 승리한다.