zoukankan      html  css  js  c++  java
  • 截取符合指数分布的一部分样本的理论与实验


        近期在解决一个符合指数分布的样本处理的问题时,做了一个如果,然后须要做一个小实验确认基于如果而简单推导出的理论的正确性。

        首先是如果:给定一个总个数为 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;
    S= exprnd(Mu,1,cnt_elements);
    
    % ---- 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

  • 相关阅读:
    Codeforces 1322B
    面向对象案例
    0428面向对象2.0
    0427 面向对象初识
    0427数组相关思想
    0426数组操作
    Eclipse使用技巧
    数组汇总0426
    0424数组练习
    数组习题练习0424
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5183365.html
Copyright © 2011-2022 走看看