Följande artikel hjälper dig: Capital Assets Pricing Model (CAPM) – Använda Python – Mot AI
Datavisualisering, programmering
Capital Assets Pricing Model (CAPM) — Använder Python
En guide för att veta om CAPM och implementera det i Python.
Vad är CAPM?
Kapitaltillgångsprissättningsmodellen (CAPM) är mycket använd och anses vara ett mycket grundläggande begrepp vid investeringar. Den bestämmer kopplingen mellan risken och förväntad avkastning på tillgångar, särskilt aktier.
Vad är CAPM-ekvationen?
CAPM definieras av följande formel:
där “i” är en enskild aktie
r(i)
β(i) = beta av ‘i’
r(m)
α(i)
β för en aktie ‘i’ berättar om risken aktien kommer att lägga till portföljen i jämförelse med marknaden. β=1 betyder att aktien är i linje med marknaden.
Enligt CAPM förväntas värdet av α vara noll och att det är mycket slumpmässigt och inte kan förutsägas.
Ekvationen som visas ovan är i form av y = mx+b och därför kan den behandlas som en form av linjär regression.
Hur implementerar man det i Python?
→ Installera paket
Det scipy paketet kommer att användas. Den har en funktion för att beräkna linjär regression. Tillsammans med det importeras pandor för att hantera data och data erhålls med hjälp av pandas datareader. Visualiseringar görs genom matplotlib.
>>> från krypigt importera statistik>>> importera pandor som pd>>> importera pandas_datareader som webb>>> importera datum Tid>>> importera matplotlib.pyplot som plt>>> %matplotlib inline
→ Data
Start- och slutdatumen definieras och analysen görs i själva intervallet.
>>> börja = datetime.datetime(2013,1,1)>>> slut = datetime.datetime(2016,1,1)
Få data för en marknad som “SPY” (SPDR S&P 500).
>>> df_spy = web.DataReader(‘SPY’,’yahoo’,start,slut)>>> df_spy.head()
Därefter erhålls data för en aktie. Beståndet som används här är Facebook.
>>> df_fb = web.DataReader(‘FB’,’yahoo’,start,slut)>>> df_fb.head()
→ Visualisera
Enligt CAPM bör det finnas ett visst samband mellan aktiens utveckling och marknadsutvecklingen som kommer att undersökas framåt.
>>> df_fb[‘Close’].plot(etikett = ‘Facebook’, figsize=(10,8))>>> df_spy[‘Close’].plot(etikett = ‘SPIONERA’)>>> plt.legend()
→ Statistik
Som framgår av handlingen verkar det som om aktiens utveckling efterliknar marknadsutvecklingen. Så statistiskt kan de jämföras. Den kumulativa avkastningen hittas.
>>> df_fb[‘Cumu’] = df_fb[‘Close’]/df_fb[‘Close’].iloc[0]>>> df_spy[‘Cumu’] = df_spy[‘Close’]/df_spy[‘Close’].iloc[0]>>> df_fb[‘Cumu’].plot(etikett = ‘Facebook’, figsize=(10,8))>>> df_spy[‘Cumu’].plot(etikett = ‘SPIONERA’)>>> plt.legend()
Den dagliga avkastningen bestäms också.
>>> df_fb[‘daily_ret’] = df_fb[‘Close’].pct_change(1)>>> df_spy[‘daily_ret’] = df_spy[‘Close’].pct_change(1) >>> plt.scatter(df_fb[‘daily_ret’],df_spy[‘daily_ret’])
Spridningsdiagrammet indikerar att det finns ett visst samband mellan aktiens och marknadens dagliga avkastning.
→ Hitta alfa- och betavärden
Alfa- och betavärdena hittas genom att använda statistikpaketet för scipy och anropa den linjära regressionsfunktionen. När den dagliga avkastningen hittas har den första raden NaN-värden och därför beaktas allt från den första raden när kolumnerna för linjär regression passeras.
>>> LR = stats.linregress(df_fb[‘daily_ret’].iloc[1:],df_spy[‘daily_ret’].iloc[1:]) >>> LRLinregressResult(slope=0,14508921572501682, intercept=0,0002066678439426573, rvalue=0,41761756846081083, pvalue=2,8903149315409 26453189)
Den linjära regressionsmodellen byggs. Den har 5 värden som kan erhållas genom tuppeluppackning. De fem värdena är beta, alpha, rvalue, pvalue och standard error.
>>> beta,alfa,r_val,p_val,std_err = LR >>> beta0,14508921572501682 >>> alfa0,0002066678439426573
Notera att eftersom CAPM sa att alfa är nära noll, kan det också ses här. Och betavärdet är högt om aktien beter sig precis som marknaden. Därför är betavärdet riktigt lågt här eftersom det inte finns så mycket relation mellan dem.
Se anteckningsboken här.
Hör av dig till mig: LinkedIn
Kolla in mitt andra arbete: GitHub
Capital Assets Pricing Model (CAPM) — Using Python publicerades ursprungligen i Towards AI on Medium, där människor fortsätter konversationen genom att lyfta fram och svara på den här historien.
Publicerad via Mot AI