【五 (2)统计学知识-集中趋势分析与分散和变异性描述代码实现】

文章导航

【一 简明数据分析进阶路径介绍(文章导航)】

一、集中趋势

1、均值

均值(也称为平均值)是统计学中描述数据集中趋势的一种常用统计量,它表示一组数据中所有数值的总和除以数据个数的结果。均值能够反映数据的中心位置。

import pandas as pd

df = pd.read_csv('train.csv')

df['SalePrice'].describe() ## 查看数据描述性统计信息
df['SalePrice'].describe().mean() ## 仅查看均值信息
df['SalePrice'].mean() ## 直接查看均值信息

在这里插入图片描述

2、中位数

中位数是按顺序排列的一组数据中居于中间位置的数,代表一个样本、种群或概率分布中的一个数值。对于有限的数集,可以通过把所有观察值高低排序后找出正中间的一个作为中位数。如果观察值有偶数个,通常取最中间的两个数值的平均数作为中位数。

df['SalePrice'].median()

在这里插入图片描述

3、众数

众数是一组数据中出现次数或出现频率最多的数值。它是一种位置平均数,不受极端变量值的影响。众数主要用于测度分类数据的集中趋势,也可以用来测度顺序数据和数值型数据的集中趋势。

df['SalePrice'].mode()

在这里插入图片描述

二、分散性

1、全距(极差Range

数据集中最大值与最小值的差,用于量度数据集的分散程度。不过,极差仅仅描述了数据的宽度,并没有描述数据在上、下界之间的分布形态。如果数据中存在异常值,极差可能会极具误导性。

range_SalePrice = df['SalePrice'].max() - df['SalePrice'].min() 
range_SalePrice

在这里插入图片描述

2、四分位距(Interquartile Range,IQR

上四分位数与下四分位数之差,反映了中间50%数据的离散程度。四分位距是一个不受异常值影响的“迷你距”,能更稳健地描述数据的分散性。

iqr_SalePrice = df['SalePrice'].quantile(0.75) - df['SalePrice'].quantile(0.25)  
iqr_SalePrice

在这里插入图片描述

3、百分位数(Percentile

第k百分位Pk表示位于数据范围k%处的数值,用于描述数据在不同百分位上的分布情况。

df['SalePrice'].quantile(0.66) #取值范围0-1

在这里插入图片描述

4、中位数

df['SalePrice'].quantile(0.5)

在这里插入图片描述

三、变异性

1、方差(Variance)

每个数据与平均值的差值的平方和的均值,用于描述数据偏离平均值的程度。方差是量度数据分布形态的重要指标。

variance_SalePrice = df['SalePrice'].var()  
variance_SalePrice

在这里插入图片描述

2、标准差(Standard Deviation)

方差的平方根,与方差一样,用于描述数据的变异性。标准差具有与原始数据相同的单位,因此更容易理解。

std_dev_SalePrice = df['SalePrice'].std()  
std_dev_SalePrice

在这里插入图片描述

3、标准分(Z分数或标准化得分)

测量值相对于均值的标准偏差数。它表示一个原始分数与团体平均数之差,再除以标准差所得的商数。标准分是一种能够反映某一分数在团体中所处相对位置的量数。它将原始分数转换为平均数为0,标准差为1的标准分数,用公式表示为:Z = (x - μ) / σ。其中,x是某一具体分数,μ是平均数,σ是标准差。

# 计算每列的均值  
mean_SalePrice = df['SalePrice'].mean()  
  
# 计算每列的标准差  
std_dev_SalePrice = df['SalePrice'].std()  
  
# 使用apply函数和lambda表达式计算标准分  
SalePrice_zscores = df['SalePrice'].apply(lambda x: (x - mean_SalePrice) / std_dev_SalePrice)  
  
SalePrice_zscores

在这里插入图片描述

4、离散系数(Coefficient of Variation)

标准差与平均值之比,用于比较不同数据集之间的变异程度,可以消除不同数据集之间的单位差异。

# 计算每列的均值  
mean_SalePrice = df['SalePrice'].mean()  
  
# 计算每列的标准差  
std_dev_SalePrice = df['SalePrice'].std()  
  
# 使用apply函数和lambda表达式计算标准分  
SalePrice_coef_var = std_dev_SalePrice / mean_SalePrice 
  
SalePrice_coef_var

在这里插入图片描述

5、偏态系数(Skewness)

衡量数据分布形态的偏斜程度。偏态系数越大,说明数据分布越偏斜;反之,偏态系数越小,说明数据分布越接近对称。

skewness_SalePrice = df['SalePrice'].skew()  
skewness_SalePrice

在这里插入图片描述

6、峰态系数(Kurtosis)

描述数据分布形态的陡峭或扁平程度。峰态系数大于3表示数据分布比正态分布更陡峭;峰态系数小于3表示数据分布比正态分布更扁平。

kurtosis_SalePrice = df['SalePrice'].kurtosis()  
kurtosis_SalePrice

在这里插入图片描述

  • 12
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值