精华内容
下载资源
问答
  • 二维离散型随机变量概率分布
    千次阅读
    2021-05-27 15:46:17

    数学公式什么的没有。

    做实验计算联合熵需要使用概率密度。

    函数accumarray不是太行,方阵中很多的0浪费内存,我可没有几百G的内存ε=(´ο`*)))唉。

    Matlab代码实现

    function tong1joint = calmi(u1, u2, wind_size)
    x = [u1, u2];   //% x是2个列向量组成的矩阵
    n = wind_size; // % 列向量长度
    xmax = max(x(:,1));
    tongwidth = xmax;
    tong1 = zeros(2,tongwidth);	// % 这算是桶吧
    for i = 1:n
       if x(i,2) == 1
           tong1(1,x(i,1)) = tong1(1,x(i,1)) +1;
       else
           tong1(2,x(i,1)) = tong1(2,x(i,1)) +1;
       end
    end
    tong1pmf = tong1/n;  													 //% u1和u2的联合概率密度
    tong1joint = (tong1pmf(:))'*log2((tong1pmf(:))+eps);   // % 联合熵
    

    实例

    没有实例。

    更多相关内容
  • 数学期望离散型随机变量的数学期望1. 两点分布2. 分布3. 泊松分布4. 几何分布5. 超几何分布6. 其他连续性随机变量的数学期望1. 均匀分布2. 指数分布3. 正态分布 离散型随机变量的数学期望 1. 两点分布 2. 项...

    1. 两点分布

    • 定义: 实验的结果只有两种情况,即随机变量只有两个值,则称随机变量ξ服从两点分布。

    • 分布律
      在这里插入图片描述
      -p:表示实验成功的概率。

    • 分布函数

    • 概率密度函数

    • 期望: E(ξ) = p

    • 方差: D(ξ) = p(1-p)

    2. 二项分布/伯努利分布 【X~B(n, p)】

    • 定义: n个相互独立的两点分布的组合,具体分布律如下:
      在这里插入图片描述
      (ⅰ)当n为1时,即为两点分布。
      (ⅱ)当n趋于无穷大时,即为泊松分布。

    • 分布函数:

    • 概率密度函数:

    • 期望: E(ξ) = np

    • 方差: D(ξ) = np(1-p)

    ✈二项分布最大值问题。

    3. 泊松分布【ξ ~ P(λ)】

    • 定义:
      在这里插入图片描述
      
      -λ:(一次实验中,实验成功的概率pn )× (总的试验次数n)

    • 分布函数

    • 概率密度函数

    • 期望: E(ξ) = λ

    • 方差: D(ξ) = λ

    泊松定理

    4. 几何分布【ξ ~ Ge§】

    • 分布函数
    • 概率密度函数
    • 期望: E(ξ) = 1/p
    • 方差: D(ξ) = (1-p) / p2

    几何分布的无记忆性

    5. 超几何分布 【ξ ~ H(n, M , N)】

    • 分布函数
    • 概率密度函数
    • 期望
      在这里插入图片描述
    • 方差
      在这里插入图片描述
      超几何分布的二项分布近似:
      当n<<N时,

    6. 负二项分布

    期望
    在这里插入图片描述
    方差
    在这里插入图片描述

    展开全文
  • 使用多种方法实现二维离散随机变量概率分布的计算. 可以用于计算互信息等.

    一. 定义

    Joint probability distribution:

    给定至少两个随机变量X,Y,…, 它们的联合概率分布(Joint probability distribution)指的是每一个随机变量的值落入特定范围或者离散点集合内的概率. 对于只有两个随机变量的情况, 称为二元分布(bivariate distribution).

    联合概率分布可以使用联合累计分布函数(joint cumulative distribution function), 连续随机变量的联合概率密度函数(joint probability density function)或者离散变量的联合概率质量函数(joint probability mass function)来描述. 由此又衍生出两个概念: 边缘分布(marginal distribution)和条件概率分布(conditional probability distribution).

    二. 离散变量的联合概率质量函数公式

    公式:
    这里写图片描述

    这里写图片描述是给定 X=x Y=y 的条件概率.
    而且有:
    这里写图片描述

    如果 X Y相互独立:
    这里写图片描述
    如果 X Y条件不独立(conditionally dependent):
    P(X=x and Y=y)=P(X=x)P(Y=y|X=x)
    也可以使用联合累计分布函数差分来计算:
    联合累计分布函数定义是:
    这里写图片描述
    所以 F(x,y) 的导数(差分)就是 P(X=x and Y=y)

    三. 使用Matlab计算离散2D联合分布

    参考: Calculating a 2D joint probability distribution
    离散2D联合分布可用于计算两张图片的互信息MI.

    0. 定义两个离散的随机变量.

    有N个点分布在边长为1的正方形区域内. 把正方形分为K1*K2的小矩形. 统计每个小矩形内的点的个数.

    % Data
    N = 1e5;    % number of points
    xy = rand(N, 2);    % coordinates of points
    xy(randi(2*N, 100, 1)) = 0;    % add some points on one side
    xy(randi(2*N, 100, 1)) = 1;    % add some points on the other side
    xy(randi(N, 100, 1), :) = 0;    % add some points on one corner
    xy(randi(N, 100, 1), :) = 1;    % add some points on one corner
    inds= unique(randi(N, 100, 1)); 
    xy(inds, :) = repmat([0 1], numel(inds), 1);    % add some points on one corner
    inds= unique(randi(N, 100, 1)); 
    xy(inds, :) = repmat([1 0], numel(inds), 1);    % add some points on one corner
    
    % Intervals for rectangles
    K1 = ceil(sqrt(N/5));    % number of intervals along x
    K2 = K1;    % number of intervals along y
    int_x = [0:(1 / K1):1];    % intervals along x
    int_y = [0:(1 / K2):1];    % intervals along y

    1. 从定义出发, 使用for循环:

    tic
    count_cells = zeros(K1, K2);
    for k1 = 1:K1
      inds1 = (xy(:, 1) >= int_x(k1)) & (xy(:, 1) < int_x(k1 + 1));
      for k2 = 1:K2
        inds2 = (xy(:, 2) >= int_y(k2)) & (xy(:, 2) < int_y(k2 + 1));
        count_cells(k1, k2) = sum(inds1 .* inds2);% 布尔相乘得到交集点的个数
      end
    end
    toc
    % Elapsed time is 39.357691 seconds.

    可见使用两重循环的计算时间非常长.

    2. 使用hist3函数

    N=hist3(X,'Edges',edges)是matlab中专门计算二元分布的函数.
    edges是包含两个递增array的cell. 第一维分组edge1是edges{1}, 第二维分组edge2是edges{2}.
    也就是:
    edges1(i)<=X(k,1)<edges1(i+1)
    edges2(j)<=X(k,2)<edges2(j+1)
    正好落在 edges1(i+1) 或者 edges2(j+1) 上的点的个数放在N的最后一行或者最后一列.
    hist3不统计edges范围外的部分.
    N是一个二维矩阵, 统计的落到每个单元格内的点的个数.

    tic
    count_cells_hist = hist3(xy, 'Edges', {int_x int_y});
    % 注意hist3得到的矩阵是K1+1*K2+1的, 所以把最后一行和一列去掉.
    % 最后一行或一列表示的是 X(k,1)= edges{1}(end)或者X(k,2) = edges{2}(end)的点数
    count_cells_hist(end, :) = []; count_cells_hist(:, end) = [];
    toc
    all(count_cells(:) == count_cells_hist(:))
    % Elapsed time is 0.017995 seconds.

    显然比用两重for循环快多了.

    3. 使用矩阵二元操作bsxfun

    C = bsxfun(fun,A,B)AB做逐个元素的二元操作, 操作由函数 fun指定.
    返回的C中, 1表示满足条件, 0 表示不满足条件. 可用的fun有:

    funoperation
    @plusPlus
    @minusMinus
    @timesArraymultiply
    @rdivideRightarray divide
    @ldivideLeftarray divide
    @powerArray power
    @maxBinary maximum
    @minBinary minimum
    @remRemainder after division
    @modModulus after division
    @atan2Four-quadrant inverse tangent; result in radians
    @atan2dFour-quadrant inverse tangent; result in degrees
    @hypotSquare root of sum of squares
    @eqEqual
    @neNot equal
    @ltLess than
    @leLess than or equal to
    @gtGreater than
    @geGreater than or equal to
    @andElement-wiselogical AND
    @orElement-wiselogical OR
    @xorLogicalexclusive OR

    使用bsxfun的matlab代码:

    %% bsxfun
    tic
    xcomps = single(bsxfun(@ge,xy(:,1),int_x));% 10000*143矩阵
    ycomps = single(bsxfun(@ge,xy(:,2),int_y));% 10000*143矩阵
    % 相当于求CDF
    count_again = xcomps.' * ycomps; %' 143x143 = 143x1e5 * 1e5x143
    % 差分后是142*142
    count_again_fix = diff(diff(count_again')');
    toc
    % Elapsed time is 0.178316 seconds.
    all(count_cells_hist(:) == count_again_fix(:))

    bsxfun稍逊于hist3, 可以针对没有statistics toolbox的情况下使用.

    4. 使用accumarray

    A= accumarray(subs,val)使用subs的元素值作为索引. subs和val是一一对应的. 将subs中相同值对应的val值累加. 也就是说, subs中元素的位置决定了val哪些元素相加, subs中元素的值决定了累加值在输出中的位置. 看matlab help中示例:

    Example 1
    Create a 5-by-1 vector and sum values for repeated 1-D subscripts:
    val = 101:105;
    subs = [1; 2; 4; 2; 4];
    A = accumarray(subs, val)

    A =
    101 % A(1) = val(1) = 101
    206 % A(2) = val(2)+val(4) = 102+104 = 206
    0 % A(3) = 0
    208 % A(4) = val(3)+val(5) = 103+105 = 208

    subs中元素值必须是正整数值. 所以在表示分组时, 可以把[0,1]区间变为[1,K1]区间. matlab代码:

    %%%%% 第五种方法Using accumarray
    % Another approach is to use accumarray to make the joint histogram after we bin the data.
    % Starting with int_x, int_y, K1, xy, etc.:
    tic
    % take (0,1) data onto [1 K1], following A.Dondas approach for easy comparison
    ii = floor(xy(:,1)*(K1-eps))+1; 
    ii(ii<1) = 1; ii(ii>K1) = K1;
    jj = floor(xy(:,2)*(K1-eps))+1; 
    jj(jj<1) = 1; jj(jj>K1) = K1;
    
    % create the histogram and normalize
    H = accumarray([ii jj],ones(1,size(ii,1)));
    PDF = H / size(xy,1); % for probabilities summing to 1
    toc
    % Elapsed time is 0.006356 seconds.
    all(count_cells_hist(:) == count_again_fix(:))

    ms级别! 真是快!

    5. 使用mex编译

    mex混合编程参考: 在Matlab中使用mex函数进行C/C++混合编程

    #include "mex.h"
    // http://stackoverflow.com/questions/19745917/calculating-a-2d-joint-probability-distribution
    void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
    {
        unsigned long int hh, ctrl;       /*  counters                       */
        unsigned long int N, m, n;        /*  size of matrices               */
        unsigned long int *xy;            /*  data                           */
        unsigned long int *count_cells;   /*  joint frequencies              */
        /*  matrices needed */
        mxArray *count_cellsArray;
    
    /*  Now we need to get the data */
        if (nrhs == 3) {
            xy = (unsigned long int*) mxGetData(prhs[0]);
            N = (unsigned long int) mxGetM(prhs[0]);//取矩阵的行数
            m = (unsigned long int) mxGetScalar(prhs[1]);
            n = (unsigned long int) mxGetScalar(prhs[2]);
        }
    
    /*  Then build the matrices for the output */
        count_cellsArray = mxCreateNumericMatrix(m + 1, n + 1, mxUINT32_CLASS, mxREAL);
        count_cells = mxGetData(count_cellsArray);
        plhs[0] = count_cellsArray;
    
        hh = 0; /* counter for elements of xy */
        /* for all points from 1 to N */
        for(hh=0; hh<N; hh++) {
            ctrl = (m + 1) * xy[N + hh] + xy[hh];
            count_cells[ctrl] = count_cells[ctrl] + 1;
        }
    }

    将代码保存为: joint_dist_points_2D.c. 在matlab cmd中运行:

    mex joint_dist_points_2D.c

    生成joint_dist_points_2D.mexw32文件.
    matlab调用代码:

    % Use mex function
    tic
    xy2 = uint32(floor(xy ./ repmat([1 / K1, 1 / K2], N, 1)));
    count_cells = joint_dist_points_2D(xy2, uint32(K1), uint32(K2));
    toc
    % Elapsed time is 0.011696 seconds.

    也是非常快的.

    展开全文
  • 一维和二维离散型随机变量函数的分布一维离散型随机变量函数的分布二维离散型随机变量函数的分布 一维离散型随机变量函数的分布 二维离散型随机变量函数的分布

    一维离散型随机变量函数的分布

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    二维离散型随机变量函数的分布

    展开全文
  • 07二维离散型随机变量.pptx
  • 概率论对于学习 NLP 方向的人,重要性不言而喻。于是我打算从概率论基础篇开始复习,也顺便巩固巩固基础。 这是基础篇的第四篇知识点总结 知识点:二维离散型随机变量 ...
  • 文章目录一、二维离散型随机变量函数的分布二、二维连续型随机变量函数的分布分布密度 一、二维离散型随机变量函数的分布 二、二维连续型随机变量函数的分布分布密度 首先,我们有两个随机变量 X, Y。它们的概率...
  • 在本系列前4章节,我们快速的过了一遍概率论对于一维随机变量的定义与分类。 从最原始直观的经典概率类型出发,...文章目录关于二维概率事件关于离散型二维随机变量分布律(Probability Function / Distribution Law).
  • 概率论知识回顾(八) 重点:二维离散随机变量 什么是n维随机变量二维离散随机变量又是什么? 二维离散随机变量的联合分布律是什么?有什么性质? 什么是边缘...
  • 离散型随机变量分布函数的绘制

    千次阅读 2020-04-20 16:36:33
    但是对于离散型随机变量而言,没有已知的分布函数,只能使用经验分布函数或者说是累积分布函数进行近似。下文以离散分布中比较经典的分布、泊松分布以及几何分布为例绘制它们的经验分布函数。 分布 分布...
  • 文章目录二元随机变量,离散型随机变量分布律二元随机变量二元离散型随机变量(一)离散型随机变量的联合概率分布律联合分布律的性质 二元随机变量,离散型随机变量分布律 二元随机变量 定义: 设 EEE 是一个随机...
  • 需要注意的是:连续型随机变量的模型中的函数值不是在这点的概率,在这点的概率为0,因为随机事件有无数个,平均到这个事件的概率最准确的说法就是0,这点的函数值是概率的密度,就像物质一样,在某个地方的密度越大...
  • 离散型随机变量概率密度
  • 1. 二维离散型随机变量的条件分布 2. 二维连续型随机变量的条件分布
  • 很多的实际应用里面,往往 X 的分布是已知的,实际问题对应的变量是 X 的函数,那么,我们应该如何求 Y 的分布呢?这篇 Blog 将会带给你答案!我们开始吧!
  • 1. 随机变量的概念 顾名思义,随机变量就是“其值随机会而定”的变量。随机变量的反面是“确定性变量”,即其值遵循某种...根据随机变量其可能取的值的全体的性质,可以把随机变量分为2大类,一类是离散型随机变...
  • 一、离散型随机变量的条件分布 同理固定一个X为一个常数则可得Y的条件分布律 **注:**离散型的求在什么条件下X或Y的条件分布律,知道他们的联合分布律很重要. 1) 观察这个公式。 注:必须知道P{X=1}的概率,...
  • 概率论-二维随机变量及其分布

    千次阅读 2020-11-16 11:26:08
    左图为定义域,右图为概率值: 性质 0≤F(x,y)≤10 \leq F(x,y) \leq 10≤F(x,y)≤1. F(x,y)F(x,y)F(x,y)单调递增。 F(x,−∞)=F(−∞,y)=F(−∞,−∞)=0F(x,-\infty) = F(-\infty,y) = F(-\infty,-\infty ) = 0F
  • 设连续型随机变量X,YX,YX,Y的联合概率密度为f(x,y)f\left(x,y\right)f(x,y),设Z=ϕ(X,Y)Z=\phi\left(X,Y\right)Z=ϕ(X,Y)为随机变量X,YX,YX,Y的函数且ZZZ可微,则ZZZ的分布函数 FZ(z)=∬Df(x,y)dσF_Z\left(z\right...
  • 随机变量及分布分布函数性质常见随机变量及其分布离散型分布律常见离散型随机变量及分布0-1分布项分布泊松分布连续型性质随机变量函数的概率分布 分布函数 随机变量:通俗说,随机变量就是一次随机试验产生的...
  • 概率论基础(6)连续型二维随机变量

    千次阅读 多人点赞 2019-06-19 23:16:00
    概率论对于学习 NLP 方向的人,重要性不言而喻。于是我打算从概率论基础篇开始复习,也顺便巩固巩固基础。 这是基础篇的第六篇知识点总结 知识点 ... - Z = X + Y 分布 Z = XY 分布 Z = max{X, Y} 分布
  • 概率论基础(3)一维随机变量离散型和连续型)

    千次阅读 多人点赞 2019-06-12 18:08:21
    概率论对于学习 NLP 方向的人,重要性不言而喻。于是我打算从概率论基础篇开始复习,也顺便巩固巩固基础。...知识点:离散型随机变量分布律、分布函数和函数的分布、连续型随机变量的分布律、分布函数和函数的分布
  • 文章目录二元离散型随机变量边际分布律与条件分布律边际分布条件分布 二元离散型随机变量边际分布律与条件分布律 边际分布 对于离散型随机变量 (X,Y)(X,Y)(X,Y),分布律为 P(X=xi,Y=yj)=pij,i,j=1,2,⋯P(X=x_i,Y=...
  • 在上一章节聊完离散型二维随机变量,这一章节我们来到连续型随机变量。由于连续型随机变量的计算过程经常涉及积分运算,而连续型二维随机变量必然涉及到二重积分的运算。所以对于定积分不是很了解的朋友,建议先回去...
  • 二维随机变量的联合分布函数:二维随机变量的联合分布函数二维离散型随机变量概率分布:二维随机变量的概率分布二维离散型随机变量的边缘分布:二维离散型随机变量的边缘分布二维离散型随机变量的条件分布:二维...
  • () 一维随机变量及其分布

    千次阅读 2020-03-23 22:54:46
    1.随机变量及其分布 随机变量:Ω为随机试验E的样本空间,若∀ω∈Ω,∃唯一确定的实数X(ω)与ω对应,称X = X(ω)为随机变量 随机变量X的范围本质上就是随机事件 分布函数:X为随机变量,P{X <= x} = F(x), -∞<...
  • 首先根据二维随机变量均匀分布可以直接得到联合概率密度函数,然后再根据公式可以得到X和Y的边缘密度函数,公式一会用图贴出来,但是此时问题来了,为什么X的密度函数是对dy求积分还有积分的上下限怎么确定?...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,751
精华内容 3,500
热门标签
关键字:

二维离散型随机变量概率分布