分組加權平均數(shù)和相關系數(shù) 與 python 計算

小結:

(泛義的)高數(shù)很重要阀捅,高數(shù)是一切經濟學和數(shù)據(jù)分析的基礎拂铡。未來大數(shù)據(jù)也會用到的陨溅。含義和公式不難终惑,比較難的是如何應用。python比較適合快速處理大量數(shù)據(jù)门扇,excel適合邊看圖表邊計算雹有,順便給銷售/財務/so on做一些自動模板。

  1. 數(shù)學含義與公式
    (1) 加權平均值
    (2) 相關系數(shù)
    (3) 方差
    (4) 協(xié)方差
    (5) 數(shù)學期望值 E
  2. Python3.6 實現(xiàn)
    2.1. python 計算加權平均數(shù)
    2.2 python 計算分組加權平均數(shù)
    2.3 相關系數(shù)
  3. 拓展 excel 計算

1. 數(shù)學含義與公式

(1) 加權平均值即將各數(shù)值乘以相應的權數(shù)臼寄,然后加總求和得到總體值霸奕,再除以總的單位數(shù)。

加權平均值.png

(2) 相關系數(shù)

簡單相關系數(shù):又叫相關系數(shù)或線性相關系數(shù)吉拳,一般用字母r 表示质帅,用來度量兩個變量間的線性關系。

Cov(X,Y)為X與Y的協(xié)方差留攒,Var[X]為X的方差煤惩,Var[Y]為Y的方差

相關系數(shù).png

(3) 方差

統(tǒng)計中的方差(樣本方差)是每個樣本值與全體樣本值的平均數(shù)之差的平方值的平均數(shù)。在許多實際問題中炼邀,研究方差即偏離程度有著重要意義魄揉。

方差.png

(4) 協(xié)方差

協(xié)方差(Covariance)在概率論和統(tǒng)計學中用于衡量兩個變量的總體誤差。而方差是協(xié)方差的一種特殊情況拭宁,即當兩個變量是相同的情況洛退。

變化情況.png

期望值分別為E(X) = μ 與 E(Y) = ν 的兩個實數(shù)隨機變量X與Y之間的協(xié)方差定義

協(xié)方差.png

分別為mn個標量元素的列向量隨機變量XY,二者對應的期望值分別為μ與ν杰标,這兩個變量之間的協(xié)方差定義為m×n矩陣兵怯。

協(xié)方差矩陣.png

(5) 數(shù)學期望值 E

在概率論和統(tǒng)計學中,數(shù)學期望(mean)(或均值在旱,亦簡稱期望)是試驗中每次可能結果的概率乘以其結果的總和摇零,是最基本的數(shù)學特征之一。它反映隨機變量平均取值的大小桶蝎。

設連續(xù)性隨機變量X的概率密度函數(shù)為f(x)驻仅,若積分絕對收斂, 數(shù)學期望計算如下

數(shù)學期望值 E.png

(5) 標準普爾500指數(shù)

標準普爾500指數(shù)英文簡寫為S&P 500 Index登渣,是記錄美國500家上市公司的一個股票指數(shù)噪服。

標準·普爾500指數(shù)具有采樣面廣、代表性強胜茧、精確度高粘优、連續(xù)性好等特點仇味,被普遍認為是一種理想的股票指數(shù)期貨合約的標的。

標準普爾的實力在于創(chuàng)建獨立的基準雹顺。通過標準普爾的信用評級丹墨,他們以客觀分析和獨到見解真實反映政府、公司及其它機構的償債能力和償債意愿嬉愧,并因此獲得全球投資者的廣泛關注贩挣。

2. Python3.6 實現(xiàn)

數(shù)據(jù)集地址

https://github.com/kojoidrissa/pydata-book/tree/master/ch09

2.1. python 計算加權平均數(shù)

In [208]: test = DataFrame({'data':np.random.randn(10),
     ...:                   'weights':np.random.rand(10)})
     ...:

In [209]:

In [209]: test
Out[209]:
       data   weights
0  1.617083  0.498272
1 -0.298687  0.431866
2 -0.587101  0.931359
3  1.215299  0.062998
4 -0.710441  0.559426
5 -0.692910  0.622395
6 -0.065183  0.732230
7  1.041070  0.750380
8  0.644148  0.065128
9  0.844851  0.144296

In [210]: np.average(test['data'],weights=test['weights'])
Out[210]: 0.057340757362767489

