拓端tecdat|R語言基于線性回歸的資本資產(chǎn)定價模型(CAPM)
原文鏈接:http://tecdat.cn/?p=20031?
原文出處:拓端數(shù)據(jù)部落
簡介
資本資產(chǎn)定價模型(CAPM)?是用于確定是否在一個特定資產(chǎn)的投資是值得的。本質(zhì)上,問題是:“該資產(chǎn)的回報是否值得投資?” 在本教程中,我們將應(yīng)用CAPM模型,使用多元回歸模型查看特定股票是否值得投資。
CAPM:公式
經(jīng)濟學(xué)就是權(quán)衡取舍。根據(jù)CAPM公式,基本上將股票或任何類型的資產(chǎn)類別與相對無風(fēng)險的資產(chǎn)(通常是政府債券)進行比較,因為這些資產(chǎn)的違約概率非常低。CAPM公式如下

E(Ri)是期望收益率。
Rf是無風(fēng)險資產(chǎn),通常是政府債券。
βi 系數(shù)反映了單個證券與整體市場組合的聯(lián)動性,用來衡量單個證券的風(fēng)險。
E(Rm)-Rf被認為是?風(fēng)險溢價。
我們可以用下圖以圖形方式表示CAPM模型

在?證券市場線(SML)上的有效組合或者是單一的無風(fēng)險資產(chǎn)或行是無風(fēng)險資產(chǎn)與市場組合的組合。因此,資本市場線不能解釋所有的單一證券或者是只有風(fēng)險證券組合的期望收益率和風(fēng)險之間的關(guān)系。。
我們的目標(biāo)是使用線性回歸找到βi的值。
數(shù)據(jù)
我們將使用數(shù)據(jù)來查找每只股票的beta。
kable(head(capm, 11), format = 'html')

## ? ? ? dis ? ? ? ? ? ? ? ? ?ge ? ? ? ? ? ? ? ? ?gm
## ?Min. ? :-0.267794 ? Min. ? :-0.234902 ? Min. ? :-0.389313
## ?1st Qu.:-0.043638 ? 1st Qu.:-0.032974 ? 1st Qu.:-0.076167
## ?Median : 0.005858 ? Median :-0.004716 ? Median :-0.013017
## ?Mean ? : 0.001379 ? Mean ? : 0.001361 ? Mean ? :-0.009081
## ?3rd Qu.: 0.047858 ? 3rd Qu.: 0.040096 ? 3rd Qu.: 0.068138
## ?Max. ? : 0.241453 ? Max. ? : 0.192392 ? Max. ? : 0.276619
## ? ? ? ibm ? ? ? ? ? ? ? ? msft ? ? ? ? ? ? ? ?xom
## ?Min. ? :-0.226453 ? Min. ? :-0.343529 ? Min. ? :-0.116462
## ?1st Qu.:-0.038707 ? 1st Qu.:-0.056052 ? 1st Qu.:-0.028031
## ?Median : 0.006482 ? Median : 0.003996 ? Median : 0.003309
## ?Mean ? : 0.008332 ? Mean ? : 0.008557 ? Mean ? : 0.010488
## ?3rd Qu.: 0.051488 ? 3rd Qu.: 0.056916 ? 3rd Qu.: 0.041534
## ?Max. ? : 0.353799 ? Max. ? : 0.407781 ? Max. ? : 0.232171
## ? ? ? mkt ? ? ? ? ? ? ? riskfree
## ?Min. ? :-0.184726 ? Min. ? :0.000025
## ?1st Qu.:-0.022966 ? 1st Qu.:0.001376
## ?Median : 0.010952 ? Median :0.002870
## ?Mean ? : 0.002511 ? Mean ? :0.002675
## ?3rd Qu.: 0.037875 ? 3rd Qu.:0.003904
## ?Max. ? : 0.083925 ? Max. ? :0.005195
根據(jù)我們的數(shù)據(jù),我們有六只股票,我們必須決定這些股票是否值得投資。不幸的是,由于我們必須首先將數(shù)據(jù)轉(zhuǎn)換為公式(1),因此我們不能僅僅擬合回歸模型。我們將必須根據(jù)已有變量來計算新變量。
我們需要計算每只股票的風(fēng)險溢價E(Rm)-Rf。
risk.premium <- mkt -riskfree

我們看一下股票(msft)的散點圖。
ggplot(aes(y = msft, x = risk.premium)) + geom_point(col='blue') + xlab('風(fēng)險溢價') +

值得注意的是,風(fēng)險溢價越高,期望收益就應(yīng)該越大。否則,投資具有期望低回報的高風(fēng)險資產(chǎn)并不是明智之舉,因為這會導(dǎo)致?lián)p失。
擬合模型
現(xiàn)在我們可以開始擬合我們的回歸模型。首先,我們必須將數(shù)據(jù)分為訓(xùn)練集和測試集。
# 我們將需要為所有六只股票創(chuàng)建回歸模型。
dis.fit <- lm(dis ~ riskfree + risk.premium, data = capm)
# 建立表格
kable(df, format = 'html') %>%

我們?nèi)绾谓忉岋L(fēng)險溢價的價值?風(fēng)險溢價越高,資產(chǎn)的波動性或風(fēng)險就越大,因此,投資者應(yīng)獲得可證明資產(chǎn)風(fēng)險合理的回報,以彌補損失。
現(xiàn)在我們已經(jīng)估計了beta,可以使用公式(1)計算每只股票的期望收益。
# 將預(yù)測添加到原始數(shù)據(jù)集
capm$dis.predict <- dis.predict
擬合回歸線
ggplot aes(y = dis.predict, x = risk.premium) +
geom_smooth(col='tomato2', method='lm') +







最受歡迎的見解
1.R語言多元Logistic邏輯回歸 應(yīng)用案例
2.面板平滑轉(zhuǎn)移回歸(PSTR)分析案例實現(xiàn)
3.matlab中的偏最小二乘回歸(PLSR)和主成分回歸(PCR)
4.R語言泊松Poisson回歸模型分析案例
5.R語言回歸中的Hosmer-Lemeshow擬合優(yōu)度檢驗
6.r語言中對LASSO回歸,Ridge嶺回歸和Elastic Net模型實現(xiàn)
7.在R語言中實現(xiàn)Logistic邏輯回歸
8.python用線性回歸預(yù)測股票價格
9.R語言如何在生存分析與Cox回歸中計算IDI,NRI指標(biāo)