反转方法如何工作?
说我有一个随机样本与密度在,因此cdf在。然后通过反演方法,我得到的分布为。 f (x ; θ )= 1 0<X<1˚FX(X)=X1/θ(0,1)X˚F - 1 X(Û)=Üθ
那么是否具有的分布?这是反演方法的工作方式吗? X
u<-runif(n)
x<-u^(theta)
反转方法如何工作?
说我有一个随机样本与密度在,因此cdf在。然后通过反演方法,我得到的分布为。 f (x ; θ )= 1 0<X<1˚FX(X)=X1/θ(0,1)X˚F - 1 X(Û)=Üθ
那么是否具有的分布?这是反演方法的工作方式吗? X
u<-runif(n)
x<-u^(theta)
Answers:
该方法非常简单,因此我将用简单的词来描述它。首先,采用要从中采样的某些分布的累积分布函数 。该函数将一些值作为输入,并告诉您获得的概率是多少。所以
该函数的反函数将作为输入并返回。请注意,的均匀分布 -这可以用于从任何取样如果你知道。该方法称为逆变换采样。这个想法很简单:很容易从统一采样值,因此,如果要从某些采样,只需取值并将传递给获得的 p X p ˚F X ˚F - 1 X ü (0 ,1 )˚F X ù 〜ù (0 ,1 )Ü ˚F - 1 X X
或R(用于正态分布)
U <- runif(1e6)
X <- qnorm(U)
为了将其可视化,请看下面的CDF,通常,我们考虑从轴看轴值的概率的分布。使用这种采样方法,我们做相反的事情,从“概率”开始,然后使用它们来选择与它们相关的值。与离散分布你把如从线到和分配值基于其中做了一些点在这条线位于(例如如果或,如果用于从取样)。x U 0 1 u0 ≤ Ü < 0.5 1 0.5 ≤ ù ≤ 1个乙Ë ř Ñ Ò ù 升升我(0.5 )
不幸的是,这并非总是可能的,因为并非每个函数都有其逆函数,例如,您不能对双变量分布使用此方法。它也不一定在所有情况下都是最有效的方法,在许多情况下,存在更好的算法。
您还要询问的分布是什么。由于是的逆,则且,所以,使用这种方法与具有相同的分布。您可以通过简单的模拟检查F − 1 X F X F X(F − 1 X(u ))= u F − 1 X(F X(x ))= x X
U <- runif(1e6)
all.equal(pnorm(qnorm(U)), U)
是的,具有的分布。 X
关于逆变换方法背后的直觉的另外两个点可能会有用
(1)为了理解实际含义,请参考蒂姆答案中的图表以帮助我理解分位数(CDF逆函数)
(2)[如果带来更多的混乱而不是清晰,请忽略以下内容]
令为cdf连续且严格增加的任何随机变量(rv)。然后 上的符号说明:是因此,一个RV,RV的函数,是一个RV本身。 ˚F ˚F (X )〜UNIF (0 ,1 )X X ˚F (X )
例如,如果您要翻转问题,以便可以访问并想要生成标准的制服,则。我们称这个随机变量。因此, 现在回到你的问题,你有相反的任务:产生出。因此,实际上 X 1 / θ〜UNIF (0 ,1 )Ü Ü = X 1 / θ X Ù X = û θ
PS。该方法的替代名称是概率积分变换,逆变换采样,分位数变换,在某些情况下还包括“模拟的基本定理”。