数理统计与数据分析第三版习题 第3章 第36-40题

题目36

证明:利用拒绝方法生成的随机变量所必须需要的迭代次数是几何随机变量,并估计出几何频率函数的参数。证明:为了保证较少的迭代次数选择的 M ( x ) M(x) M(x)必须接近出 f ( x ) f(x) f(x).

解题思路

参考本题中提到的
假设每次迭代生成的数据值能够被接受的概率为 λ \lambda λ,则需要k次迭代生成一个值的概率是:k-1次被拒绝第k次被接受,这是典型的几何分布参数为 λ \lambda λ
P ( k ) = ( 1 − λ ) k − 1 λ P(k)=(1-\lambda)^{k-1}\lambda P(k)=(1λ)k1λ
几何分布的期望值为 1 λ \frac{1}{\lambda} λ1,即 λ \lambda λ越大k越小

估计参数:根据书中公式 P ( a c c e p t ) = 1 ∫ a b M ( x ) d x P(accept)=\frac{1}{\int_a^bM(x)dx} P(accept)=abM(x)dx1

要让 P ( a c c e p t ) P(accept) P(accept)最大则需要 M ( x ) M(x) M(x)越小,根据前提 M ( x ) > f ( x ) M(x)>f(x) M(x)>f(x)并且M(x)越小则M(x)越接近 f ( x ) f(x) f(x)

题目37

− 1 ≤ x ≤ 1 -1\leq x\leq 1 1x1 f ( x ) = 6 x 2 ( 1 − x ) 2 f(x)=6x^2(1-x)^2 f(x)=6x2(1x)2.
a.说明利用拒绝方法由该密度函数生成随机变量的一个算法,采集试验中有多大比例接受所采取的步骤?
b.编写一个计算机程序实现这个算法.

解题思路

a.首先绘制出本函数曲线
在这里插入图片描述
经计算在x=-1时函数达到最大值24
选择一个平均分布随机变量 m ( x ) = 1 1 − ( − 1 ) = 1 2 m(x)=\frac{1}{1-(-1)}=\frac{1}{2} m(x)=1(1)1=21
M ( x ) = q m ( x ) M(x)=qm(x) M(x)=qm(x).设置 q = 48 q=48 q=48.这样 M ( x ) M(x) M(x)为最贴近目标函数并且大于目标函数的平均分布

根据全概率公式 f Y ( y ) = ∫ − ∞ ∞ f Y ∣ X ( y ∣ x ) f ( x ) d x f_Y(y)=\int_{-\infty}^{\infty}f_{Y|X}(y|x)f(x)dx fY(y)=fYX(yx)f(x)dx,套用在本题时Y是离散的分别是接受、拒绝.X是连续的在[-1,1]有定义
P ( 接 受 ) = ∫ − 1 1 f ( x ) M ( x ) m ( x ) d x = ∫ − 1 1 f ( x ) q m ( x ) m ( x ) d x = 1 q ∫ − 1 1 f ( x ) d x 将 本 题 中 的 f ( x ) 与 q 代 入 = 1 48 ∗ 32 5 = 2 15 \begin{aligned} P(接受)&=\int_{-1}^{1}\frac{f(x)}{M(x)}m(x)dx\\ &=\int_{-1}^{1}\frac{f(x)}{qm(x)}m(x)dx\\ &=\frac{1}{q}\int_{-1}^{1}f(x)dx\\ 将本题中的f(x)与q代入\\ &=\frac1{48}*\frac{32}{5}\\ &=\frac2{15} \end{aligned} P()f(x)q=11M(x)f(x)m(x)dx=11qm(x)f(x)m(x)dx=q111f(x)dx=481532=152