2.2 python 計算分組加權平均數(shù)

In [194]: list = ['a']* 4 + ['b'] * 6

In [195]: list
Out[195]: ['a', 'a', 'a', 'a', 'b', 'b', 'b', 'b', 'b', 'b']

In [196]: df = DataFrame({'category' : list,
     ...:                 'data': np.random.randn(10),
     ...:                 'weights': np.random.rand(10)})

In [197]: df
Out[197]:
  category      data   weights
0        a -0.223955  0.017115
1        a  0.627805  0.204209
2        a -0.895798  0.904739
3        a  1.254223  0.551053
4        b -1.024985  0.904737
5        b -0.027101  0.263672
6        b -2.501462  0.364224
7        b  0.008169  0.805655
8        b  1.603461  0.630892
9        b -1.099844  0.596945

In [198]: grouped = df.groupby('category')

In [199]: get_wavg = lambda g : np.average(g['data'],weights=g['weights'])

In [200]: grouped.apply(get_wavg)
Out[200]:
category
a    0.003011
b   -0.416120
dtype: float64

2.3 相關系數(shù)

話說這個在coursera上也有說到...excel上也可以算。感覺難的不是代碼没酣,是概念和用法王财。

注意底數(shù)是什么。

# 讀取日收益率

In [213]: close_px = pd.read_csv('ch09/stock_px.csv',parse_dates=True,index_col
     ...: =0)

In [214]: close_px
Out[214]:
              AAPL   MSFT    XOM      SPX
2003-01-02    7.40  21.11  29.22   909.03
2003-01-03    7.45  21.14  29.24   908.59
2003-01-06    7.45  21.52  29.96   929.01
2003-01-07    7.43  21.93  28.95   922.93
2003-01-08    7.28  21.31  28.83   909.93
2003-01-09    7.34  21.93  29.44   927.57
2003-01-10    7.36  21.97  29.03   927.57
2003-01-13    7.32  22.16  28.91   926.26
2003-01-14    7.30  22.39  29.17   931.66
2003-01-15    7.22  22.11  28.77   918.22
2003-01-16    7.31  21.75  28.90   914.60
2003-01-17    7.05  20.22  28.60   901.78
2003-01-21    7.01  20.17  27.94   887.62
2003-01-22    6.94  20.04  27.58   878.36
2003-01-23    7.09  20.54  27.52   887.34
2003-01-24    6.90  19.59  26.93   861.40
2003-01-27    7.07  19.32  26.21   847.48
2003-01-28    7.29  19.18  26.90   858.54
2003-01-29    7.47  19.61  27.88   864.36
2003-01-30    7.16  18.95  27.37   844.61
2003-01-31    7.18  18.65  28.13   855.70
2003-02-03    7.33  19.08  28.52   860.32
2003-02-04    7.30  18.59  28.52   848.20
2003-02-05    7.22  18.45  28.11   843.59
2003-02-06    7.22  18.63  27.87   838.15
2003-02-07    7.07  18.30  27.66   829.69
2003-02-10    7.18  18.62  27.87   835.97
2003-02-11    7.18  18.25  27.67   829.20
2003-02-12    7.20  18.25  27.12   818.68
2003-02-13    7.27  18.46  27.47   817.37
...            ...    ...    ...      ...
2011-09-02  374.05  25.80  72.14  1173.97
2011-09-06  379.74  25.51  71.15  1165.24
2011-09-07  383.93  26.00  73.65  1198.62
2011-09-08  384.14  26.22  72.82  1185.90
2011-09-09  377.48  25.74  71.01  1154.23
2011-09-12  379.94  25.89  71.84  1162.27
2011-09-13  384.62  26.04  71.65  1172.87
2011-09-14  389.30  26.50  72.64  1188.68
2011-09-15  392.96  26.99  74.01  1209.11
2011-09-16  400.50  27.12  74.55  1216.01
2011-09-19  411.63  27.21  73.70  1204.09
2011-09-20  413.45  26.98  74.01  1202.09
2011-09-21  412.14  25.99  71.97  1166.76
2011-09-22  401.82  25.06  69.24  1129.56
2011-09-23  404.30  25.06  69.31  1136.43
2011-09-26  403.17  25.44  71.72  1162.95
2011-09-27  399.26  25.67  72.91  1175.38
2011-09-28  397.01  25.58  72.07  1151.06
2011-09-29  390.57  25.45  73.88  1160.40
2011-09-30  381.32  24.89  72.63  1131.42
2011-10-03  374.60  24.53  71.15  1099.23
2011-10-04  372.50  25.34  72.83  1123.95
2011-10-05  378.25  25.89  73.95  1144.03
2011-10-06  377.37  26.34  73.89  1164.97
2011-10-07  369.80  26.25  73.56  1155.46
2011-10-10  388.81  26.94  76.28  1194.89
2011-10-11  400.29  27.00  76.27  1195.54
2011-10-12  402.19  26.96  77.16  1207.25
2011-10-13  408.43  27.18  76.37  1203.66
2011-10-14  422.00  27.27  78.11  1224.58

