简单数据分布分析及python实现

数据集中趋势分析

数据集中趋势分析是为了衡量数据的集中程度,常用的集中趋势衡量指标包括数据的平均值中位数众数分位数。平均值和中位数多作为连续数据的衡量指标,众数多作为离散数据的衡量指标。

平均值

python实现。

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(1,100,100).reshape((25,4)))
df.mean(axis = 0) #计算每列的平均值
df.mean(axis = 1) # 计算每行的平均值

中位数

中位数是按顺序排列的一组数据中位于中间位置的那个数,当数据个数为奇数时,中位数即为正中间的那个数,当数据个数为偶数时,中位数即为中间两个数的平均值,python实现如下:

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(1,100,100).reshape((25,4)))
df.median(axis = 0) # 计算每列的中位数
df.median(axis = 1) # 计算每行的中位数

众数

众数是一组数据中出现次数最多的数值,代表该组数据的集中趋势点,一组数据中的众数可能有多个。python实现如下:

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(1,100,100).reshape((25,4)))
df.mode(axis = 0) # 计算每列的众数
df.mode(axis = 1) # 计算每行的众数

分位数

分位数也称为分位点,即对一组数据进行从到大小排列后,按照该组数据的分布范围进行等分,一般最常用的是进行四等分,处于25%位置的数字称为下四分位数,处于50%位置的数字称为中位数,处于75%位置的数字称为上四分位数。python实现如下:

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(1,100,100).reshape((25,4)))
df.quantile(axis = 0,q = 0.25) # 计算每列的下四分位数
df.quantile(axis = 1,q = 0.25) # 计算每行的下四分位数

数据离中趋势分析

数据的离中趋势用来衡量数据的离散程度,常用的衡量指标有标准差方差

标准差

在这里插入图片描述
式中: μ为算术平均值,σ为标准差。
python实现如下:

df = pd.DataFrame(np.random.randint(1,100,100).reshape((25,4)))
df.std(axis = 0) # 计算每列的标准差
df.std(axis = 1) # 计算每行的标准差

方差

在这里插入图片描述
式中:s2为方差,μ为算术平均值。
python实现如下:

df = pd.DataFrame(np.random.randint(1,100,100).reshape((25,4)))
df.var(axis = 0) # 计算每列的方差
df.var(axis = 1) # 计算每行的方差

数据的分布分析

正态分布

在这里插入图片描述
式中:μ为算术平均值,σ为标准差

扫描二维码关注公众号,回复: 10587606 查看本文章

python实现如下:

import scipy.stats as ss
norm_sample = ss.norm(0,1) #建立均值为0,标准差为1的正态分布
norm_sample.pdf([0,2,-2]) # 概率密度计算函数
norm_sample.cdf([0,2,-2]) # 累积分布概率计算函数
norm_sample.ppf([0.9,0.95,0.98]) # 累积分布概率计算反函数

卡方分布(x2分布)

Markdown将文本转换为 HTML。
式中:n为自由度,Γ(x)表示伽马函数。
python实现如下:

import scipy.stats as ss
norm_sample = ss.chi2(3) #建立自由度为3的卡方分布
norm_sample.pdf([0,2,10]) # 概率密度计算函数
norm_sample.cdf([0,2,10e5]) # 累积分布概率计算函数
norm_sample.ppf([0.9,0.95,0.98]) # 累积分布概率计算反函数

t分布

在这里插入图片描述
式中:n为自由度,Γ(x)表示伽马函数。
python实现如下:

import scipy.stats as ss
norm_sample = ss.t(3) #建立自由度为3的t分布
norm_sample.pdf([0,2,-2]) # 概率密度计算函数
norm_sample.cdf([0,2,-2]) # 累积分布概率计算函数
norm_sample.ppf([0.9,0.95,0.98]) # 累积分布概率计算反函数

f分布

在这里插入图片描述
式中:m和n为自由度,Γ(x)表示伽马函数。
python实现如下:

import scipy.stats as ss
norm_sample = ss.f(4,3) #建立自由度,43的f分布
norm_sample.pdf([0.1,2,10]) # 概率密度计算函数
norm_sample.cdf([0.1,2,10e5]) # 累积分布概率计算函数
norm_sample.ppf([0.9,0.95,0.98]) # 累积分布概率计算反函数

by CyrusMay 2020 04 07
“你问我全世界是哪里最美,答案是你身边”
——————五月天——————

发布了1 篇原创文章 · 获赞 5 · 访问量 86

猜你喜欢

转载自blog.csdn.net/Cyrus_May/article/details/105364689
今日推荐