수익률이 음수도 있을 때 평균 수익률 구하는 법 있나요?

cleansugar의 이미지

원금을 모르는 상태에서 매 기간 수익률(+ or -)만 알 때 평균수익률 어떻게 구하나요?

예를 들면 1기 +10% 2기 -5% 3기 +10% 일때 총 3기의 평균수익률을 구하는 겁니다.

기하평균은 음수가 안됩니다.

초기값을 100으로 놓고 계산하는 건가요?

한 문장으로 된 공식이 있을 것 같은데 이 중에 있을까요?
http://en.wikipedia.org/wiki/Rate_of_return

설명좀 부탁드립니다.

익명 사용자의 이미지

원금1 = 원금0 * (1 + 1분기_이율) = 원금0 + 원금0 * 1분기_이율
원금2 = (원금1) * (1 + 2분기_이율)
원금3 = (원금2) * (1 + 3분기_이율)
원금4 = (원금3) * (1 + 4분기_이율)
...
원금n = (원금(n-1)) * (1 + n분기_이율)

원금n = 원금0 * (1 + 1분기_이율) * (1 + 2분기_이율) * (1 + 3분기_이율) * ... * (1 + n분기_이율)

이율 = [0.1, -0.05, 0.1]
 
def 원금을_포함한_최종_수익(원금, 이율)
    for 각_분기_이율 in 이율
        원금 = 원금 * (1 + 각_분기_이율)
    end
    return 원금
end
 
원금 = 100.0
분기당_평균_수익 = (원금을_포함한_최종_수익(원금, 이율) - 원금) / 이율.length
cleansugar의 이미지

소스까지 주시고 감사합니다.

그런데 분기당_평균_수익은 단순히 산술평균하면 안됩니다.

복리로 계신해야 됩니다.

1.1, 0.95, 1.1의 기하평균을 구하면 되는 것 같습니다.

재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.

아이디의 아이디어 무한도전
http://blog.aaidee.com

귀태닷컴
http://www.gwitae.com

snowall의 이미지

(n제곱근[(최종금액/원금)]-1)*100%

앞에 익명분이 지적하셨듯이...

n차에 있는 돈과 그때의 수익률을 각각 a(n), r(n)이라고 하면

a(n+1) = a(n)*(1+r(n))

재귀적으로 n=1부터 n=N까지 계산해보면
a(N)=a(N-1)*(1+r(N-1))=a(N-2)*(1+r(N-2))*(1+r(N-1))= ... = a(0)*(1+r(0))*(1+r(1))*...*(1+r(N-1))

(1+r(0))*(1+r(1))*...*(1+r(N-1)) = a(N)/a(0)

(1+r(0))*(1+r(1))*...*(1+r(N-1))의 기하평균은 a(N)/a(0)의 N제곱근을 구하면 됩니다.

평균수익률을 R이라고 하면, N차에서 수익은

a(N)=a(0)*(1+R)^N = a(0)*(1+r(0))*(1+r(1))*...*(1+r(N-1))

R = ((1+r(0))*(1+r(1))*...*(1+r(N-1))^(1/N))-1 = ((a(N)/a(0))^(1/N))-1

원금과 최종수익금을 알면 뒤쪽, 각 차수별로 수익률만 알면 앞쪽 공식을 쓰면 됩니다.

참 쉽죠?

피할 수 있을때 즐겨라! http://melotopia.net/b

cleansugar의 이미지

전개까지 해주시고 감사합니다.

위키에서 Geometric average rate of return라고 부르는 것이군요.

----
Computation in constant time
http://en.wikipedia.org/wiki/Geometric_mean

In cases where the geometric mean is being used to determine the average growth rate of some quantity, and the initial and final values a0 and an of that quantity are known, the product of the measured growth rate at every step need not be taken. Instead, the geometric mean is simply

기하평균의 1,n을 알면 중간항은 소거된다.

덕분에 새로운 걸 배웠습니다.

재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.

아이디의 아이디어 무한도전
http://blog.aaidee.com

귀태닷컴
http://www.gwitae.com

익명 사용자의 이미지

'평균'이라는 단어가 들어가면 그냥 1/n 하면 되는 줄 알았는데. ㅎㅎㅎ
기하평균이라는 개념을 새로 배우네요. 감사합니다.

cleansugar의 이미지

저도 고등학교때 크기가 산술>=기하>=조화 순이란 거 배울 때 접한 걸 여기서 써먹네요.

재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.

아이디의 아이디어 무한도전
http://blog.aaidee.com

귀태닷컴
http://www.gwitae.com

snowall의 이미지

그냥 참고로...

수익률r이 연속변수 x의 함수인 경우...

1+r(x)를 모든 x에 대해서 다 곱해야 하는데, 곤란하겠죠.

1+R = ((1+r(0))*(1+r(1))*...*(1+r(N-1))^(1/N))

log(1+R) = log((1+r(0))*(1+r(1))*...*(1+r(N-1))^(1/N)) = log(1+r(0))+log(1+(r(1))+...+log(1+(r(N)) = Sum(log(1+(r(i)), i=0~N)

이걸 응용하면 됩니다. 급수를 연속변수로 바꾸면서 적당히 리만 적분으로 고치면

log(1+R) = Integral(log(1+r(x))dx, x=x0~x1)

물론

R = exp(Integral(log(1+r(x))dx, x=x0~x1))-1

이런식으로 기하평균을 연속변수인 경우로 확장할 수 있습니다. 그냥 참고하세요.

물론, 이 경우에도 원금과 최종수익금을 알고 있으면 그 비율을 통해서 평균수익률을 간단히 계산할 수 있습니다.

피할 수 있을때 즐겨라! http://melotopia.net/b

익명 사용자의 이미지

뭔말인지 하나도 이해 안 되지만,,,
님 좀 짱인 듯^^

cleansugar의 이미지

고맙습니다.

리만적분 부분 이해가 안가는데 공부해야 되겠군요.

리만적분 독학으로 배우려면 무슨 과목을 해야하는지 모르겠습니다.

재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.

아이디의 아이디어 무한도전
http://blog.aaidee.com

귀태닷컴
http://www.gwitae.com

snowall의 이미지

저 함수는 적분이 잘 되는 함수니까 "수학의 정석"을 보셔도 됩니다. 수익률 함수가 이상(?)한 놈이라서 적분이 요상해진다고 생각이 되면 리만-스틸체스 적분이나 르벡 적분같은걸 보셔야 할 수도 있는데, 그때는 Advanced Calculus책과 Measure Theory책을 각각 찾아보시면 됩니다.

일단은 고등학교에서 배우는 구분구적법만 공부하셔도 개념 이해에는 문제 없습니다.

피할 수 있을때 즐겨라! http://melotopia.net/b

cleansugar의 이미지

예, 감사합니다.

재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.

아이디의 아이디어 무한도전
http://blog.aaidee.com

귀태닷컴
http://www.gwitae.com

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.