월간 데이콘 주식 종료 가격 예측 Pre Competiton (with.데이커)

알고리즘 | 정형 | 회귀 | 금융 | NMAE

  • moneyIcon Prize : DACON RANKING POINT, XP
  • 451명 마감
Closed

 

자본자산 가격결정 모형(CAPM)

2021.08.23 20:07 3,819 Views
자본자산 가격결정 모형(Capital Asset Pricing Model, CAPM)은 자본시장의 균형하에서 위험이 존재하는 자산의 균형수익률을 도출해내는 모형이다. 마코비츠의 포트폴리오 이론을 바탕으로 하여, 샤프 등에 의해 무위험자산의 가정을 포함하여 발전되었다. 넓은 의미로는 자본시장선과 증권시장선을 포함하는 개념이나, 보통 CAPM이라 하면 증권시장선을 의미하는 경우가 많다.(https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B3%B8%EC%9E%90%EC%82%B0_%EA%B0%80%EA%B2%A9%EA%B2%B0%EC%A0%95_%EB%AA%A8%ED%98%95)

좀 더 쉽게 설명하자면

자산가격 = (시장수익률-무위험자산수익률)*(자산의 리스크) +  알파 -무위험자산수익률

라는 식으로 정의됩니다.

보통 시장수익률은 KOSPI등의 Expected Return(예측 지수 수익률), 무위험자산수익률은 국채금리로 대체됩니다.

자산의 리스크(Beta)와 알파는 위 회귀식에 시계열 데이터를 적합하여 사용합니다.

시장수익률은 본래 Market Forward EPS 같은 예측값을 사용해야하나 구하기 힘든 관계로 코스피의 미래수익률을 이용해 적합해 봤습니다.

import FinanceDataReader as fdr
from statsmodels import api as sm
import pandas as pd

kospi = fdr.DataReader('KS11')  # 코스피지수
bond1y = fdr.DataReader('KR1YT=RR') #국채 1년금리


df = pd.DataFrame()
df['KOSPI'] = kospi['Close'].pct_change(250)
df['bond'] = bond1y['Close']*0.01

df['Beta'] = df['KOSPI'] - df['bond'].shift(250)
df['Alpah'] = 1

df['삼성전자'] = fdr.DataReader('005930')['Close'].pct_change(250)

df = df.dropna()
X = df[['Beta','Alpah']]
y = df['삼성전자'] - df['bond'].shift(250)


model = sm.OLS(y,X)
result = model.fit()
result.summary()


Out[2]: 
<class 'statsmodels.iolib.summary.Summary'>
"""
                            OLS Regression Results                            
==============================================================================
Dep. Variable:                   삼성전자   R-squared:                       0.532
Model:                            OLS   Adj. R-squared:                  0.532
Method:                 Least Squares   F-statistic:                     4703.
Date:                Mon, 23 Aug 2021   Prob (F-statistic):               0.00
Time:                        20:02:20   Log-Likelihood:                -3029.7
No. Observations:                4141   AIC:                             6063.
Df Residuals:                    4139   BIC:                             6076.
Df Model:                           1                                         
Covariance Type:            nonrobust                                         
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
Beta           1.4565      0.021     68.579      0.000       1.415       1.498
Alpah          0.1371      0.008     16.940      0.000       0.121       0.153
==============================================================================
Omnibus:                     2126.243   Durbin-Watson:                   0.011
Prob(Omnibus):                  0.000   Jarque-Bera (JB):            16771.565
Skew:                           2.331   Prob(JB):                         0.00
Kurtosis:                      11.687   Cond. No.                         2.75
==============================================================================
Warnings:
[1] Standard Errors assume that the covariance matrix of the errors is correctly specified.
"""


삼성전자의 Beta는 1.4565,  Alpha 는 0.13입니다.

코스피가 10% 상승한다면 삼성전자는 1.4656*0.1+ 0.13인 0.277%만큼 상승할 것으로 예측할 수 있겠네요.

로그인이 필요합니다
0 / 1000
퀀미새
2021.09.05 15:41

그치만 코스피가 몇퍼센트 상승할지 모른다는게....