[2214 rows x 4 columns]

# 丟棄NAN項

In [215]: rets = close_px.pct_change().dropna()

# 計算相關系數(shù)的lambda函數(shù)(主要用于分組)

In [216]: spx_corr = lambda x : x.corrwith(x['SPX'])

# 按年份分組

In [217]: by_year = rets.groupby(lambda x:x.year)

# 按年份計算各股票與SPX的相關系數(shù)

In [218]: by_year.apply(spx_corr)
Out[218]:
          AAPL      MSFT       XOM  SPX
2003  0.541124  0.745174  0.661265  1.0
2004  0.374283  0.588531  0.557742  1.0
2005  0.467540  0.562374  0.631010  1.0
2006  0.428267  0.406126  0.518514  1.0
2007  0.508118  0.658770  0.786264  1.0
2008  0.681434  0.804626  0.828303  1.0
2009  0.707103  0.654902  0.797921  1.0
2010  0.710105  0.730118  0.839057  1.0
2011  0.691931  0.800996  0.859975  1.0

# 任意兩股票的相關系數(shù)如下計算

In [219]: by_year.apply( lambda g : g['AAPL'].corr(g['MSFT']))
Out[219]:
2003    0.480868
2004    0.259024
2005    0.300093
2006    0.161735
2007    0.417738
2008    0.611901
2009    0.432738
2010    0.571946
2011    0.581987
dtype: float64

3. 拓展 excel 計算

python比較快..但是excel也可以算裕便,如果是一邊做圖表一邊算(或者做模板)绒净,可能excel會方便點。自動化其實還可以寫VBA偿衰。

用基本的Excel函數(shù)計算商業(yè)指標--杜克大學
http://www.reibang.com/p/20a289309f21


2018.8.24

含義來自谷歌和百度的信息(高數(shù)書不在手邊..)
python 代碼來自 《用python進行數(shù)據(jù)分析》
Excel 來自 coursera 上的公開課

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末挂疆,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子哎垦,更是在濱河造成了極大的恐慌囱嫩,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件漏设,死亡現(xiàn)場離奇詭異墨闲,居然都是意外死亡,警方通過查閱死者的電腦和手機郑口,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門鸳碧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人犬性,你說我怎么就攤上這事瞻离。” “怎么了乒裆?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵套利,是天一觀的道長。 經常有香客問我鹤耍,道長肉迫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任稿黄,我火速辦了婚禮喊衫,結果婚禮上,老公的妹妹穿的比我還像新娘杆怕。我一直安慰自己族购,他們只是感情好壳贪,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著寝杖,像睡著了一般违施。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上朝墩,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天醉拓,我揣著相機與錄音伟姐,去河邊找鬼收苏。 笑死,一個胖子當著我的面吹牛愤兵,可吹牛的內容都是我干的鹿霸。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼秆乳,長吁一口氣:“原來是場噩夢啊……” “哼懦鼠!你這毒婦竟也來了?” 一聲冷哼從身側響起屹堰,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤肛冶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后扯键,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體睦袖,經...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年荣刑,在試婚紗的時候發(fā)現(xiàn)自己被綠了馅笙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡厉亏,死狀恐怖董习,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情爱只,我是刑警寧澤皿淋,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站恬试,受9級特大地震影響窝趣,放射性物質發(fā)生泄漏。R本人自食惡果不足惜忘渔,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一高帖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧畦粮,春花似錦散址、人聲如沸乖阵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瞪浸。三九已至,卻和暖如春吏祸,著一層夾襖步出監(jiān)牢的瞬間对蒲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工贡翘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蹈矮,地道東北人。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓鸣驱,卻偏偏與公主長得像泛鸟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子踊东,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內容