推论统计分析1

推论统计学是数据分析、机器学习的基石

第一部分:总体的2种商业模式分式

什么是概率分布?

概率分布,是指用于表述随机变量取值的概率规律。

事件的概率表示了一次试验中某一个结果发生的可能性大小。

若要全面了解试验,则必须知道试验的全部可能结果及各种可能结果发生的概率,即随机试验的概率分布。

如果试验结果用变量X的取值来表示,则随机试验的概率分布就是随机变量的概率分布,即随机变量的可能取值及取得对应值的概率。

根据随机变量所属类型的不同,概率分布取不同的表现形式。

 

随机变量

随机变量(random variable)表示随机试验各种结果的实值单值函数。

随机事件不论与数量是否直接有关,都可以数量化,即都能用数量化的方式表达。

分为离散随机变量和连续随机变量

离散型

离散型(discrete)随机变量即在一定区间内变量取值为有限个或可数个。

例如某地区某年人口的出生数、死亡数,某药治疗某病病人的有效数、无效数等。

离散型随机变量通常依据概率质量函数分类,主要分为:伯努利随机变量、二项随机变量、几何随机变量和泊松随机变量。

连续型

连续型(continuous)随机变量即在一定区间内变量取值有无限个,或数值无法一一列举出来。

例如某地区男性健康成人的身长值、体重值,一批传染性肝炎患者的血清转氨酶测定值等。

有几个重要的连续随机变量常常出现在概率论中,如:均匀随机变量、指数随机变量、伽马随机变量和正态随机变量。

离散型随机变量的概率计算公式为概率质量函数(PMF),统计图中的形状为离散概率分布

连续型随机变量的概率计算公式为概率密度函数(PDF),统计图中的形状为连续概率分布

离散概率分布

 

离散随机变量(概率质量函数PMF),其中常见的包括伯努利分布、二项分布、几何分布和泊松分布

 

一、伯努利分布(0-1分布)

#导入包
#数组包
import numpy as np
#绘图包
import matplotlib.pyplot as plt
#统计计算包的统计模块
from scipy import stats
'''
arange用于生成一个等差数组,arange([start, ]stop, [step, ]
使用见文档:https://docs.scipy.org/doc/numpy/reference/generated/numpy.arange.html
'''

'''
第1步,定义随机变量:1次抛硬币
成功指正面朝上记录为1,失败指反面朝上记录为0
'''
X = np.arange(0, 2,1)
X
推论统计分析1

 

'''
伯努利分布官方使用文档:
https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.bernoulli.html#scipy.stats.bernoulli
'''
#第2步,#求对应分布的概率:概率质量函数 (PMF)
#它返回一个列表,列表中每个元素表示随机变量中对应值的概率
p = 0.5 # 硬币朝上的概率
pList = stats.bernoulli.pmf(X, p)
pList
推论统计分析1

 

"""设置字体,用于显示中文"""
plt.rcParams['font.sans-serif']=['FangSong']
"""SimSun 宋体,Microsoft YaHei微软雅黑 YouYuan幼圆 FangSong仿宋"""
plt.rcParams['font.size']=20
plt.rcParams['axes.unicode_minus']=False# 负号乱码
#第3步,绘图
'''
plot默认绘制折线,这里我们只绘制点,所以传入下面的参数:
marker:点的形状,值o表示点为圆圈标记(circle marker)
linestyle:线条的形状,值None表示不显示连接各个点的折线
'''
plt.plot(X, pList, marker='o',linestyle='None')
'''
vlines用于绘制竖直线(vertical lines),
参数说明:vline(x坐标值, y坐标最小值, y坐标值最大值)
我们传入的X是一个数组,是给数组中的每个x坐标值绘制竖直线,
竖直线y坐标最小值是0,y坐标值最大值是对应pList中的值
官网文档:https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.vlines
'''
plt.vlines(X, 0, pList)
#x轴文本
plt.xlabel('随机变量:抛硬币1次')
#y轴文本
plt.ylabel('概率')
#标题
plt.title('伯努利分布:p=%.2f' %  p)
#显示图形
plt.show()
推论统计分析1

二项分布(Binomial Distribution)

二项分布即重复N次独立的伯努利分布,二项分布求出的结果即某事件发生x次的概率

p表示成功的概率;k表示想知道成功的次数。P(X=k)=C(n,k)(p^k)*(1-p)^(n-k)。
#导入包
#数组包
import numpy as np
#绘图包
import matplotlib.pyplot as plt
#统计计算包的统计模块
from scipy import stats

 

'''
arange用于生成一个等差数组,arange([start, ]stop, [step, ]
使用见文档:https://docs.scipy.org/doc/numpy/reference/generated/numpy.arange.html
'''
#第1步,定义随机变量:5次抛硬币,正面朝上的次数
n = 5   # 做某件事情的次数
p = 0.5 # 做某件事情成功的概率
X = np.arange(0, n+1,1)
X
推论统计分析1

 

