精华内容
下载资源
问答
  • matlab几何分布
    千次阅读
    2021-04-18 05:16:27

    统计工具箱函数

    Ⅰ-1 概率密度函数

    函数名对应分布的概率密度函数

    betapdf贝塔分布的概率密度函数

    binopdf二项分布的概率密度函数

    chi2pdf 卡方分布的概率密度函数exppdf指数分布的概率密度函数

    fpdf f分布的概率密度函数

    gampdf伽玛分布的概率密度函数

    geopdf几何分布的概率密度函数

    hygepdf超几何分布的概率密度函数

    normpdf正态(高斯)分布的概率密度函数lognpdf对数正态分布的概率密度函数

    nbinpdf负二项分布的概率密度函数

    ncfpdf非中心f分布的概率密度函数

    nctpdf非中心t分布的概率密度函数

    ncx2pdf 非中心卡方分布的概率密度函数poisspdf泊松分布的概率密度函数

    raylpdf雷利分布的概率密度函数

    tpdf学生氏t分布的概率密度函数

    unidpdf离散均匀分布的概率密度函数

    unifpdf连续均匀分布的概率密度函数

    weibpdf威布尔分布的概率密度函数

    Ⅰ-2 累加分布函数

    函数名对应分布的累加函数

    betacdf贝塔分布的累加函数

    binocdf二项分布的累加函数

    chi2cdf 卡方分布的累加函数

    expcdf指数分布的累加函数

    fcdf f分布的累加函数

    gamcdf伽玛分布的累加函数

    geocdf几何分布的累加函数

    hygecdf超几何分布的累加函数

    logncdf对数正态分布的累加函数

    nbincdf负二项分布的累加函数

    ncfcdf非中心f分布的累加函数

    nctcdf非中心t分布的累加函数

    ncx2cdf 非中心卡方分布的累加函数normcdf正态(高斯)分布的累加函数poisscdf泊松分布的累加函数

    raylcdf雷利分布的累加函数

    tcdf学生氏t分布的累加函数

    unidcdf离散均匀分布的累加函数

    unifcdf连续均匀分布的累加函数

    更多相关内容
  • matlab开发-超几何分布的快速算法。可应用于较大的数字(总数)
  • hypergeometric_and_binomial.m-用于验证超几何分布趋于二项分布的近似值的MATLAB代码 binomial_vs_normal.pdf-包含用于验证案例的代码和图的PDF文件 binomial_vs_poisson.pdf-包含用于验证案例的代码和图的PDF文件 ...
  • 它是关于使用分布函数在二维几何内部生成随机点。
  • 1.2 概率分布概率分布=随机变量+概率+分布(在统计图中的形状);Python实现:科学计算SciPy的stats模块;#anaconda prompt下安装scipy包 conda install scipy #导入包,统计计算包的统计模块 import scipy.stats as...

    一、统计概率

    1.1 随机变量(通常用大写字母表示)

    量化随机事件的函数,将随机事件可能出现的结果赋予了一个数字。

    f76c59e8311a744cfb3e99e5b82213c2.png

    1.2 概率分布

    • 概率分布=随机变量+概率+分布(在统计图中的形状);
    • Python实现:科学计算SciPy的stats模块;
    #anaconda prompt下安装scipy包
    conda install scipy
    #导入包,统计计算包的统计模块
    import scipy.stats as stats

    737f5d9d0e6ae00072112235c69d0c0c.png

    1.3 离散概率分布

    7d014ddd9f598867ea7843456c4d2f23.png

    附加知识点:因为Python绘图时坐标轴不显示中文,需要进行修改,网上有好几种修改方法,我自己改过两次配置文件,一次改坏了,一次改了没反应,所以不推荐这种方式,尝试了动态设置参数,稍微麻烦些,每次使用都要设置,但是可以应急,把设置代码放在下面,亲测有用,还有其他没尝试过的方法,待以后解决。

    #设置显示中文字体
    from pylab import mpl
    mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
    mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

    伯努利分布Python实现:

    #导入包
    import numpy as np
    import matplotlib.pyplot as plt
    from scipy import stats
    
    #第一步,定义随机变量1和0,抛硬币正面朝上为1,反面朝上为0
    X=np.arange(0,2,1) #生成等差数组,arrange(start,stop,step)
    
    #第二步:求对应分布的概率质量函数(PMF),返回一个列表,列表中每个元素表示随机变量中对应值的概率
    p=0.5 #硬币朝上概率
    plist=stats.bernoulli.pmf(X,p)
    
    '''
    plot默认绘制折线,因为是离散随机变量,只绘制点,所以传入以下参数:marker:点的形状, o表示为圆圈标记;
    linestyle:线条的形状,值None表示不显示连接各个点的折线; vlines用于绘制竖直线,vline(X坐标值,
    y最小坐标值,y最大坐标值);传入的X是一个数组, 是给数组中的每个X坐标值绘制竖直线,y最小坐标值是0,
    最大坐标值是对用plist中的值。
    '''
    #第3步:绘图
    plt.plot(X,plist,marker='o',linestyle='None')
    plt.vlines(X,0,plist)
    #设置显示中文字体
    from pylab import mpl
    mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
    mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
    #x轴文本
    plt.xlabel('随机变量:抛硬币1次')
    #y轴文本
    plt.ylabel('概率')
    #标题
    plt.title('伯努利分布:p=%.2f' % p)
    #显示图形
    plt.show()

    e40828ba933181ac8c340ab14097ab51.png

    二项分布Python实现:

    #导入包
    import numpy as np
    import matplotlib.pyplot as plt
    from scipy import stats
    
    #第一步,定义随机变量:抛硬币5次,正面朝上的概率
    n=5   #次数
    p=0.5 #成功的概率
    X=np.arange(0,n+1,1) #生成等差数组,arrange(start,stop,step)
    
    #第二步:求对应分布的概率质量函数(PMF),返回一个列表,列表中每个元素表示随机变量中对应值的概率
    plist=stats.binom.pmf(X,n,p)
    
    #第3步:绘图
    plt.plot(X,plist,marker='o',linestyle='None')
    plt.vlines(X,0,plist)
    #设置显示中文字体
    from pylab import mpl
    mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
    mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
    #x轴文本
    plt.xlabel('随机变量:抛硬币正面朝上次数')
    #y轴文本
    plt.ylabel('概率')
    #标题
    plt.title('二项分布:n=%i,p=%.2f' % (n,p))
    #显示图形
    plt.show()

    5eeb8065e010190f23c83628494a5d7b.png

    几何分布Python实现:

    #导入包
    import numpy as np
    import matplotlib.pyplot as plt
    from scipy import stats
    
    #第一步,定义随机变量:首次成功的次数,可能是1次,2次,3次等,这里我们想知道5次成功的概率
    n=6   #次数
    p=0.7 #成功的概率
    X=np.arange(1,n+1,1) #生成等差数组,arrange(start,stop,step)
    
    #第二步:求对应分布的概率质量函数(PMF),返回一个列表,列表中每个元素表示随机变量中对应值的概率
    plist=stats.geom.pmf(X,p)
    
    #第3步:绘图
    plt.plot(X,plist,marker='o',linestyle='None')
    plt.vlines(X,0,plist)
    #设置显示中文字体
    from pylab import mpl
    mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
    mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
    #x轴文本
    plt.xlabel('随机变量:第n次首次成功')
    #y轴文本
    plt.ylabel('概率')
    #标题
    plt.title('几何分布:p=%.2f' % p)
    #显示图形
    plt.show()

    a09439c0d9a9e8ea8d90dc92f1ef84c3.png

    泊松分布Python实现:

    #导入包
    import numpy as np
    import matplotlib.pyplot as plt
    from scipy import stats
    
    #第一步,定义随机变量:已知班主任透过窗户盯人的概率是每天2次,那么一天内盯人k次的概率是?
    mean=2   #均值,每天盯2次
    k=5 #每天盯5次的概率
    X=np.arange(0,k+1,1) #生成等差数组,arrange(start,stop,step)
    
    #第二步:求对应分布的概率质量函数(PMF),返回一个列表,列表中每个元素表示随机变量中对应值的概率
    plist=stats.poisson.pmf(X,mean)
    
    #第3步:绘图
    plt.plot(X,plist,marker='o',linestyle='None')
    plt.vlines(X,0,plist)
    #设置显示中文字体
    from pylab import mpl
    mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
    mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
    #x轴文本
    plt.xlabel('随机变量:盯人k次')
    #y轴文本
    plt.ylabel('概率')
    #标题
    plt.title('泊松分布:均值mean=%i' % mean)
    #显示图形
    plt.show()

    aba8a78b9651cbf1024f7fd95a845125.png

    1.4 连续概率分布

    1. 正态分布[1];
    2. 幂律分布[2]

    正态分布Python实现:

    #导入包
    import numpy as np
    import matplotlib.pyplot as plt
    from scipy import stats
    
    #第一步,定义随机变量
    mu=0   #均值
    sigma=1  #标准差
    X=np.arange(-5,5,0.1) #生成等差数组,arrange(start,stop,step)
    
    #第二步:求对应分布的概率密度函数(PDF)
    y=stats.norm.pdf(X,mu,sigma)
    
    #第3步:绘图
    plt.plot(X,y)
    #设置显示中文字体
    from pylab import mpl
    mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
    mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
    #x轴文本
    plt.xlabel('随机变量:X')
    #y轴文本
    plt.ylabel('概率:y')
    #标题
    plt.title('正态分布:$mu$=%.1f,$sigma^2$=%.1f' %(mu,sigma))
    #网格
    plt.grid()
    #显示图形
    plt.show()

    3c462317ebd937edce76218e55a97643.png

    二、统计概率

    2.1 总体和样本

    总体是研究对象的全部,样本是从总体中抽出的部分单位集合,这个集合的大小叫做样本量样本个数指从总体中可能抽取的样本数[3],比如一个代销为500的样本,从中抽取100个调查,则样本个数为100。

    83dd1cd9712fcfa6df4909119bc6072a.png

    相关Python模块是随机数(random)包,randint()函数可生成随机数

    #生成随机数x,x为a到b之间的数字(a<= x <=b)
    import random
    x = random.randint(a,b)
    #案例,生成[0,9]之间的随机数a
    a = random.randint(0,9)

    用Python实现一个小抽奖:

    #导入random(随机数)模块
    import random
    '''
    range()函数创建一个整数列表,一般用在for循环中。
    range(start,stop,step),计数从start开始,默认为0,不包括stop,
    步长step默认为1.如range(0,5)等价于range(0,5,1)
    '''
    #抽奖,从1000个用户中随机抽取5个人作为中奖者
    for i in range(1,6):
        userid=random.randint(1,1000)
        #用%s格式化字符串
        print('第 %s 位获奖用户id是 %s' % (i,userid))

    7592676feaee5308ddb045fc51b4395b.png

    pandas数据框DataFrame抽样方法:

    import numpy as np  #数组包
    import pandas as pd #数据分析包
    '''
    arange()函数产生一个含有5*4个元素的一维数组;
    reshape:将数组转换为5行4列的二维数组
    '''
    df = pd.DataFrame(np.arange(5*4).reshape(5,4))
    #随机选择一个n行的子集
    sample1 = df.sample(n=3)
    sample1

    0d95228e5ffd88fffc1da146f2cd10a2.png

    2.2 中心极限定理

    4cf7dd313c83eb033bb4fcdd16f9f071.png

    2.3 样本估计总体标准差

    b22e362ca7b10c4088302db553d4193b.png
    样本与总体

    01a871f736525d4b068f1a22bf475fc7.png
    标准差计算公式

    16cb107b0fc13346b6748f374cd4a5e1.png
    标准差和标准误差

    cc97e4c2dae6844da52dac97a28f062c.png
    标准误差计算公式

    4aa74d0df931c63fb9717db275665483.png
    样本平均值概率图

    2.4 概率“偏见”

    e1f5475259c3b6e5c377861f55627ef2.png

    参考

    1. ^正态分布百科 https://baike.baidu.com/item/%E6%AD%A3%E6%80%81%E5%88%86%E5%B8%83
    2. ^幂律分布百科 https://baike.baidu.com/item/%E5%B9%82%E5%BE%8B%E5%88%86%E5%B8%83
    3. ^样本容量MBA智库百科 https://wiki.mbalib.com/wiki/%E6%A0%B7%E6%9C%AC%E5%AE%B9%E9%87%8F
    展开全文
  • 均匀分布的随机数据的产生函数rand功能 生成元素均匀分布于(0,1)上的向量与矩阵。用法Y = rand(n) %返回n*n阶的方阵Y,其元素均匀分布于区间(0,1)。若n不是一标量,在显示一出错信息。Y = rand(m,n),或Y = rand([m ...

    均匀分布的随机数据的产生

    函数rand

    功能 生成元素均匀分布于(0,1)上的向量与矩阵。

    用法Y = rand(n) %返回n*n阶的方阵Y,其元素均匀分布于区间(0,1)。若n不是一标量,在显示一出错信息。

    Y = rand(m,n),或Y = rand([m n]) %返回阶数为m*n的,元素均匀分布于区间(0,1)上矩阵Y。

    Y = rand(m,n,p,…)或Y = rand([m n p…]) %生成阶数m*n*p*…的,元素服从均匀分布的多维随机矩阵Y。

    Y = rand(size(A)) %生成一与阵列A同型的随机均匀矩阵Y

    rand %该命令在每次单独使用时,都返回一随机数(服从均匀分布)。

    s = rand('state') %返回一有35元素的列向量s,其中包含均匀分布生成器的当前状态。该改变生成器的当前的状态,见表2-1。

    表2-1

    命 令

    含 义

    rand(‘state’,s)

    设置状态为s

    rand('state',0)

    设置生成器为初始状态

    rand(‘state’,k)

    设置生成器第k个状态(k为整数)

    rand(‘state’,sum(100*clock))

    设置生成器在每次使用时的状态都不同(因为clock每次都不同)

    例如:s = rand('state') 回车,返回一有35元素的列向量s。

    rand(‘state’,0) 回车

    s1 = rand('state') 回车,返回一有35元素的列向量s1,但与s不同。

    如果要生(a,b)的均匀分布的随机数,则可用:

    a + (b-a) * rand(n,m)

    例:

    >>R1 = rand(4,5)

    >>a = 10; b = 50;

    >>R2 = a + (b-a) * rand(5) % 生成元素均匀分布于(10,50)上的矩阵

    计算结果可能为:

    R1 =

    0.6655 0.0563 0.2656 0.5371 0.6797

    0.3278 0.4402 0.9293 0.5457 0.6129

    0.6325 0.4412 0.9343 0.9394 0.3940

    0.5395 0.6501 0.5648 0.7084 0.2206

    R2 =

    33.6835 19.8216 36.9436 49.6289 46.4679

    18.5164 34.2597 15.3663 31.0549 49.0377

    19.0026 37.1006 33.6046 39.5361 13.9336

    12.4641 12.9804 35.5420 23.2916 46.8304

    28.5238 48.7418 49.0843 13.0512 10.9265

    标准正态分布随机数据的产生

    函数randn

    功能 生成元素服从正态分布(N(0,1))的向量或矩阵。

    格式Y = randn(n) %返回n*n阶的方阵Y,其元素服从正态分布N(0,1)。若n不是一标量,则显示一出错信息。

    Y = randn(m,n)、Y = randn([m n]) %返回阶数为m*n的,元素正态分布于区间(0,1)上矩阵Y。

    Y = randn(m,n,p,…)、Y = randn([m n p…]) %生成阶数m*n*p*…的,元素服从正态分布的多维随机阵列Y。

    Y = randn(size(A)) %生成一与阵列A同型的随机正态阵列Y

    randn %该命令在每次单独使用时,都返回一随机数(服从正态分布)。

    s = randn('state') %返回一有2元素的向量s,其中包含正态分布生成器的当前状态。该改变生成器的当前状态,见表2-2。

    表2-2

    命 令

    含 义

    randn(‘state’,s)

    设置状态为s

    randn(’state’,0)

    设置生成器为初始状态

    randn(‘state’,k)

    设置生成器第k个状态(k为整数)

    randn(‘state’,sum(100*clock))

    设置生成器在每次使用时的状态都不同(因为clock每次都不同)

    正态分布随机数据的产生

    命令 参数为μ、σ的正态分布的随机数据

    函数normrnd

    格式R = normrnd(MU,SIGMA) %返回均值为MU,标准差为SIGMA的正态分布的随机数据,R可以是一个数或向量或矩阵,具体视MU和SIGMA的形式而定。如:

    当MU和SIGMA都为标量时,R为一个标量(一个数)。如:

    R=normrnd(2,4)

    R =

    -4.6623

    当MU和SIGMA都为大小相同向量时,R为大小与MU相同的一个向量。

    R=normrnd(1:6,1./(1:6))

    R =

    1.1253 2.1438 2.6178 4.2977 5.2378 5.9937

    当MU和SIGMA都为大小相同的矩阵时,R为大小与MU相同的一个矩阵。

    A= reshape(1:6,2,3) 回车

    A =

    1 3 5

    2 4 6

    R=normrnd(A,1./A) 回车

    R =

    1.3273 2.9378 4.8823

    2.0873 4.1814 6.3639

    R = normrnd(MU,SIGMA,[m n]) 或R = normrnd(MU,SIGMA,m,n) % [m n]和m,n指定随机数R的行数m与列数n。

    R=normrnd(3,8,[2 5]) 回车

    R =

    -0.1991 9.5250 13.3220 12.5267 2.8417

    8.5200 8.6953 8.3488 -6.6197 1.7463

    或R=normrnd(3,8,2,5) 回车

    R =

    -9.8327 -5.4518 -3.4407 4.7546 -14.3654

    5.0584 14.3211 7.2299 -4.3752 2.5265

    n3 = normrnd([1 2 3;4 5 6],0.1,2,3) mu为均值矩阵

    n3 =

    0.9299 1.9361 2.9640

    4.1246 5.0577 5.9864

    正态分布也可用正态分布randn命令构造:

    MU+SIGMA*randn(m,n)

    均值为0.6、方差为0.1的2×3阶正态分布随机矩阵。命令如下:

    R=0.6+sqrt(0.1)*randn(2,3)

    R =

    0.9599 0.1915 0.4955

    0.3837 0.5769 0.3332

    常见分布的随机数产生

    方法一:

    常见分布的随机数的使用格式与上面相同

    表2-1 随机数产生函数表

    函数名

    调用形式

    注释

    Unifrnd

    unifrnd ( A,B,m,n)

    [A,B]上均匀分布(连续) 随机数

    Unidrnd

    unidrnd(N,m,n)

    均匀分布(离散)随机数

    Exprnd

    exprnd(MU,m,n)

    参数为MU的指数分布随机数

    Normrnd

    normrnd(MU,SIGMA,m,n)

    参数为MU,SIGMA的正态分布随机数

    chi2rnd

    chi2rnd(N,m,n)

    自由度为N的卡方分布随机数

    Trnd

    trnd(N,m,n)

    自由度为N的t分布随机数

    Frnd

    frnd(N1, N2,m,n)

    第一自由度为N1,第二自由度为N2的F分布随机数

    gamrnd

    gamrnd(A, B,m,n)

    参数为A, B的 分布随机数

    betarnd

    betarnd(A, B,m,n)

    参数为A, B的 分布随机数

    lognrnd

    lognrnd(MU, SIGMA,m,n)

    参数为MU, SIGMA的对数正态分布随机数

    nbinrnd

    nbinrnd(R, P,m,n)

    参数为R,P的负二项式分布随机数

    ncfrnd

    ncfrnd(N1, N2, delta,m,n)

    参数为N1,N2,delta的非中心F分布随机数

    nctrnd

    nctrnd(N, delta,m,n)

    参数为N,delta的非中心t分布随机数

    ncx2rnd

    ncx2rnd(N, delta,m,n)

    参数为N,delta的非中心卡方分布随机数

    raylrnd

    raylrnd(B,m,n)

    参数为B的瑞利分布随机数

    weibrnd

    weibrnd(A, B,m,n)

    参数为A, B的韦伯分布随机数

    binornd

    binornd(N,P,m,n)

    参数为N, p的二项分布随机数

    geornd

    geornd(P,m,n)

    参数为 p的几何分布随机数

    hygernd

    hygernd(M,K,N,m,n)

    参数为 M,K,N的超几何分布随机数

    Poissrnd

    poissrnd(Lambda,m,n)

    参数为Lambda的泊松分布随机数

    方法二:

    通用函数求各分布的随机数据

    命令 求指定分布的随机数

    函数 random

    格式 y = random('name',A1,A2,A3,m,n)

    name的取值见表4-2;A1,A2,A3为分布的参数;

    m,n指定随机数的行和列

    例4-3 产生12(3行4列)个均值为2,标准差为0.3的正态分布随机数

    >> y=random('norm',2,0.3,3,4)

    y =

    2.3567 2.0524 1.8235 2.0342

    1.9887 1.9440 2.6550 2.3200

    2.0982 2.2177 1.9591 2.0178

    表2-2 常见分布函数表

    name的取值

    函数说明

    'beta'

    'Beta'

    Beta分布

    'bino'

    'Binomial'

    二项分布

    'chi2'

    'Chisquare'

    卡方分布

    'exp'

    'Exponential'

    指数分布

    'f'

    'F'

    F分布

    'gam'

    'Gamma'

    GAMMA分布

    'geo'

    'Geometric'

    几何分布

    'hyge'

    'Hypergeometric'

    超几何分布

    'logn'

    'Lognormal'

    对数正态分布

    'nbin'

    'Negative Binomial'

    负二项式分布

    'ncf'

    'Noncentral F'

    非中心F分布

    'nct'

    'Noncentral t'

    非中心t分布

    'ncx2'

    'Noncentral Chi-square'

    非中心卡方分布

    'norm'

    'Normal'

    正态分布

    'poiss'

    'Poisson'

    泊松分布

    'rayl'

    'Rayleigh'

    瑞利分布

    't'

    'T'

    T分布

    'unif'

    'Uniform'

    均匀分布

    'unid'

    'Discrete Uniform'

    离散均匀分布

    'weib'

    'Weibull'

    Weibull分布

    展开全文
  • matlab代码替换超几何分布近似 包含各种代码以近似超几何分布,重点放在置信区间估计上 该代码是用MATLAB编写的,包括: roximate_comparison.m-确定超几何分布的各种近似的概率分布。 bino_p.m-确定具有置换的总体...
  • 此 m 文件返回参数为 M、K 和 N 的超几何分布的偏度、峰态和峰态超量。S、K 和 E 是输入参数的大小。 语法:函数 [s,k,e] = hygeskekur(m,k,n) 输入: m - 有限的人口规模k - 总体中具有感兴趣特征的项目数n - 没有...
  • 此 m 文件返回具有概率参数 P 的几何分布的偏度、峰态和峰态超量。S、K 和 E 是输入参数的大小。 语法:函数 [s,k,e] = geoskekur(p) 输入: p - 概率参数输出: s - 偏度k - 峰态e - 峰度过剩
  • Beta 几何分布用于模拟在观察到第一次成功之前在二项式过程中将发生的失败次数,其中二项式 p 本身是一个采用 Beta(a,b) 分布的随机变量。 它已广泛应用于繁殖力和人力或合同研究。 它具有概率密度函数: B(a+x,...
  • 如果一个群体中有 m_i 个类 i 的元素,你随机取 n 个元素不放回,那么样本中每个类的元素数 (x_1,x_2,...,x_c) 具有多元超几何分布。 这与超几何分布与二项式分布的多项分布具有相同的关系——多项分布是“有替换”...
  • 示例:从整个基因组中识别出 30 个基因的列表后20000个基因,与周期相关的基因有5个,总共有200个基因组中的细胞周期基因,那么对数 p 值将是: ln_p=log_hypergeometric(5,30,200,20000); % 或,以 10 为基础的对数...
  • 复杂网络上的静态拓扑性质的分析,包括聚类系数、平均路径长度、度、度分布,用MATLAB实现
  • 我们可以直接使用R的bioconductor里面的一个包,GOstats里面的函数来做超几何分布检验,看看每条pathway是否会富集我们直接读取用limma包做好的差异分析结果setwd("D:\\my_tutorial\\补\\用limma包对芯片数据做差异...

    我们可以直接使用R的bioconductor里面的一个包,GOstats里面的函数来做超几何分布检验,看看每条pathway是否会富集

    我们直接读取用limma包做好的差异分析结果

    setwd("D:\\my_tutorial\\补\\用limma包对芯片数据做差异分析")

    DEG=read.table("GSE63067.diffexp.NASH-normal.txt",stringsAsFactors = F)

    View(DEG)

    2d7a65af7a0d6d1f84e22fb49f13340f.png

    我们挑选logFC的绝对值大于0.5,并且P-value小雨0.05的基因作为差异基因,并且转换成entrezID

    probeset=rownames(DEG[abs(DEG[,1])>0.5 & DEG[,4]<0.05,])

    library(hgu133plus2.db)

    library(annotate)

    platformDB="hgu133plus2.db";

    EGID

    length(unique(EGID))

    #[1] 775

    diff_gene_list

    这样我们的到来775个差异基因的一个list

    首先我们直接使用R的bioconductor里面的一个包,GOstats里面的函数来做超几何分布检验,看看每条pathway是否会富集

    library(GOstats)

    library(org.Hs.eg.db)

    #then do kegg pathway enrichment !

    hyperG.params = new("KEGGHyperGParams", geneIds=diff_gene_list, universeGeneIds=NULL, annotation="org.Hs.eg.db",

    categoryName="KEGG", pvalueCutoff=1, testDirection = "over")

    KEGG.hyperG.results = hyperGTest(hyperG.params);

    htmlReport(KEGG.hyperG.results, file="kegg.enrichment.html", summary.args=list("htmlLinks"=TRUE))

    结果如下:

    ade0771844cd9c12f2dfc0a96c897404.png

    但是这样我们就忽略了其中的原理,我们不知道这些数据是如何算出来的,只是由别人写好的包得到了结果罢了。

    事实上,这个包的这个hyperGTest函数无法就是包装了一个超几何分布检验而已。

    如果我们了解了其中的统计学原理,我们完全可以写成一个自建的函数来实现同样的功能。

    超几何分布很简单,球分成黑白两色,数量已知,那么你随机抽有限个球,应该抽多少白球的问题!

    公式就是 exp_count=n*M/N

    然后你实际上抽了多少白球,就可以计算一个概率值!

    换算成通路的富集概念就是,总共有多少基因,你的通路有多少基因,你的通路被抽中了多少基因(在差异基因里面属于你的通路的基因),这样的数据就足够算出上面表格里面所有的数据啦!

    tmp=toTable(org.Hs.egPATH)

    GeneID2Path=tapply(tmp[,2],as.factor(tmp[,1]),function(x) x)

    Path2GeneID=tapply(tmp[,1],as.factor(tmp[,2]),function(x) x)

    #phyper(k-1,M, N-M, n, lower.tail=F)

    #n*M/N

    diff_gene_has_path=intersect(diff_gene_list,names(GeneID2Path))

    n=length(diff_gene_has_path) #321 # 这里算出你总共抽取了多少个球

    N=length(GeneID2Path) #5870  ##这里算出你总共有多少个球(这里是错的,有多少个球取决于背景基因!一般是两万个)

    options(digits = 4)

    for (i in names(Path2GeneID)){

    M=length(Path2GeneID[[i]])  ##这个算出你的所有的球里面,白球有多少个

    exp_count=n*M/N  ###这里算出你抽取的球里面应该多多少个是白色

    k=0         ##这个k是你实际上抽取了多少个白球

    for (j in diff_gene_has_path){

    if (i %in% GeneID2Path[[j]]) k=k+1

    }

    OddsRatio=k/exp_count

    p=phyper(k-1,M, N-M, n, lower.tail=F)  ##根据你实际上抽取的白球个数,就能算出富集概率啦!

    print(paste(i,p,OddsRatio,exp_count,k,M,sep="    "))

    }

    随便检查一下,就知道结果是一模一样的!

    展开全文
  • 从各种方便的分布生成随机数的例程:二项式、几何、一般离散、帕累托等。请参阅: http://www.math.uu.se/research/telecom/software
  • 关键功能主要集中在SPD矩阵的Riemanian几何上,包括距离,测地线,切线空间和不同度量下协方差矩阵的均值估计。 该工具箱已获得GPLv3许可。 安装 installer 功能清单 生成SPD矩阵 根据wishart分布生成一组SPD矩阵: ...
  • Matlab现在(2014b)有一个双尾Fisher精确检验(fishertest)! 但是,我仍然需要一个可以矢量化以执行 1000 次测试的版本。 此实现每秒执行 2.5e6 个单尾或双尾测试,非常适合全基因组关联研究或其他大型问题,其中...
  • 1.生成离散型随机变量1.1生成几何分布随机数1.1.1inverse transform method对于形如 的概率密度函数,因为 ,其中 ,所以 几何分布的密度函数为: 等价于 U 1.2生成泊松分布随机数 X 1.3生成二项分布随机数 n 2....
  • matlab泊松分布曲线

    千次阅读 2021-04-19 02:31:21
    项分布的概率密度函数 ncfpdf 非中心 f 分布的概率密度函数 nctpdf 非中心 t 分布的概率密度函数 ncx2pdf 非中心卡方分布的概率密度函数 poisspdf 泊松分布的......?...进行简单的......N 的超几何分布随...
  • matlab正态分布如何调用?

    千次阅读 2021-04-20 00:33:26
    02我们打开matlab之后,点击菜单栏里的“importdata”,准备加载我们需要统计分析的数据。03打开加载界面之后,我们找到我们要加载的数据文件,点击打开。04在加载的界面,我们将类型选择“matrix”矩阵列表,选择...
  • beta分布的概率密度的matlab代码拾线 几何概率问题的数字代码,特别是“线拾取”问题的密度函数,即从某个区域随机拾取的线的长度是多少。 细节: src / LinePicking.h Contains C library routines to compute the ...
  • 这节介绍常用分布。分常用离散分布和常用连续分布两类。常用离散分布二项分布(Binomial Distribution)记 为 重伯努利试验中成功的事件(记为 )的次数,则 服从二项分布。记 为事件 发生的概率, 的分布列为: 记 ...
  • 可视化功能: -按几何特征着色-球形直方图/极点映射-功能之间的分布和交互-评估单元格属性的可比指标 计划功能: -将结构应用于“批量”几何-力学性能和结构各向异性的预测 笔记: 某些功能尚未通过较旧版本的...
  • 几何分布 百度解释 https://baike.baidu.com/item/超几何分布/4782968?fr=aladdin 通俗解释 超几何分布中的参数是M,N,n,超几何分布记作X~H(N,M,n) 。假如一共有100颗球,20颗为红球,80颗为白球,从中不放回地...
  • Matlab随机数生成函数betarnd 贝塔分布的随机数生成器binornd 二项分布的随机数生成器chi2rnd 卡方分布的随机数生成器exprnd 指数分布的随机数生成器frnd f分布的随机数生成器gamrnd 伽玛分布的随机数生成器geornd ...
  • matlab画泊松分布

    千次阅读 2021-04-18 11:55:13
    泊松分布分布函数散点... 6、正态分布分布函数 x=-......MATLAB产生各种分布的随机数_数学_自然科学_专业资料。. MATLAB 产生各种分布的...的泊松分布随机数 4.1.4 通用函数求各分布的随机数据 命令 求指定分布的随...
  • 几何分布为接受抽样、动物数量的捕获-再捕获估计和公司账户审计抽样提供了一个模型。 因此,HPDF 函数可以帮助您解决这些领域和许多其他领域的概率问题。 hpdf = myhygepdf(x,N,m,n,Xtype) 样本 n 中 X = x 的超...
  • 常见的概率分布(matlab作图)

    千次阅读 2021-04-18 16:04:40
    一、常见的概率分布表1.1 概率分布分类表连续随机变量分布连续统计量分布离散随机变量分布分布分布二项分布连续均匀分布非中心 分布离散均匀分布(Gamma)分布分布几何分布指数分布非中心 分布超几何分布正态分布分布...
  • 本博文源于matlab对概率论的应用。讲述二项分布和指数分布的期望与方差的计算,只需要利用概率分布命令+运算功能函数即可,下面我们就一起来学习吧!

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,103
精华内容 2,441
关键字:

matlab几何分布

matlab 订阅