Como o método de transformação inversa funciona?

21

Como o método de inversão funciona?
Digamos que eu tenha uma amostra aleatória com densidade acima de e, por conseguinte, com CDF em . Então, pelo método de inversão, recebo a distribuição de como . f ( x ; θ ) = 1X1,X2,...,Xn 0<x<1FX(x)=x1/θ(0,1)XF - 1 X(u)=uθf(x;θ)=1θx(1θ)θ
0<x<1FX(x)=x1/θ(0,1)XFX1(u)=uθ

Então uθ tem a distribuição de X ? É assim que o método de inversão funciona?

u<-runif(n)
x<-u^(theta)
Clarkson
fonte
3
Veja nossos tópicos sobre a transformação integral de probabilidade .
whuber
1
Sim, embora seja geralmente chamada de "transformação integral de probabilidade". Tente derivar a função de distribuição de para ver por que ela funciona. F1(U)
dsaxton

Respostas:

20

O método é muito simples, então vou descrevê-lo em palavras simples. Primeiro, pegue a função de distribuição cumulativa de alguma distribuição da qual você deseja amostrar. A função assume como entrada algum valor x e informa qual é a probabilidade de obter X x . tãoFXxXx

FX(x)=Pr(Xx)=p

inverso dessa função, levaria p como entrada e retornaria x . Observe que p 's são distribuídos uniformemente - isso poderia ser usado para a amostragem de qualquer F X se você sabe F - 1 X . O método é chamado de amostragem de transformação inversa . A ideia é muito simples: é fácil amostrar valores uniformemente a partir de U ( 0 , 1 ) ; portanto, se você quiser amostrar a partir de algum F X , basta pegar os valores u FX1pxpFXFX1U(0,1)FX e passe u através de F - 1 X para obter x 'suU(0,1)uFX1x

FX1(u)=x

ou em R (para distribuição normal)

U <- runif(1e6)
X <- qnorm(U)

Para visualizá-lo, observe o CDF abaixo, geralmente, pensamos em distribuições em termos de olhar para o eixo para probabilidades de valores de eixo x . Com esse método de amostragem, fazemos o oposto e começamos com "probabilidades" e as usamos para escolher os valores que estão relacionados a elas. Com distribuições discretas de tratar L como uma linha a partir de 0 para 1 e os valores com base em atribuir onde faz algum ponto L se encontrar nesta linha (por exemplo, 0 se 0 u < 0,5 ou 1 se 0,5 u 1 para a amostragem a partir de ByxU01u00u<0.510.5u1 ).Bernoulli(0.5)

enter image description here

Infelizmente, isso nem sempre é possível, pois nem todas as funções têm seu inverso; por exemplo, você não pode usar esse método com distribuições bivariadas. Também não precisa ser o método mais eficiente em todas as situações; em muitos casos, existem algoritmos melhores.

Você também pergunta qual é a distribuição de . Desde F - 1 X é o inverso de M X , em seguida, F X ( M - 1 X ( u ) ) = u e F - 1 X ( F X ( x ) ) = x , por isso, sim, os valores obtidos utilizando este método têm a mesma distribuição que XFX1(u)FX1FXFX(FX1(u))=uFX1(FX(x))=xX . Você pode verificar isso por uma simulação simples

U <- runif(1e6)
all.equal(pnorm(qnorm(U)), U)
Tim
fonte
Boa resposta. Este método funciona quando você tem distribuições como Exponencial, Cauchy, Geométrica, Pareto, Logística, Weibull de Valor Extremo , etc. Por exemplo, não é possível encontrar um formulário fechado para uma distribuição normal . Portanto, você não poderá usar esse método. Você pode tentar outros métodos, como o método de rejeição .
Abbas Salimi
2
Você pode usar o método de transformação inversa com a distribuição normal. Existem inúmeras implementações disponíveis para o CDF inverso normal . Por exemplo, você pode gravar CDF inverso normal usando a função de erro complementar . Um exemplo de implementação do erfc está aqui . Não codifique erfc você mesmo; use uma biblioteca. O fato de não existir uma fórmula de formulário fechado não implica que você não possa usar aproximações numéricas de alta qualidade.
Matthew Gunn
2

Sim, tem a distribuição deUθ .X

Dois pontos adicionais na intuição por trás do método de transformação inversa podem ser úteis

(1) Para entender o que F1 realmente significa, consulte um gráfico na resposta de Tim para Me ajudar a entender a função quantile (CDF inversa)

(2) [Por favor, simplesmente ignore o seguinte, se isso traz mais confusão ao invés de clareza]

Deixe ser qualquer variável aleatória (RV) com contínua e estritamente crescente CDF F . Então F ( X ) Unif ( 0 , 1 ) Nota na notação: X é um rv Portanto, a função de rv X , F ( X ) é um próprio rv. XF

F(X)Unif(0,1)

XXF(X)

Por exemplo, se você inverter a pergunta, para ter acesso a e desejar gerar um uniforme padrão, então X 1 / θUnif ( 0 , 1 ) . Vamos chamar esta variável aleatória U . Então U = X 1 / θ Voltando à sua pergunta, você tem a tarefa oposta: para gerar X fora de U . Então, de fato X = U θXX1/θUnif(0,1)U

U=X1/θ
XU
X=Uθ

PS. Nomes alternativos para o método são transformação integral de probabilidade, amostragem de transformação inversa, transformação quantil e, em algumas fontes, "o teorema fundamental da simulação".

den2042
fonte