본문 바로가기
2. Data Science Basics/Statistics

제1장. Descriptive Statistics

by Mojito 2021. 9. 6.

통계에서 기초적인 sampling 및 descriptive statistics 를 다뤄보도록 하겠습니다.

 

먼저 금융 데이터 중 나스닥, ETF(ARKK), TSLA 세가지 데이터를 가지고 분석해보겠습니다.

만약 내가 지금 시드머니가 천만원이 생겼고 그 천만원을 가지고 위에 세군대중 한군대에 투자를 해보려고한다면

어떻게 통계를 사용할 수 있을까?

 

1. 데이터 Load

import pandas as pd
import numpy as np
import investpy
from scipy.stats import sem
from scipy.stats import kurtosis
nasdaq = investpy.search_quotes(text='nasdaq', products=['indices'],
                                countries=['united states'], n_results=1)
nasdaq = nasdaq.retrieve_historical_data(from_date='01/09/2016', to_date='01/09/2021')

etf = investpy.search_quotes(text='ARKK', products=['etfs'],
                                       countries=['united states'], n_results=1)

etf = etf.retrieve_historical_data(from_date='01/09/2016', to_date='01/09/2021')

TSLA = investpy.search_quotes(text='tesla', products=['stocks'],
                                       countries=['united states'], n_results=1)
TSLA = TSLA.retrieve_historical_data(from_date='01/09/2016', to_date='01/09/2021')
df = pd.DataFrame()    ## 새로운 데이터 프레임을 만들어 종가만 추가
df['nasdaq'] = nasdaq['Close']
df['etf'] = etf['Close']
df['TSLA'] = TSLA['Close']
df

2. Daily data 를 Monthly 로 resample 하기

resampled = df.resample('BM').first()
df = resampled.pct_change()*100
df.dropna(inplace=True)
df.plot.line()
df.head()

3. Monthly data 분석

Mean, Meidan, Standard Deviation, Standard Error 와 같은 용어들은 인터넷에서 쉽게 구글링 할수 있으므로 자세한 설명은 건너 뛰겠습니다.

 

위 데이터를 놓고 가장 수익률이 좋을 것 같은 주식을 골라보라면, 어렵지 않게 TSLA 를 고를 수 있을겁니다. 2016년부터 매달 평균 2~3.5 퍼센트의 수익률을 내는 나스닥과 ARKK ETF 와는 다르게 TSLA 같은경우 평균 6.7퍼센트의 엄청난 수익률을 보여주고 있습니다. Mean 값으로 본 stock return 순위는 다음과 같습니다

1. TSLA

2. ARKK

3. Nasdaq

 

하지만 당연히 모든 투자에는 리스크가 존재하며, 그 리스크는 리턴이 클 수록 높아집니다. 리스크를 측정하는 방법중 하나로 standard deviation 을 살펴보는 방법이 있습니다. 단순히 평균 리턴만 가지고 투자하면 안되는 이유입니다. 높은 리턴을 자랑하는 주식들은 그에 따라 리스크또한 높은것을 확인할 수 있습니다.

 

그렇다면, std 를 이용하여 standard error를 측정해 보겠습니다.

from scipy.stats import sem
print('SE of nasdaq:{}\nSE of etf:{}\nSE of TSLA:{}'.format(sem(df['nasdaq']),sem(df['etf']),sem(df['TSLA'])))
print('Median of nasdaq:{}\nMedian of etf:{}\nMedian of TSLA:{}'.format(df['nasdaq'].median(), df['etf'].median(),
                                                                        df['TSLA'].median()))

standard error 로 알수 있는 사실은 다음과 같습니다.

만약 미래가 과거와 같은면을 공유한다면, 다음달 ARKK ETF의 주가는 66퍼센트의 확률로 2.23% (3.54 - 1.31) ~ 4.85%(3.54 + 1.31) 범위 안에서 오를 것 입니다. 

또한 95%의 확률로 0.92% (3.54 - 1.31*2) ~ 6.16% (3.54 + 1.31*2) 범위 안에서 오를 것 입니다.

 

이제 median 과 skewness 를 보겠습니다. 

Nasdaq (Mean < Median)    skew: -0.58

ETF (Mean > Median)    skew: -0.05

TSLA (Mean > Median)    skew: 1.18

 

ARKK ETF는 평균과 중간값이 차이가 크지않은 반면 나스닥과 테슬라는 각각 negatively / positively skewed 되 있습니다. 이 말은 곧, 나스닥은 negative outlier 가 positive 보다 더 관찰되기 쉽단 얘기이며 반대로 테슬라는 positive outlier 가 더 관찰되기 쉽단 얘기가 되기도 합니다. 

https://www.researchgate.net/figure/a-Negative-skewness-b-Normal-curve-c-Positive-skewness-Durkhure-and-Lodwal-2014_fig5_294890337

물론 위의 이론들을 그대로 적용시키기에는 외부적인 요소 (Exogenous factors)로 인하여 어려움이 있습니다. 학습용으로만 사용한 데이터이지만 데이터를 유의미하게 다룰 줄 안다면 리스크를 측정하는 개인적인 판단을 내릴 수 있을것입니다.

반응형

댓글