小結:
(泛義的)高數(shù)很重要阀捅,高數(shù)是一切經濟學和數(shù)據(jù)分析的基礎拂铡。未來大數(shù)據(jù)也會用到的陨溅。含義和公式不難终惑,比較難的是如何應用。python比較適合快速處理大量數(shù)據(jù)门扇,excel適合邊看圖表邊計算雹有,順便給銷售/財務/so on做一些自動模板。
- 數(shù)學含義與公式
(1) 加權平均值
(2) 相關系數(shù)
(3) 方差
(4) 協(xié)方差
(5) 數(shù)學期望值 E - Python3.6 實現(xiàn)
2.1. python 計算加權平均數(shù)
2.2 python 計算分組加權平均數(shù)
2.3 相關系數(shù) - 拓展 excel 計算
1. 數(shù)學含義與公式
(1) 加權平均值即將各數(shù)值乘以相應的權數(shù)臼寄,然后加總求和得到總體值霸奕,再除以總的單位數(shù)。
(2) 相關系數(shù)
簡單相關系數(shù):又叫相關系數(shù)或線性相關系數(shù)吉拳,一般用字母r 表示质帅,用來度量兩個變量間的線性關系。
Cov(X,Y)為X與Y的協(xié)方差留攒,Var[X]為X的方差煤惩,Var[Y]為Y的方差
(3) 方差
統(tǒng)計中的方差(樣本方差)是每個樣本值與全體樣本值的平均數(shù)之差的平方值的平均數(shù)。在許多實際問題中炼邀,研究方差即偏離程度有著重要意義魄揉。
(4) 協(xié)方差
協(xié)方差(Covariance)在概率論和統(tǒng)計學中用于衡量兩個變量的總體誤差。而方差是協(xié)方差的一種特殊情況拭宁,即當兩個變量是相同的情況洛退。
期望值分別為E(X) = μ 與 E(Y) = ν 的兩個實數(shù)隨機變量X與Y之間的協(xié)方差定義
分別為m與n個標量元素的列向量隨機變量X與Y,二者對應的期望值分別為μ與ν杰标,這兩個變量之間的協(xié)方差定義為m×n矩陣兵怯。
(5) 數(shù)學期望值 E
在概率論和統(tǒng)計學中,數(shù)學期望(mean)(或均值在旱,亦簡稱期望)是試驗中每次可能結果的概率乘以其結果的總和摇零,是最基本的數(shù)學特征之一。它反映隨機變量平均取值的大小桶蝎。
設連續(xù)性隨機變量X的概率密度函數(shù)為f(x)驻仅,若積分絕對收斂, 數(shù)學期望計算如下
(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 上的公開課