2. 离散随机变量

  1. 查看所有的连续随机变量:

    1. [k for k,v in stats.__dict__.items() if isinstance(v,stats.rv_discrete)]

    rv_discrete

  2. 离散随机变量对象都有如下方法:

    • rvs(<shape(s)>, loc=0, size=1):生成随机值
    • pmf(x, <shape(s)>, loc=0):概率密度函数在x处的值
    • logpmf(x, <shape(s)>, loc=0):概率密度函数在x处的对数值
    • cdf(x, <shape(s)>, loc=0):累积分布函数在x处的取值
    • logcdf(x, <shape(s)>, loc=0) :累积分布函数在x处的对数值
    • sf(x, <shape(s)>, loc=0) :生存函数在x处的值
    • logsf(x, <shape(s)>, loc=0, scale=1):生存函数在x处的对数值
    • ppf(q, <shape(s)>, loc=0) :累积分布函数的反函数
    • isf(q, <shape(s)>, loc=0) :生存函数的反函数
    • moment(n, <shape(s)>, loc=0):non-central n-th moment of the distribution. May not work for array arguments.
    • stats(<shape(s)>, loc=0, moments='mv') :计算期望方差等统计量
    • entropy(<shape(s)>, loc=0) :计算熵
    • expect(func=None, args=(), loc=0, lb=None, ub=None, conditional=False):Expected value of a function with respect to the distribution. Additional kwd arguments passed to integrate.quad
    • median(<shape(s)>, loc=0):计算该分布的中值
    • mean(<shape(s)>, loc=0):计算该分布的均值
    • std(<shape(s)>, loc=0):计算该分布的标准差
    • var(<shape(s)>, loc=0):计算该分布的方差
    • interval(alpha, <shape(s)>, loc=0) Interval that with alpha percent probability contains a random realization of this distribution.
    • __call__(<shape(s)>, loc=0):产生一个参数冻结的随机变量
  3. 我们也可以通过rv_discrete类自定义离散概率分布:

    1. x=range(1,7)
    2. p=(0.1,0.3,0.1,0.3,0.1,0.1)
    3. stats.rv_discrete(values=(x,p))

    只需要传入一个values关键字参数,它是一个元组。元组的第一个成员给出了随机变量的取值集合,第二个成员给出了随机变量每一个取值的概率