简单数据分布分析及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) # 计算每行的方差
数据的分布分析
正态分布
式中:μ为算术平均值,σ为标准差
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分布)
式中: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) #建立*度,4和3的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
“你问我全世界是哪里最美,答案是你身边”
——————五月天——————