PSTAT 115 Homework4 课业解析
PSTAT 115 Homework4 课业解析
题意:
蒙特卡洛采样之拒绝采样
解析:
给定一个概率分布p(z)=p~(z)/Zp,p~(z)已知,Zp为归一化常数,为未知数。对该分布进行拒绝采样,我们引入一个简单地参考分布,记作q(x),q(x)分布的采样是易于实现的,比如均匀分布。再引入一个常数k,满足kq(z)>p~(z)。每次采样中首先从q(z)采样一个数值z0,然后在区间[0,kq(z0)]进行均匀采样,得到u0。如果u0<p~(z0),则保留该采样值,否则丢弃该采样值。最后得到的数据就是一个对该分布的近似采样。为了提高接受效率,防止舍弃过多的采样值而导致采样效率低下,k值应该满足在kq(z)>p~(z)的基础上尽可能小。
涉及知识点:
拒绝采样
更多可+薇❤讨论:Rainbow890722
Homework 4
PSTAT 115, Fall 2019
Due on November 3, 2019 at 11:59 pm
Note: If you are working with a partner, please submit only one homework per group with both names
and whether you are taking the course for graduate credit or not. Submit your Rmarkdown (.Rmd) and the
compiled pdf on Gauchospace.
1. Rejection Sampling the Beta distribution. Assume we did not have access to the rbeta function for
sampling from a Beta, but we were able to evaluate the density, dbeta. This is a very common setting
in Bayesian statistics, since we can always evaluate the (proportional) posterior density p(θ | y) ∝ p(y |
θ)p(θ) but we don’t have immediate access to a method for sampling from this distribution.
(a) Let p(x) be a Beta(3, 9) density, q1(x) a Uniform(0, 1) density, and q2(x) a Normal(µ = 0.25, σ =
0.15) density.
(b) Use rejection sampling to sample from p(x) by proposing samples from q1(x). To do so, first find
M1 = max
x
p(x)/q1(x) using the optimize function and set lower=0, upper=1, and maximum =
TRUE (since we are maximizing not minimizing, the default). M will be the value in the objective
argument returned by optimize (maximum tells us where the maximum occurs, but not what height
it achieves). Propose 10000 samples and keep only the accepted samples.
(c) Use rejection sampling to sample from p(x) by proposing samples from q2(x). To do this you
need to find M2 = max
x
p(x)/q2(x) as above. Propose 10000 samples and keep only the accepted
samples.
(d) Plot the p(x), M1q1(x) and M2q2(x) all on the same plot and verify visually that the scaled
proposal densities “envelope” the target, p(x). Set the xlimits of the plot from 0 to 1. Use different
color lines for the various densities so are clearly distinguishable.
(e) Which rejection sampler had the higher rejection rate? Why does this make sense given the plot
from the previous part? This means when proposing 10000 samples from each proposal, the Monte
Carlo error of our approximation will be higher when proposing from ____ (choose q1 or q2).
(f) Report the variance of Beta(3, 9) distribution by computing the variance of the beta samples. How
does this compare to the theoretical variance (refer to the probability cheatsheet).
2. Interval estimation with rejection sampling.
(a) Use rejection sampling to sample from the following density:
p(x) = 1
4
|sin(x)| × I{x ∈ [0, 2π]}
Use a proposal density which is uniform from 0 to 2π and generate at least 1000 true samples from
p(x). Compute and report the Monte Carlo estimate of the upper and lower bound for the 50%
quantile interval using the quantile function on your samples. Compare this to the 50% HPD
region calculated on the samples. What are the bounds on the HPD region? Report the length of
the quantile interval and the total length of the HPD region. What explains the difference? Hint:
to compute the HPD use the hdi function from the HDInterval package. As the first argument
pass in density(samples), where samples is the name of your vector of true samples from the
density. Set the allowSplit argument to true and use the credMass argument to set the total
probability mass in the HPD region to 50%.
(b) Plot p(x) using the curve function (base plotting) or stat_function (ggplot). Add lines corresponding to the intervals / probability regions computed in the previous part to your plot using
1
them segments function (base plotting) or geom_segements (ggplot). To ensure that the lines
don’t overlap visually, for the HPD region set the y-value of the segment to 0 and for the quantile
interval set the y-value to to 0.01. Make the segments for HPD region and the segment for quantile
interval different colors. Report the length of the quantile interval and the total length of the HPD
region, verifying that indeed the HPD region is smaller.
PSTAT 115 Homework4 课业解析的更多相关文章
- android中使用DisplayMetrics获取屏幕参数
--关于Density int android.graphics.Bitmap.getDensity(),返回bitmap-density(密度).默认的density就是当前display-dens ...
- 【算法】(查找你附近的人) GeoHash核心原理解析及代码实现
本文地址 原文地址 分享提纲: 0. 引子 1. 感性认识GeoHash 2. GeoHash算法的步骤 3. GeoHash Base32编码长度与精度 4. GeoHash算法 5. 使用注意点( ...
- CSharpGL(9)解析OBJ文件并用CSharpGL渲染
CSharpGL(9)解析OBJ文件并用CSharpGL渲染 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立的Demo ...
- Sharepoint学习笔记—习题系列--70-576习题解析 -(Q112-Q115)
Question 112 You are designing a public-facing SharePoint 2010 Web site for an elementary school th ...
- 【Jsoup网页解析】
下载链接:http://jsoup.org/download 一.普通的请求方式(不带有cookie) 使用举例: 第一步: Connection conn=Jsoup.connect(url); 第 ...
- Java集合---Array类源码解析
Java集合---Array类源码解析 ---转自:牛奶.不加糖 一.Arrays.sort()数组排序 Java Arrays中提供了对所有类型的排序.其中主要分为Prim ...
- 书籍推荐《以C语言解析电脑》
这本书要想买到,在大陆看起来比较难,理出个目录,看个大概: 另外在这个地方可以预览前20页:http://openebook.hyread.com.tw/ebookservice/hyviewer/o ...
- 深度解析SDN——利益、战略、技术、实践(实战派专家力作,业内众多专家推荐)
深度解析SDN——利益.战略.技术.实践(实战派专家力作,业内众多专家推荐) 张卫峰 编 ISBN 978-7-121-21821-7 2013年11月出版 定价:59.00元 232页 16开 ...
- 115个Java面试题和答案——终极列表(下)
第一篇讨论了面向对象编程和它的特点,关于Java和它的功能的常见问题,Java的集合类,垃圾收集器,本章主要讨论异常处理,Java小应用程序,Swing,JDBC,远程方法调用(RMI),Servle ...
随机推荐
- 使用 Jest 进行 Vue 单元测试
本文介绍:1.vue-cli3下jest环境的搭建2.vue组件基本的测试方法 环境配置 vue-cli3 的插件使安装流程变得格外简单,通过 vue ui 启动可视化管理系统,在插件栏,点击 ‘添加 ...
- Skeleton with Assimp 骨骼动画解析
Skeleton with Assimp 骨骼动画解析 骨骼动画是图形学中十分常见应用很广泛的一个技术,也是比较基础的内容,作为图形学的工程师需要将这一部分内容梳理清晰,主要关键在于几点:第一,分清楚 ...
- QT两个窗口相互切换
信号(signals)与槽(slots)是QT重要机制,例子使用了C++11 lambda表达式进行了信号与槽的连接. 实现两个窗口通过点击按钮完成互相切换,注意子窗口只能发送信号,不能处理,所有信号 ...
- Flask基础(14)-->自定义过滤器
Flask基础(13)-->自定义过滤器 什么是过滤器? 过滤器的本质就是函数.有时候我们不仅仅只是需要输出变量的值,我们还需要修改变量的显示,甚至格式化.运算等等,而在模板中是不能直接调用 P ...
- 02-head标签
head中的标签不会展示在浏览器上,他会将页面的一些额外信息告诉服务器.head标签中包含如下标签: <title>:指定整个网页的标题,在浏览器最上方显示 <meta>:提供 ...
- sklearn 标准化数据的方法
Sklearn 标准化数据 from __future__ import print_function from sklearn import preprocessing import numpy a ...
- 如何搭建基于Docker的gitlab服务器集成CI/CD实现DEVOPS(完整版)
From this lesson you will learn about 1,How to install and configure a docker based gitlab server 2, ...
- 为什么要学习go语言
终于等到你!Go语言--让你用写Python代码的开发效率编写C语言代码. 为什么互联网世界需要Go语言 世界上已经有太多太多的编程语言了,为什么又出来一个Go语言? 硬件限制:摩尔定律已然失效 摩尔 ...
- Bumblebee服务网关之统一请求验证
对于微服务网关来说,统一请求验证是一个比较重要和常用的功能,通过网关验证后台服务就无须关注请求验证:对于多语言平台的服务而言制定验证方式和变更验证配置都是一件比较繁琐和工作量大的事情.Bumblebe ...
- Android自动跳过app开屏广告
跳过开屏广告,体验流畅人生 开屏广告 是应用启动时显示的广告,一般右下角(或右下角)有倒计时跳过,不主动点击就会 等待3到5秒 后再进入App 自动跳过 是跳过应用的开屏广告的App 一图胜千文,来我 ...