b.编写一个计算机程序实现这个算法.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace RandomGen
{
    class Program
    {
        static int n = 100000; //生成随机变量的个数
        static int i_total = 0; //统计生成的总数

        static Random r = new Random();

        static void Main(string[] args)
        {

            int temp = 0;

            while (temp < n)
            {

               Console.WriteLine(GenerateSRD());

                temp++;
            }

            Console.WriteLine("共生成{0}次,成功{1}次", i_total, n);

            Console.Read();
        }


        /// <summary>
        /// 生成一个随机变量
        /// </summary>
        static double GenerateSRD()
        {

        L1: double u1 = r.Next(-10000, 10000) / 10000.0000;
            double u2 = r.NextDouble();

            i_total++;

            if (u2  < f(u1)/M(u1))
            {
                return u1;
            }
          goto L1; //重新执行


        }

        static double M(double x)
        {
            return 24;
        }

        static double f(double x)
        {
           double rt = 6 * Math.Pow(x, 2) * Math.Pow(1 - x, 2);
            return rt;
        }
    }

经过多次测试,程序接受次数与总生成次数之比为1:7.5即 2 15 \frac2{15} 152

题目38

− 1 ≤ x ≤ 1 -1\leq x\leq 1 1x1 − 1 ≤ α ≤ 1 -1\leq \alpha \leq 1 1α1 f ( x ) = 1 − α x 2 f(x)=\frac{1-\alpha x}{2} f(x)=21αx.
a.说明利用拒绝方法由该密度函数生成随机变量的一个算法,
b.编写一个计算机程序实现这个算法.

解题思路

a.说明利用拒绝方法由该密度函数生成随机变量的一个算法,
1. − 1 ≤ x ≤ 1 -1\leq x\leq 1 1x1 − 1 ≤ α ≤ 1 -1\leq \alpha \leq 1 1α1 区间内求 f ( x ) f(x) f(x)的最大值

α &gt; 0 , f ( x ) \alpha&gt;0,f(x) α>0,f(x)最大值是 1 + α 2 \frac{1+\alpha}2 21+α
α &lt; 0 , f ( x ) \alpha&lt;0,f(x) α<0,f(x)最大值是 1 − α 2 \frac{1-\alpha}2 21α

找到一个均匀分布函数 m ( x ) = 1 2 , M ( x ) = 1 + ∣ α ∣ 2 m(x)=\frac12,M(x)=\frac{1+|\alpha|}2 m(x)=21,M(x)=21+α

再按标准的拒绝方法进行随机变量的生成。

b.编写一个计算机程序实现这个算法.
略,这个代码比上一题代码多一个参数即可

题目39

证明:如下生成离散型随机变量的方法是可行的(D.R.Fredkin).具体地,假设 X X X以概率为 p 0 , p 1 , p 2 , . . . 分 别 取 值 0 , 1 , 2 , . . . p_0,p_1,p_2,...分别取值0,1,2,... p0,p1,p2,...012... U U U是均匀随机变量,如果 U &lt; p 0 U&lt;p_0 U<p0,返回 X = 0 X=0 X=0,,否则,用 U − p 0 U-p_0 Up0代替 U U U; 如果新生成的 U U U小于 p 1 p_1 p1,返回 X = 1 X=1 X=1,否则,从 U U U中减去 p 1 p_1 p1;然后新生成的 U U U p 2 p_2 p2比较,等等。

解题思路

这是逆变化法,

X X X的累计分布函数是 F X ( x ) F_X(x) FX(x),则 U = F X ( x ) U=F_X(x) U=FX(x)服务区间(0,1)上的均匀分布。(参见本书中的命题2.3.3)
根据本书中的命题2.3.4 令 U U U是[0,1]上的均匀分布, X = F − 1 ( U ) , X=F^{-1}(U), X=F1(U),那么 X X X的cdf是F
P ( X ≤ x ) = P ( F − 1 ( U ) ≤ x ) = P ( U ≤ F ( x ) ) = F ( x ) P(X\leq x)=P(F^{-1}(U)\leq x)=P(U\leq F(x))=F(x) P(Xx)=P(F1(U)x)=P(UF(x))=F(x)

所以根据上述证明,本题方法生成的随机变量的累计分布函数就是 F ( X ) F(X) F(X)

题目40

假定 X X X Y Y Y是离散的随机变量,具有函数概率质量函数 p X Y ( x , y ) p_{XY}(x,y) pXY(x,y)证明:如下步骤可以生成随机变量 X ∼ p X ∣ Y ( x ∣ y ) X\sim p_{X|Y}(x|y) XpXY(xy)
a.生成 X ∼ p X ( x ) X\sim p_X(x) XpX(x).
b.以概率 p ( y ∣ X ) p(y|X) p(yX)授受 X X X.
c.如果接受 X X X,迭代终止,返回 X X X,否则,重新回到步骤a.

解题思路

根据题意,需要求P(X=x|接受)即是生成随机变量的质量函数
P ( X = x ∣ 接 受 ) = P ( X = x 且 接 受 ) P ( 接 受 ) = P ( 授 受 ∣ X = x ) P ( X = x ) P ( 接 受 ) 利 用 全 概 率 公 式 求 得 P ( 接 受 ) = P Y ( y ) = ∑ x p Y ∣ X ( y ∣ x ) p X ( x ) = p ( y ∣ X ) p ( x ) p Y ( y ) = p X Y ( x , y ) p Y ( y ) = p X ∣ Y ( x ∣ y ) \begin{aligned} P(X=x|接受)&amp;=\frac{P(X=x且接受)}{P(接受)}\\ &amp;=\frac{P(授受|X=x)P(X=x)}{P(接受)}\\ 利用全概率公式求得\\ P(接受)=P_Y(y)=\sum_{x}p_{Y|X}(y|x)p_X(x) \\ &amp;=\frac{p(y|X)p(x)}{p_Y(y)}\\ &amp;=\frac{p_{XY}(x,y)}{p_Y(y)}\\ &amp;=p_{X|Y}(x|y) \end{aligned} P(X=x)P()=PY(y)=xpYX(yx)pX(x)=P()P(X=x)=P()P(X=x)P(X=x)=pY(y)p(yX)p(x)=pY(y)pXY(x,y)=pXY(xy)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值