通俗解释 方差,标准差,协方差以及相关系数

本文转载自:

http://blog.csdn.net/yangdashi888/article/details/52397990 

https://www.zhihu.com/question/20852004

1、方差,标准差定义


  很显然,均值描述的是样本集合的中间点,它告诉我们的信息是很有限的,而标准差给我们描述的则是样本集合的各个样本点到均值的距离之平均。以这两个集合为例,[0,8,12,20]和[8,9,11,12],两个集合的均值都是10,但显然两个集合差别是很大的,计算两者的标准差,前者是8.3,后者是1.8,显然后者较为集中,故其标准差小一些,标准差描述的就是这种“散布度”。之所以除以n-1而不是除以n,是因为这样能使我们以较小的样本集更好的逼近总体的标准差,即统计上所谓的“无偏估计”。而方差则仅仅是标准差的平方。

那么,为什么还需要协方差呢?标准差和方差一般是用来描述一维数据的,但现实生活我们常常遇到含有多维数据的数据集,最简单的大家上学时免不了要统计多个学科的考试成绩。面对这样的数据集,我们当然可以按照每一维独立的计算其方差,但是通常我们还想了解更多,比如一个学科与另一个学科的相关性,如高数成绩与数理统计成绩是否相关等。这时候就需要协方差。


2、通俗的理解协方差



3、验证文献中的协方差公式

文献为:Zhang, Y,2017 Global variation of transpiration and soil evaporation and the role of their major climate drivers. J. Geophys. Res. :Atmospheres.  (http://onlinelibrary.wiley.com/doi/10.1002/2017JD027025/full)

文章中分析了实际蒸散发ETa,植被蒸腾T和土壤蒸发E的关系,公式11





### 使用Python进行金融数据分析 在金融领域,Python因其灵活性和丰富的库支持成为处理数据的强大工具。对于收益、方差协方差相关系数的计算,`pandas` 和 `numpy` 是两个不可或缺的数据处理库。 #### 计算日收益率 日收益率可以通过调整后的收盘价来计算。假设有一个包含每日股价的时间序列数据集: ```python import numpy as np import pandas as pd # 创建一个示例DataFrame表示日期和对应的调整后收盘价格 data = {'Date': ['2023-01-01', '2023-01-02', '2023-01-03'], 'Adj Close': [100, 105, 107]} df = pd.DataFrame(data) # 转换'Date'列为datetime类型并设置为索引 df['Date'] = pd.to_datetime(df['Date']) df.set_index('Date', inplace=True) # 计算对数收益率 log_returns = np.log(df['Adj Close']/df['Adj Close'].shift(1)).dropna() print(log_returns) ``` 此代码片段展示了如何基于前一日的价格变化来计算连续两天之间的对数收益率[^2]。 #### 方差计算 方差衡量的是单个资产回报率波动性的度量,在这里可以使用Pandas内置函数轻松完成: ```python variance = df['Adj Close'].var(ddof=0) # ddof参数指定自由度,默认为1;设为0则采用总体样本标准差 print(f"Variance of the adjusted close prices is {variance}") ``` 这段代码用于评估整个期间内调整后收盘价的变化程度。 #### 协方差与相关性矩阵 当涉及到多个证券时,了解它们之间是否存在某种关系变得非常重要。这可以通过构建协方差或相关性矩阵来实现: ```python # 假设有另一个股票B的数据框db other_data = {'Date': ['2023-01-01', '2023-01-02', '2023-01-03'], 'Adj Close_B': [98, 102, 104]} df_b = pd.DataFrame(other_data) df_b['Date'] = pd.to_datetime(df_b['Date']) df_b.set_index('Date', inplace=True) combined_df = pd.concat([df.rename(columns={'Adj Close':'A'}), df_b.rename(columns={'Adj Close_B':'B'})], axis=1).dropna() cov_matrix = combined_df.cov() # 计算协方差矩阵 corr_matrix = combined_df.corr() # 计算皮尔逊相关系数矩阵 print("Covariance Matrix:\n", cov_matrix) print("\nPearson Correlation Coefficient Matrix:\n", corr_matrix) ``` 上述脚本不仅能够展示两支不同股票间的相互影响模式,还可以揭示潜在的风险因素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值