zoukankan      html  css  js  c++  java
  • 推论统计分析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
    '''
    伯努利分布官方使用文档:
    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
    """设置字体,用于显示中文"""
    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()

    二项分布(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
    '''
    二项分布官方使用文档:
    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
    """设置字体,用于显示中文"""
    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()

    几何分布(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
    '''
    几何分布官方使用文档:
    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
    """设置字体,用于显示中文"""
    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()

    泊松分布(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
    '''
    泊松分布官方使用文档:
    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
    """设置字体,用于显示中文"""
    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()

    连续型随机变量

    正态分布(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
    #第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),都可以称其满足幂律分布规律。

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

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

    以震级为自变量,以其发生的频率(或概率)为因变量,符合(负)幂函数。
    一般地,y=xα(α为有理数)的函数,即以底数为自变量,幂为因变量,指数为常数的函数称为幂函数。

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

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

    第一种:同一份时间出售一次
    
    
    第二种:重复出售同一份时间
    
    
    第三种:购买他人的时间再出售
  • 相关阅读:
    swiper获取当前的index ( loop=true时,)
    解决ios浏览器页面滚动到底部或顶部后,页面局部滑动失效的问题
    js实现全屏与退出全屏
    Ueditor 关于视频上传相关问题
    git拉取单个子目录
    XShell上传文件到Linux服务器上
    Debian中安装MySQL服务器
    lamda表达式的由来
    工具类--验证码工具类
    工具类--线程相关工具类
  • 原文地址:https://www.cnblogs.com/foremostxl/p/12109961.html
Copyright © 2011-2022 走看看