计算二维离散随机变量的联合概率分布 |
您所在的位置:网站首页 › 离散型随机变量算法 › 计算二维离散随机变量的联合概率分布 |
一. 定义
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
和Y相互独立: 参考: 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) |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |