首页 > 代码库 > 截取符合指数分布的一部分样本的理论与实验
截取符合指数分布的一部分样本的理论与实验
最近在解决一个符合指数分布的样本处理的问题时,做了一个假设,然后需要做一个小实验确认基于假设而简单推导出的理论的正确性。
首先是假设:给定一个总个数为 N 的样本集,样本集中元素符合指数分布,即在样本集 S 里的每一个元素 X 的值都符合参数为 lambda 的指数分布 X~Exp(lambda). 那么,如果我另给定一个长度 n ,来对所有的样本元素截取,即挑出那些 X 小于或等于 n 的所有元素。
问题是:1)这样的元素有多少个,用N0表示? 2)这些所有被截取的元素的和是多少,用L表示?
A. 简单推导:
1) 第一个小问题,我的思路是这样的:首先求出 元素X不大于n的累积分布概率 F(n, lambda),然后所有不大于n的元素的个数即为总体样本个数在 F(n, lambda) 的体现。即
2)第二问的思路是:首先求出 所有小于等于 n 的元素的 期望 E(X<=n),然后 L 即为 期望 E(X<=n) 在总体样本上的体现。即
其中,f(X) 为 指数分布的概率密度函数。
B. 接下来, 用实验来验证。
1) 代码; 2)效果;3)结论。
1)
clear % ---- 1) generate S with Exprnd() S = []; cnt_elements = 1e6; Mu = 5; for i=1:cnt_elements S(i)= exprnd(Mu); end % ---- 2) counting n_threshold = 3; selected_elements_idx = []; selected_elements_idx = find(S <= n_threshold); % -- a. count of selected elements within threshold. CNT_selected = size(selected_elements_idx); % -- b. sum of the selected elements. sum_sel_ones = sum( S(selected_elements_idx) ); % ----- 3) analysis of N0: lam = 1.0/Mu; n = n_threshold; N = cnt_elements; N0 = N * (1-exp(-1*lam*n) ); % ----- 4) analysis of L. L = (N/lam)*(1 - (lam*n + 1)/exp(lam*n)); % ----- 5) Compare CNT_selected with N0. CNT_selected N0 % ----- 6) Compare sum_sel_ones with L. sum_sel_ones L
2)输出:
CNT_selected =
1 451172
N0 =
4.5119e+005
sum_sel_ones =
6.0934e+005
L =
6.0951e+005
3)从输出看出,实验结果大致符合理论推导。
Davy_H
2014-7-15
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。