주식투자

[데이터 분석 8] 두 자산의 혼합 포트폴리오를 평균-분산 그래프에 나타내 보자 (구글 시트 편)

오렌지사과키위 2025. 1. 7. 18:23

이전 글에서 살펴본 바와 같이 예금과 같이 변동성이 없는 자산을 다른 자산과 혼합한 포트폴리오는 평균-분산 그래프에 표시하기 간단합니다. 평균과 표준 편차 모두 투자 비중에 따라 선형적으로 변하기 때문입니다. 평균-분산 그래프에서는 직선이 됩니다. 참고: [데이터 분석 7] 자산과 예금의 혼합을 평균-분산 그래프에 나타내 보자 (구글 시트 편)

두 자산 모두 변동성이 있는 경우 혼합 결과를 계산하기 위해서는 조금 신경을 써야 합니다. 평균은 여전히 투자 비중에 따른 산술 가중 평균이지만, 표준 편차는 두 자산의 상관성에 따라 그 양상이 크게 달라질 수 있기 때문입니다. 참고: [초급 16] 서로 독립이면 혼합 포트폴리오는 어떤 형태가 될까? (독립이 아니면 어떻게 될까?)

구글 시트의 ARRAYFOMULAR() 함수를 이용하면 변동성이 있는 두 자산의 평균과 표준 편차를 계산하는데 편리합니다. 이를 이용하여 혼합 포트폴리오를 평균-분산 그래프에 나타내 봅니다.

참고: 이 연재는 책 <왜 위험한 주식에 투자하라는 걸까? - 장기 투자와 분산 투자에 대한 통계학적 시각>에서 소개한 주요 분석 방법을 구글 시트로 적용해 보는 부록의 성격을 가집니다. 책의 초고에 해당되는 블로그 글이나 읽기 편하게 정리하고 편집한 책을 한두 번 차근차근 읽어 분석 방법의 의미를 이해한 후에 보면 더욱 좋습니다. 연재 그 자체만으로도 따라 하기에 별 무리가 없는 수준으로 설명하려고 하지만, 세부적인 설명이 일부 생략되어 있을 수 있고, 분석 방법을 이해한 상태에서 보면 좀 더 도움이 될 수 있기 때문입니다.

주의: 이 글은 특정 상품 또는 특정 전략에 대한 추천의 의도가 없습니다. 이 글에서 제시하는 수치는 과거에 그랬다는 기록이지, 앞으로도 그럴 거라는 예상이 아닙니다. 분석 대상, 기간, 방법에 따라 전혀 다른 결과가 나올 수 있습니다. 데이터 수집, 가공, 해석 단계에서 의도하지 않은 오류가 있을 수 있습니다. 일부 설명은 편의상 현재형으로 기술하지만, 데이터 분석에 대한 설명은 모두 과거형으로 이해해야 합니다.

구글 시트의 ARRAYFORMULA() 함수

ARRAYFORMULA() 함수는 여러 값으로 이루어진 배열 연산을 지원합니다. 예를 들어 다음 왼쪽 그림과 같이 A와 B의 각각의 값 쌍을 곱한 후 평균을 구하고자 한다면, 일반적으로는 PRODUCT라는 추가 칼럼을 만들어서 곱을 먼저 계산합니다. 그리고 그 결과의 평균을 구합니다.

ARRAYFORMULA()를 이용하여 간단하게 표현한 예

ARRAYFORMULA() 함수를 사용하면 PRODUCT 칼럼이 필요하지 않습니다. 오른쪽 그림과 같이 =ARRAYFORMULA(AVERAGE(A2:A6 * B2:B6))와 같이 입력하면, A2:A6와 B2:B6의 각 쌍에 대해 곱하기를 하고, 그 결과를 AVEARGE() 함수에 넘겨 평균을 구할 수 있습니다. 중간 과정을 담기 위한 칼럼이 필요하지 않은 것입니다. 

두 자산의 투자 비중에 따른 평균과 표준 편차도 중간 계산 결과가 필요합니다. 그나마 평균은 투자 비중에 따라 산술 가중 평균으로 계산하면 되기에 중간 계산 결과가 필요하지 않지만, 표준 편차는 중간 계산 결과가 필요합니다. 서로 다른 투자 비중 100가지로 혼합 포트폴리오의 표준 편차를 계산하려면, 100개의 중간 계산 칼럼이 필요합니다. ARRAYFORMULA() 함수를 사용하면 중간 계산 칼럼이 필요하지 않기에 깔끔하게 시트를 정돈할 수 있습니다.

평균-분산 그래프에 나타낸 SPY와 TLT 혼합 포트폴리오

다음과 같이 SPY + TLT 혼합 포트폴리오의 평균과 표준 편차를 ARRAYFORMULA() 함수를 이용하면 간단하게 계산할 수 있습니다.

ARRARYFORMULAR() 함수를 이용하여 구한 SPY와 TLT의 투자 비중에 따른 1년 수익률의 표준 편차
ARRARYFORMULA() 함수를 이용하여 구한 SPY와 TLT의 투자 비중에 따른 1년 수익률의 표준 편차

=ARRAYFORMULA(STDEV($D$258:$D$9999 * $G6 + $E$258:$E$9999 * (1 - $G6)))

STDEV() 함수의 첫 번째 인자인 $D$258:$D$9999는 SPY 250거래일 수익률입니다. 여기에 SPY 투자 비중 $G6(여기서는 SPY에 10% 투자)를 곱합니다. TLT 250거래일 수익률인 $E$258:$E$9999에는 (1 - $G6)를 곱합니다. 두 값을 더하면 SPY에는 $G6 비중으로 TLT에는 (1 - $G6) 비중으로 투자한 1년 수익률이 배열로 만들어집니다. 그 결과를 STDEV() 함수에 넣어 표준 편자를 구합니다. STDEV() 함수 대신 AVERAGE() 함수를 사용하면 평균을 얻을 수 있습니다.

주의: ARRAYFORMULA() 함수를 사용할 때 $9999와 같이 빈 영역이 포함될 수 있는 구간을 지정하면, 계산 결과가 잘못될 수 있습니다. AVERAGE() 함수와 함께 사용하니 빈 공간을 0으로 간주해서 평균을 계산하는 듯합니다. 정확한 데이터 범위를 지정하거나, 빈 줄은 모두 삭제(값을 지우는 게 아니라 줄을 없애는 기능)할 필요가 있습니다.

다음은 이렇게 구한 혼합 포트폴리오의 평균과 표준 편차를 이용하여 평균-분산 그래프에 나타낸 그림입니다. SPY와 TLT의 수익률은 음의 상관성이 있기에, 혼합하면 표준 편차가 상당히 감소했음을 알 수 있습니다.

평균-분산 그래프에 나타낸 SPY + TLT 혼합 포트폴리오
평균-분산 그래프에 나타낸 SPY + TLT 혼합 포트폴리오

예금 혼합 포트폴리오와 함께 나타내고 분석해 보기

SPY + 예금 혼합 포트폴리오도 함께 나타내 봅니다. 변동성이 없는 예금 혼합 포트폴리오는 이전 글에서 소개한 방식처럼 ARRAYFORMULA() 함수를 사용하지 않고 산술 가중 평균으로 계산할 수도 있지만, 일괄적으로 1년 수익률에 대해 동일한 값을 지정하고 SPY + TLT처럼 계산할 수도 있습니다. 아래는 이렇게 계산하는 과정을 보여주고 있습니다.

예금은 1년 수익를 설정과 이를 SPY + 예금 혼합 포트폴리오의 표준 편차 계산

왼쪽의 예금의 1년 수익률을 2%로 고정한 것이고, 오른쪽은 이렇게 설정한 예금 수익률로 표준 편차를 계산하고 있습니다.

평균-분산 그래프에 SPY + TLT 및 SPY + 예금 포트폴리오를 함께 나타내면 다음과 같이 됩니다.

SPY + TLT 및 SPY + 예금 포트폴리오

이제 그래프를 해석해 봅니다. SPY + TLT 포트폴리오는 대략 7.5% 이상의 높은 수익률에 대해 SPY + 예금보다 위에 위치하고 있습니다. 높은 수익률을 얻고자 했다면, SPY + TLT가 상대적으로 유리했다는 뜻이 됩니다. 반대로 표준 편차가 9% 이하가 되면 SPY + 예금 포트폴리오 선이 왼쪽에 위치하고 있습니다. 동일한 수익률을 SPY + 예금 포트폴리오는 더 낮은 표준 편차로 얻을 수 있었다는 의미가 됩니다.

정리하며

변동성이 있는 두 자산의 혼합 포트폴리오를 평균-분산 그래프에 나타내 보았습니다. 구글 시트의 경우 ARRAYFORMULA() 함수를 이용하면 깔끔하게 계산할 수 있습니다. 예금 혼합 포트폴리오로도 동일한 방식으로 직선으로 나타나는 포트폴리오 궤적을 그릴 수 있습니다. 이 두 가지를 비교하면, 특정 자산에 대해 다른 자산을 혼합하는 것이 나았던 경우와 예금을 혼합하는 것이 유리했던 상황을 추정해 볼 수 있습니다.

이어지는 글: [데이터 분석 9] 세 자산의 혼합 포트폴리오를 평균-분산 그래프에 나타내 보자 (구글 시트 편)

목록: 자산 배분 분석 방법과 사례 글 모음 [목록] (순서대로 차근차근 읽기를 권합니다)

함께 읽으면 좋은 글:

도움이 되었다면, 이 글을 친구와 공유하는 건 어떻까요?

facebook twitter kakaoTalk naver band