栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python描述统计:多变量

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python描述统计:多变量

import pandas as pd
import scipy as sp

fish_multi = pd.DataFrame({'species': ['A', 'A', 'A', 'B', 'B', 'B'], 'length': [2, 3, 4, 6, 8, 10]})
group = fish_multi.groupby('species')
# 平均值
print(group.mean())
# 标准差
print(group.std(ddof=1))
# 一次性求均值 标准差 四分位
print(group.describe())

# 协方差:研究两个变量之间关系
'''
协方差大于0,一个变量取值越大,另外一个变量也越大
协方差小于0,一个变量取值越大,另一个变量取值越小
协方差等于0,两个变量不相关
'''

协方差公式
C o v ( x , y ) = 1 N ∑ i = 1 N ( x i − m u x ) ( y i − m u y ) Cov(x,y)=frac1{N}sum_{i=1}^{N}(x_i-mu_x)(y_i-mu_y) Cov(x,y)=N1​i=1∑N​(xi​−mux​)(yi​−muy​)
其中, μ x mu_x μx​、 μ y mu_y μy​分别是变量x、y的均值,N是样本容量。

与方差公式不一样的地方
σ 2 = 1 N ∑ i = 1 N ( x i − m u ) 2 sigma^2=frac1{N}sum_{i=1}^{N}(x_i-mu)^2 σ2=N1​i=1∑N​(xi​−mu)2
方差是( x i − μ x_i-mu xi​−μ)×( x i − μ x_i-mu xi​−μ)
协方差是( x i − μ x x_i-mu_x xi​−μx​)×( y i − μ y y_i-mu_y yi​−μy​)

协方差矩阵
把多个变量的方差和协方差放在一起的矩阵。
变量x,y的协方差矩阵为
C o v ( x , y ) = [ σ 2 C o v ( x , y ) C o v ( x , y ) σ 2 ] Cov(x,y)= begin{bmatrix} sigma^2& Cov(x,y) \ Cov(x,y) & sigma^2 \ end{bmatrix} Cov(x,y)=[σ2Cov(x,y)​Cov(x,y)σ2​]

cov_data = pd.DataFrame(
    {'x': [18.5, 18.7, 19.1, 19.7, 21.5, 21.7, 21.8, 22.0, 23.4, 23.8],
     'y': [34, 39, 41, 38, 45, 41, 52, 44, 44, 49]})
# 分别读取xy
x = cov_data['x']
y = cov_data['y']
# 读取样本容量
N = len(cov_data)
# 求各项变量均值
mu_x = np.mean(x)
mu_y = np.mean(y)
# 协方差
cov_sample = sum((x - mu_x)*(y - mu_y)) / N
print(cov_sample)
# N-1协方差
cov_sample_1 = sum((x - mu_x)*(y - mu_y)) / (N - 1)
print(cov_sample_1)
# 协方差矩阵
cov_array = np.cov(x,y,ddof=0)
print(cov_array)
# 协方差N-1矩阵
cov_array_1 = np.cov(x,y,ddof=1)
print(cov_array_1)

皮尔逊积矩相关系数
皮尔森(pearson)相关系数、斯皮尔曼(spearman)相关系数和肯德尔(kendall)相关系数并称为统计学三大相关系数。其中,spearman和kendall属于等级相关系数亦称为“秩相关系数”,是反映等级相关程度的统计分析指标。pearson是用来反应俩变量之间相似程度的统计量,在机器学习中可以用来计算特征与类别间的相似度,即可判断所提取到的特征和类别是正相关、负相关还是没有相关程度。
ρ x y = C o v ( x , y ) σ x 2 σ y 2 rho_{xy}=frac{Cov(x,y)}{sqrt{sigma_x^2sigma_y^2}} ρxy​=σx2​σy2​ ​Cov(x,y)​
把多个变量的相关系数放在一起得到的矩阵叫相关矩阵
C o v ( x , y ) = [ 1 ρ x y ρ x y 1 ] Cov(x,y)= begin{bmatrix} 1&rho_{xy} \ rho_{xy} & 1 \ end{bmatrix} Cov(x,y)=[1ρxy​​ρxy​1​]

皮尔逊积矩相关系数实现

'''
皮尔逊积矩相关系数
将协方差标准化最大值为1,最小值为-1
'''
# 计算N-1方差
sigma_2_x = np.var(x,ddof=1)
sigma_2_y = np.var(y,ddof=1)
# 计算相关系数
rho = cov_sample_1 / np.sqrt(sigma_2_x * sigma_2_y)
print(np.round(rho,3))
# 相关矩阵
rho_array = np.corrcoef(x, y)
print(rho_array)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/938158.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号