Python 繪製效率前緣 2-隨機選股標準差分配

康韡瀚
Mar 24, 2021

--

簡介:

前篇提及如何使用Python 繪製效率前緣,本篇將延續前篇內容,探討在隨機選股下,十支股票為一投資組合,1000組投資組合畫成1000組效率前緣在固定報酬率下,標準差的分配情形

程式操作

step 1 載入套件:

yfinance 下載方法:

step 2 取得所有上市股票代號:

爬取股票代碼網址:https://isin.twse.com.tw/isin/class_main.jsp?owncode=&stockname=&isincode=&market=1&issuetype=1&industry_code=&Page

不使用證交所網址,而選擇爬取此網站主要原因為,此網站資料結構較簡單,股票代碼不會和公司在同一欄位,省掉日後整理資料麻煩

整理資料:

仔細觀察上方可以看出,頁面編號,國際證券代碼等在第一行而非在欄位名稱,因此須將第一行改為欄位名稱

加上 df.columns = df.iloc[0] 只能將原本欄位名稱改成原第一行,因此第一行重複出現 ,需使用df = df.iloc[1:]將重複部分刪除

step 3 隨機選取股票形成投資組合:

剩下步驟如上篇,只需加上迴圈即可

結果

下圖為在設定 報酬率(r)情形下,投資組合標準差分配情形

判斷偏態

計算偏態係數辦法

當x 為隨機變數時

1.動差法:

偏態係數=三階主動差/標準差三次方

當偏態係數 >0 為右偏,=0為對稱分配,<0為左偏

2.Pearson法:

Pearson法偏態係數=3(平均數-中位數)/標準差

當Pearson偏態係數 >0 為右偏,=0為對稱分配,<0為左偏

當x 為樣本資料時

  1. 動差法:

偏態係數=三階主動差/標準差三次方

當偏態係數 >0 為右偏,=0為對稱分配,<0為左偏

2.Pearson法:

Pearson法偏態係數=3(平均數-中位數)/標準差

m_e:中位數

當Pearson偏態係數 >0 為右偏,=0為對稱分配,<0為左偏

3.EXCEL使用SKEW函數:

圖片來源https://support.microsoft.com/zh-hk/office/skew-%E5%87%BD%E6%95%B8-bdf49d86-b1ef-4804-a046-28eaea69c9fa

當偏態系數>0 為右偏,=0為對稱分配,<0為左偏

r=0 的偏態系數為 -0.1959

r=1 的偏態系數為 0.395563

r=1.5 的偏態系數為0.376801

因此由上述資料可知,在隨機選取股票,形成1000組投資組合繪製效率前緣下,當要求報酬率由0上升至1.5,偏態系數由正轉負,由左偏圖形,變為右偏圖形。

判斷峰態?

計算峰度辦法

當x 為隨機變數時

峰態係數=四階主動差/標準差四次方

當x 為樣本資料時

1.峰態係數=四階主動差/標準差四次方

2.EXCEL使用KURT函數

圖片來源:https://support.microsoft.com/zh-tw/office/kurt-%E5%87%BD%E6%95%B8-bc3a265c-5da4-4dcb-b7fd-c237789095ab

當峰態係數 >3 ,為高峽峰(分配),也可以說是超高斯分配,表示資料在平均數附近的資料較少,在極端值資料較多,通常稱為肥尾。

當峰態係數=3為常態峰,也就是常態分配,但是此為常態分配的充分條件非必要。可以從常態峰推斷是常態分配,不能從常態分配推斷其為常態峰。

當峰態係數<3為低闊峰,或稱次高斯分配,表示資料在平均數附近的資料較多,在極端值資料較少,通常稱為瘦尾。

但是使用EXCEL計算時會-3所以,峰態係數 >0 ,為高峽峰,峰態係數=0為常態峰,峰態係數<0為低闊峰

圖片來源:https://scitechvista.nat.gov.tw/c/s9A4.htm

r=0 的峰態系數為 1.727842

r=1 的峰態系數為 2.553344

r=1.5 的峰態系數為2.581777

由此可知,在隨機選取股票,形成1000組效率前緣下,當要求報酬率由0上升至1.5,標準差分配高峽峰特性越明顯,樣本資料在平均值附近的次數分配較少,極端值較多。

參考資料:

SKEW 函數

KURT 函數

使用Excel计算峰度(Kurtosis)和偏度(Skewness)

https://blog.csdn.net/yangqingter/article/details/51375365

--

--