'''
二项分布官方使用文档:
https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.binom.html#scipy.stats.binom
'''
#第2步,#求对应分布的概率:概率质量函数 (PMF)
#它返回一个列表,列表中每个元素表示随机变量中对应值的概率
pList = stats.binom.pmf(X, n, p)
pList
推论统计分析1
"""设置字体,用于显示中文"""
plt.rcParams['font.sans-serif']=['FangSong']
"""SimSun 宋体,Microsoft YaHei微软雅黑 YouYuan幼圆 FangSong仿宋"""
plt.rcParams['font.size']=20
plt.rcParams['axes.unicode_minus']=False# 负号乱码
#第3步,绘图
'''
plot默认绘制折线,这里我们只绘制点,所以传入下面的参数:
marker:点的形状,值o表示点为圆圈标记(circle marker)
linestyle:线条的形状,值None表示不显示连接各个点的折线
'''
plt.plot(X, pList, marker='o',linestyle='None')
'''
vlines用于绘制竖直线(vertical lines),
参数说明:vline(x坐标值, y坐标最小值, y坐标值最大值)
我们传入的X是一个数组,是给数组中的每个x坐标值绘制竖直线,
竖直线y坐标最小值是0,y坐标值最大值是对应pList中的值
官网文档:https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.vlines
'''
plt.vlines(X, 0, pList)
#x轴文本
plt.xlabel('随机变量:抛硬币正面朝上次数')
#y轴文本
plt.ylabel('概率')
#标题
plt.title('二项分布:n=%i,p=%.2f' % (n,p))
#显示图形
plt.show()
推论统计分析1

几何分布(Geometric Distribution)

几何分布同样以伯努利分布为基础,即在N次伯努利分布试验中,试验k次才第一次获得成功的概率
#导入包
#数组包
import numpy as np
#绘图包
import matplotlib.pyplot as plt
#统计计算包的统计模块
from scipy import stats
'''
arange用于生成一个等差数组,arange([start, ]stop, [step, ]
使用见文档:https://docs.scipy.org/doc/numpy/reference/generated/numpy.arange.html
'''

'''
第1步,定义随机变量:
首次表白成功的次数,可能是1次,2次,3次等

'''
#第k次做某件事情,才取到第1次成功
#这里我们想知道5次表白成功的概率
k = 5   
# 做某件事情成功的概率,这里假设每次表白成功概率都是60%
p = 0.6 
X = np.arange(1, k+1,1)
X
推论统计分析1
'''
几何分布官方使用文档:
https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.geom.html#scipy.stats.geom
'''
#第2步,#求对应分布的概率:概率质量函数 (PMF)
#它返回一个列表,列表中每个元素表示随机变量中对应值的概率
#分别表示表白第1次才成功的概率,表白第2次才成功的概率,表白第3次才成功的概率,表白第4次才成功的概率,表白第5次才成功的概率
pList = stats.geom.pmf(X,p)
pList
推论统计分析1
"""设置字体,用于显示中文"""
plt.rcParams['font.sans-serif']=['FangSong']
"""SimSun 宋体,Microsoft YaHei微软雅黑 YouYuan幼圆 FangSong仿宋"""
plt.rcParams['font.size']=20
plt.rcParams['axes.unicode_minus']=False# 负号乱码
#第3步,绘图
'''
plot默认绘制折线,这里我们只绘制点,所以传入下面的参数:
marker:点的形状,值o表示点为圆圈标记(circle marker)
linestyle:线条的形状,值None表示不显示连接各个点的折线
'''
plt.plot(X, pList, marker='o',linestyle='None')
'''
vlines用于绘制竖直线(vertical lines),
参数说明:vline(x坐标值, y坐标最小值, y坐标值最大值)
我们传入的X是一个数组,是给数组中的每个x坐标值绘制竖直线,
竖直线y坐标最小值是0,y坐标值最大值是对应pList中的值
官网文档:https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.vlines
'''
plt.vlines(X, 0, pList)
#x轴文本
plt.xlabel('随机变量:表白第k次才首次成功')
#y轴文本
plt.ylabel('概率')
#标题
plt.title('几何分布:p=%.2f' % p)
#显示图形
plt.show()
推论统计分析1

泊松分布(Poisson Distribution)

一个事件在一段时间内随机发生,其服从泊松分布的条件为:

(1)将该时间段无限分隔成很多个小的时间段,在这个小的时间段内,事件发生的概率非常小,不发生的概率非常大。

(2)在每个小的时间段内,事件发生的概率是稳定的,且与小的时间段的长度成正比。

(3)该事件在不同的小时间段里,发生与否相互独立。
#导入包
#数组包
import numpy as np
#绘图包
import matplotlib.pyplot as plt
#统计计算包的统计模块
from scipy import stats
'''
arange用于生成一个等差数组,arange([start, ]stop, [step, ]
使用见文档:https://docs.scipy.org/doc/numpy/reference/generated/numpy.arange.html
'''

'''
第1步,定义随机变量:
已知某路口发生事故的比率是每天2次,
那么在此处一天内发生k次事故的概率是多少?
'''
mu = 2   # 平均值:每天发生2次事故
k=4 #次数,现在想知道每天发生4次事故的概率
#包含了发生0次、1次、2次,3次,4次事故
X = np.arange(0, k+1,1)
X
推论统计分析1
'''
泊松分布官方使用文档:
https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.poisson.html#scipy.stats.poisson
'''
#第2步,#求对应分布的概率:概率质量函数 (PMF)
#它返回一个列表,列表中每个元素表示随机变量中对应值的概率
#分别表示发生1次,2次,3次,4次事故的概率
pList = stats.poisson.pmf(X,mu)
pList
推论统计分析1
"""设置字体,用于显示中文"""
plt.rcParams['font.sans-serif']=['FangSong']
"""SimSun 宋体,Microsoft YaHei微软雅黑 YouYuan幼圆 FangSong仿宋"""
plt.rcParams['font.size']=20
plt.rcParams['axes.unicode_minus']=False# 负号乱码
#第3步,绘图
'''
plot默认绘制折线,这里我们只绘制点,所以传入下面的参数:
marker:点的形状,值o表示点为圆圈标记(circle marker)
linestyle:线条的形状,值None表示不显示连接各个点的折线
'''
plt.plot(X, pList, marker='o',linestyle='None')
'''
vlines用于绘制竖直线(vertical lines),
参数说明:vline(x坐标值, y坐标最小值, y坐标值最大值)
我们传入的X是一个数组,是给数组中的每个x坐标值绘制竖直线,
竖直线y坐标最小值是0,y坐标值最大值是对应pList中的值
官网文档:https://matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.vlines
'''
plt.vlines(X, 0, pList)
#x轴文本
plt.xlabel('随机变量:某路口发生k次事故')
#y轴文本
plt.ylabel('概率')
#标题
plt.title('泊松分布:平均值mu=%i' % mu)
#显示图形
plt.show()
推论统计分析1

连续型随机变量

正态分布(Normal Distribution)

正态分布属于连续型随机变量,若随机变量X服从一个数学期望为μ、方差为σ^2的正态分布,记为N(μ,σ^2)。

其概率密度函数为正态分布的期望值μ决定了其位置,其标准差σ决定了分布的幅度。

当μ = 0,σ = 1时的正态分布是标准正态分布。
#导入包
#数组包
import numpy as np
#绘图包
import matplotlib.pyplot as plt
#统计计算包的统计模块
from scipy import stats
'''
arange用于生成一个等差数组,arange([start, ]stop, [step, ]
使用见文档:https://docs.scipy.org/doc/numpy/reference/generated/numpy.arange.html
'''

'''
第1步,定义随机变量:

'''
mu=0 #平均值
sigma= 1 #标准差
X = np.arange(-5, 5,0.1)
X
推论统计分析1
#第2步,概率密度函数(PDF)
y=stats.norm.pdf(X,mu,sigma)
"""设置字体,用于显示中文"""
plt.rcParams['font.sans-serif']=['FangSong']
"""SimSun 宋体,Microsoft YaHei微软雅黑 YouYuan幼圆 FangSong仿宋"""
plt.rcParams['font.size']=20
plt.rcParams['axes.unicode_minus']=False# 负号乱码
#第3步,绘图
'''
plot默认绘制折线
'''
plt.plot(X, y)
#x轴文本
plt.xlabel('随机变量:x')
#y轴文本
plt.ylabel('概率:y')
#标题
plt.title('正态分布:$\mu$=%.1f,$\sigma^2$=%.1f' % (mu,sigma))
#网格
plt.grid()
#显示图形
plt.show()
推论统计分析1

概率分布对数据分析、机器学习有什么用?

 

什么是幂律分布?

某个具有分布性质的变量,只要其分布密布函数是幂函数(由于分布密度函数必然满足“归一律”,所以这里的幂函数,一般规定小于负1),都可以称其满足幂律分布规律。

这个定义是很清晰的,没有多种解释。这种分布是自然界中的一种常见现象。

譬如地震的大小,通常震级越小发生的频率越大,震级越大发生的频率就越小。

以震级为自变量,以其发生的频率(或概率)为因变量,符合(负)幂函数。

 

一般地,y=xα(α为有理数)的函数,即以底数为自变量,幂为因变量,指数为常数的函数称为幂函数。

例如函数y=x0 、y=x1、y=x2、y=x-1(注:y=x-1=1/x、y=x0时x≠0)等都是幂函数。

 

如何选择你的人生商业模式,才能离财务*更近

 

第一种:同一份时间出售一次


第二种:重复出售同一份时间


第三种:购买他人的时间再出售
上一篇:ubuntu 14.04如何从13.3升级到scipy 14.0


下一篇:吴裕雄--天生自然神经网络与深度学习实战Python+Keras+TensorFlow:概率论的一些重要概念