tdr.new(Runuran)
tdr.new()所属R语言包:Runuran
UNU.RAN generator based on Transformed Density Rejection (TDR)
UNU.RAN发电机的基础上转化密度抑制率(TDR)
译者:生物统计家园网 机器人LoveR
描述----------Description----------
UNU.RAN random variate generator for continuous distributions with given probability density function (PDF). It is based on the Transformed Density Rejection method ("TDR").
UNU.RAN给定的概率密度函数(PDF)的连续分布的随机变量发生器。它是基于转化的密度抑制方法(TDR)。
[Universal] – Rejection Method.
[通用] - 抑制方法。
用法----------Usage----------
tdr.new(pdf, dpdf=NULL, lb, ub, islog=FALSE, ...)
tdrd.new(distr)
参数----------Arguments----------
参数:pdf
probability density function. (R function)
概率密度函数。 (R功能)
参数:dpdf
derivative of pdf. (R function)
衍生工具的pdf。 (R功能)
参数:lb
lower bound of domain; use -Inf if unbounded from left. (numeric)
域的下界使用-Inf如果左无界。 (数字)
参数:ub
upper bound of domain; use Inf if unbounded from right. (numeric)
上界域;使用Inf,如果无界右。 (数字)
参数:islog
whether pdf is given as log-density (the dpdf must then be the derivative of the log-density). (boolean)
是否pdf给出作为记录密度(dpdf的然后必须的记录密度的衍生物)。 (布尔)
参数:...
(optional) arguments for pdf.
(可选)参数pdf。
参数:distr
distribution object. (S4 object of class "unuran.cont")
发行对象。 (S4类的对象"unuran.cont")
Details
详细信息----------Details----------
This function creates an unuran object based on "TDR" (Transformed Density Rejection). It can be used to draw samples of a continuous random variate with given probability density function using ur.
这个函数创建一个unuran对象,基于TDR(转化密度抑制)。它可以用来抽取样本的连续随机变量的概率密度函数使用ur。
The density pdf must be positive but need not be normalized (i.e., it can be any multiple of a density function). The derivative dpdf of the (log-) density is optional. If omitted, numerical differentiation is used. Notice, however, that this might cause some round-off errors such that the algorithm fails. This is in particular the case when the density function is provided instead of the log-density.
密度pdf必须是正的,但不必进行归一(即,它可以是任何的密度函数的倍数)。衍生dpdf(log)密度是可选的。如果省略该参数,数值微分。但是请注意,这可能导致一些舍入误差,该算法失败。这是一个特别的密度函数时的情况下的记录密度,而不是提供。
The given pdf must be T_(-0.5)-concave (with implies unimodal densities with tails not higher than (1/x^2); this includes all log-concave distributions).
给定的pdf必须T_(-0.5)-凹(意味着单峰密度的尾巴不高于(1/x^2),这包括所有的log凹分布)。
It is recommended to use the log-density (instead of the density function) as this is numerically more stable.
这是推荐使用的记录密度(代替的密度函数),因为这是数值更稳定。
Alternatively, one can use function tdrd.new where the object distr of class "unuran.cont" must contain all required information about the distribution.
另外,我们可以使用函数tdrd.new对象distr类"unuran.cont"的分布必须包含所有需要的信息。
The setup time of this method depends on the given PDF, whereas its marginal generation times are almost independent of the target distribution.
这种方法的建立时间取决于在给定的PDF,而其边际代的时间几乎是独立的目标分配。
There exists a variant of "TDR" which is numerically more stable (albeit a bit slower and less flexible) which is avaible via the ars.new function.
存在“TDR”的一个变种,它在数值上更稳定(虽然有点慢,不够灵活),它是通过ars.new功能后才有效。
值----------Value----------
An object of class "unuran".
对象的类"unuran"。
(作者)----------Author(s)----------
Josef Leydold and Wolfgang H\"ormann
<a href="mailto:unuran@statmath.wu.ac.at">unuran@statmath.wu.ac.at</a>.
参考文献----------References----------
Automatic Nonuniform Random Variate Generation. Springer-Verlag, Berlin Heidelberg. See Chapter 4 (Tranformed Density Rejection).
参见----------See Also----------
ur, ars.new, unuran.cont, unuran.new, unuran.
ur,ars.new,unuran.cont,unuran.new,unuran。
实例----------Examples----------
## Create a sample of size 100 for a Gaussian distribution[#创建一个样本大小为100的高斯分布]
pdf <- function (x) { exp(-0.5*x^2) }
gen <- tdr.new(pdf=pdf, lb=-Inf, ub=Inf)
x <- ur(gen,100)
## Create a sample of size 100 for a [#创建一个大小为100的样品]
## Gaussian distribution (use logPDF)[#高斯分布(使用logPDF)]
logpdf <- function (x) { -0.5*x^2 }
gen <- tdr.new(pdf=logpdf, islog=TRUE, lb=-Inf, ub=Inf)
x <- ur(gen,100)
## Same example but additionally provide derivative of log-density[同样的例子,但另外提供衍生的记录密度]
## to prevent possible round-off errors[#,以防止可能出现的舍入误差]
logpdf <- function (x) { -0.5*x^2 }
dlogpdf <- function (x) { -x }
gen <- tdr.new(pdf=logpdf, dpdf=dlogpdf, islog=TRUE, lb=-Inf, ub=Inf)
x <- ur(gen,100)
## Draw sample from Gaussian distribution with mean 1 and[#绘制高斯分布,样本均值为1,]
## standard deviation 2. Use 'dnorm'.[#标准差为2。使用“dnorm”。]
gen <- tdr.new(pdf=dnorm, lb=-Inf, ub=Inf, mean=1, sd=2)
x <- ur(gen,100)
## Draw a sample from a truncated Gaussian distribution[#截断高斯分布抽取样本]
## on domain [5,Inf)[#在域[5,INF)]
logpdf <- function (x) { -0.5*x^2 }
gen <- tdr.new(pdf=logpdf, lb=5, ub=Inf, islog=TRUE)
x <- ur(gen,100)
## Alternative approach[#另一种方法]
distr <- udnorm()
gen <- tdrd.new(distr)
x <- ur(gen,100)
转载请注明:出自 生物统计家园网(http://www.biostatistic.net)。
注:
注1:为了方便大家学习,本文档为生物统计家园网机器人LoveR翻译而成,仅供个人R语言学习参考使用,生物统计家园保留版权。
注2:由于是机器人自动翻译,难免有不准确之处,使用时仔细对照中、英文内容进行反复理解,可以帮助R语言的学习。
注3:如遇到不准确之处,请在本贴的后面进行回帖,我们会逐渐进行修订。
|