인프런 커뮤니티 질문&답변

dukim님의 프로필 이미지
dukim

작성한 질문수

평생 써먹는 데이터 기반 투자법 with 파이썬 퀀트 투자

FAA 전략에서 상관성

작성

·

243

·

수정됨

0

안녕하세요 강좌를 듣던중 궁금증이 생겨서 글 남깁니다.

FAA 전략을 보면 상관성이 낮은 종목들의 순위를 높게 주려는거 같은데요.

해당 수치를 계산할때 합산을 해버리면 '상관성이 낮다'의 의미는 아닌거 같습니다.

abs나 **2 해서 합산을 하고 그 수치가 작은 것이 자산간의 상관관계가 낮은게 아닌가 생각됩니다.

예를 들어 1과 -1 은 둘다 상관관계는 높습니다.

답변 1

0

Jiwoon Jeong님의 프로필 이미지
Jiwoon Jeong
지식공유자

안녕하세요.

우선 한동안 본업에 바빠서 답변이 늦은 것에 사과드립니다.

좋은 질문을 해주셔서 감사합니다.

저도 해당 내용을 다시 검토해보았습니다.

말씀해주신대로 피어슨 상관관계는 1과 -1 사이의 값으로.. 1은 양의 선형상관관계, -1은 음의 선형상관관계를 갖게 됩니다.

상관성이 낮은 종목을 고르는게 목적이라면 절댓값이나 제곱값으로 계산하는게 옳은 판단이 맞습니다.

하지만, 단순 합을 사용하면 음의 상관성이 높을수록 (즉, 자산의 가격이 반대로 움직이는 정도가 강할 수록) 높은 순위를 가지게 됩니다. 즉, 서로 가격이 반대로 움직이는 포트폴리오로 구성하겠다는 의미가 됩니다.

상관성이 낮은 종목으로 포트폴리오를 구성하느냐, 반대로 움직이는 종목으로 포트폴리오를 구성하느냐에 대한 속성을 결정하는 내용인 것 같습니다.

실제 백테스팅 결과는 아래 코드로 수정하여 돌려보시면 좋을 것 같습니다.

감사합니다. 

 

절대값 계산 코드

corr4 = pd.DataFrame()
dayReturn = getDayReturn(closeDataSet=faaData) # 일간 수익률

for index, date in enumerate(reverseFaaRebalDate):
    # 4개월 데이터를 잡을 수 없으면 break
    if index >= len(reverseFaaRebalDate) - 4:
        break
        
    # 4개월 전 날짜
    before4month = reverseFaaRebalDate[index+4]
    
    # 4개월 상관성
    corr = abs(dayReturn.loc[date:before4month:-1].corr(method="pearson")).sum(axis=1)-1 # 자신에 대한 상관계수를 제거하기 위해 -1
    corr.name = date
    corr4 = corr4.append(corr)
    
corr4 = corr4.sort_index(ascending=True)
corr4

 

단순 합 결과

image

절대값 합 결과

image

dukim님의 프로필 이미지
dukim

작성한 질문수

질문하기