0% encontró este documento útil (0 votos)
195 vistas11 páginas

Transformada Inversa

El método de la transformada inversa es el método más utilizado para generar números aleatorios en simulaciones. Este método involucra generar un número aleatorio entre 0 y 1 (ri), y luego usar la distribución de probabilidad acumulada F(x) para encontrar el valor correspondiente de x que cumpla con F(x)=ri. Se presentan dos ejemplos para ilustrar cómo aplicar este método usando diferentes distribuciones de probabilidad.

Cargado por

Noelia Machicao
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
195 vistas11 páginas

Transformada Inversa

El método de la transformada inversa es el método más utilizado para generar números aleatorios en simulaciones. Este método involucra generar un número aleatorio entre 0 y 1 (ri), y luego usar la distribución de probabilidad acumulada F(x) para encontrar el valor correspondiente de x que cumpla con F(x)=ri. Se presentan dos ejemplos para ilustrar cómo aplicar este método usando diferentes distribuciones de probabilidad.

Cargado por

Noelia Machicao
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Métodos de generación de números aleatorios

Método de la transformada inversa

1) Marco Teórico

El método de transformada inversa, es el método más utilizado en la obtención de variables


aleatorias para experimentos de simulación.

Este método se utiliza cuando se desea simular variables de tipo continuo. El método utiliza la
distribución acumulada F(x) de la distribución de probabilidad que se va a simular mediante
integración. Ya que el rango de F(x) se encuentra en el intervalo 0 a 1, puede generarse un número
aleatorio ri para determinar el valor de la variable aleatoria cuya distribución acumulada es igual,
precisamente, a ri. La dificultad de este método radica en que algunas veces es complicado
encontrar la transformada inversa.

METODOLOGÍA

 Conocer la distribución de probabilidad f(x) de la variable aleatoria (x)


 Integrar f(x)
 Evaluar la constante de integración
 Igualar f(x) a ri

Siendo ri= valor pseudoaleatorio entre 0 y 1

 Despejar xi

Ejemplo 1.-
3
0≤𝑥≤1
4
15 9 5
𝑓(𝑥) = − 𝑥 1≤ 𝑥≤
8 8 3
0 𝑒. 𝑜. 𝑐
{

Nota: Si 𝐹(𝑥) es función de probabilidad entonces debe cumplir con:

i) 𝐹(𝑥) ≥ 0
𝑥

∫ 𝐹(𝑥) 𝑑𝑥 = 0
−∞

ii) ∫ 𝐹(𝑥) 𝑑𝑥 = 1
𝑥 𝑥
3
∫ 𝐹(𝑥) 𝑑𝑥 + ∫ 𝑑𝑥 = 0
4
−∞ 0

3 3
𝑥| = 𝑥
4 4

𝑏
iii) P(a≤ x≤ b) = ∫𝑎 𝐹(𝑥) 𝑑𝑥
0 1 𝑥
3 15 9 9 2 15 9
∫ 𝐹(𝑥) 𝑑𝑥 + ∫ 𝑑𝑥 + ∫ − 𝑥 𝑑𝑥 = 𝑥 − 𝑥−
4 8 8 16 8 16
−∞ 0 1

iv)
5
0 1 3
3 15 9 3 1
∫ 𝐹(𝑥) 𝑑𝑥 + ∫ 𝑑𝑥 + ∫ − 𝑥 𝑑𝑥 = 0 + + = 1
4 8 8 4 4
−∞ 0 1

3
𝑥 0≤𝑥≤1
4

9 2 15 9 5
− 𝑥 + 𝑥− 1≤ 𝑥≤
𝑓(𝑥) = 16 8 16 3

0 𝑥≤0
5
1 𝑥≥
{ 3

3 4
𝑥 = 𝑅1 → 𝑥 = 𝑅1
4 3
Prueba del ejemplo 1 en R
> n=100
> lambda=2
> x<- c()
> Fx<- c()
> for(j in 1:n){
+ R=runif(1,min=0,max=1)
+ if(R>=0 && R<0.75){
+ Y=4/3*R
+ }else{
+ if(R>=0.75 && R<=1){
+ Y=1/3*(5-(4*sqrt(1-R)))
+}
+}
+ Fx[j]<-R
+ x[j]<-Y
+}
> Fx
[1] 0.22399285 0.73420437 0.38396422 0.92306162 0.40631944 0.83731030
[7] 0.52202451 0.66566900 0.61932323 0.08380087 0.10909339 0.31258911
[13] 0.82275058 0.49931171 0.87188749 0.29008473 0.90023499 0.70150524
[19] 0.17244812 0.43510347 0.76271403 0.99056672 0.72850155 0.01730019
[25] 0.34156322 0.44071113 0.36013448 0.66208248 0.31698007 0.72990547
[31] 0.23471697 0.97613250 0.15417552 0.74945352 0.65149924 0.40555711
[37] 0.39654699 0.01945761 0.33185208 0.23147731 0.32969170 0.20133965
[43] 0.78421044 0.33688616 0.25497972 0.35620550 0.53407447 0.50542758
[49] 0.52392089 0.87484516 0.15642962 0.44550169 0.04444295 0.94034841
[55] 0.40223619 0.31870851 0.48941626 0.07782948 0.14968662 0.38361559
[61] 0.38041538 0.17259200 0.10091600 0.17902898 0.44686691 0.70512808
[67] 0.67823583 0.71398215 0.67860089 0.63658434 0.72385283 0.98699714
[73] 0.70321369 0.34452486 0.28521542 0.54247612 0.59727122 0.31587597
[79] 0.47352825 0.01211604 0.41145221 0.93402361 0.01563249 0.22558491
[85] 0.66573900 0.31459694 0.35426412 0.06301552 0.66751991 0.59856188
[91] 0.92523439 0.47786926 0.35850852 0.62820398 0.08203566 0.96577753
[97] 0.21840150 0.77581238 0.69000047 0.61903870
>x
[1] 0.29865713 0.97893916 0.51195230 1.29682976 0.54175926 1.12886918
[7] 0.69603268 0.88755867 0.82576431 0.11173450 0.14545786 0.41678548
[13] 1.10532000 0.66574894 1.18942922 0.38677965 1.24552533 0.93534032
[19] 0.22993082 0.58013796 1.01717324 1.53716655 0.97133541 0.02306692
[25] 0.45541763 0.58761483 0.48017931 0.88277664 0.42264010 0.97320729
[31] 0.31295596 1.46067853 0.20556735 0.99927136 0.86866566 0.54074281
[37] 0.52872932 0.02594347 0.44246944 0.30863641 0.43958893 0.26845287
[43] 1.04729126 0.44918155 0.33997296 0.47494066 0.71209929 0.67390343
[49] 0.69856119 1.19497026 0.20857282 0.59400226 0.05925726 1.34101766
[55] 0.53631492 0.42494468 0.65255502 0.10377264 0.19958216 0.51148745
[61] 0.50722051 0.23012266 0.13455466 0.23870531 0.59582254 0.94017077
[67] 0.90431444 0.95197619 0.90480118 0.84877912 0.96513710 1.51462657
[73] 0.93761825 0.45936648 0.38028723 0.72330149 0.79636163 0.42116796
[79] 0.63137100 0.01615473 0.54860294 1.32418841 0.02084332 0.30077987
[85] 0.88765200 0.41946258 0.47235216 0.08402069 0.89002655 0.79808251
[91] 1.30208932 0.63715902 0.47801135 0.83760530 0.10938088 1.42000911
[97] 0.29120200 1.03535394 0.92000062 0.82538494
> plot(x,Fx,cex=1,type="p",pch=1,xlab="x",ylab="Fx",col="black",axes=FALSE)
> plot(x,Fx,cex=1,type="h",pch=1,xlab="x",ylab="Fx",col="black")
> par(new=TRUE)
> plot(x,Fx,cex=1,type="p",pch=1,xlab="x",ylab="Fx",col="black",axes=FALSE)
>
Ejemplo 2.-
1
4
1≤𝑥≤2
5
𝑓(𝑥) = −𝑥 + 4 0≤ 𝑥≤1
0 𝑒. 𝑜. 𝑐
{

Nota: Si 𝐹(𝑥) es función de probabilidad entonces debe cumplir con:

i) 𝐹(𝑥) ≥ 0
𝑥

∫ 𝐹(𝑥) 𝑑𝑥 = 0
−∞

ii) ∫ 𝐹(𝑥) 𝑑𝑥 = 1
𝑥 𝑥
5
∫ 𝐹(𝑥) 𝑑𝑥 + ∫ − 𝑥 𝑑𝑥 = 0
4
−∞ 1

5 𝑥2
𝑥- 0≤ 𝑥≤1
4 4

𝑏
iii) P(a≤ x≤ b) = ∫𝑎 𝐹(𝑥) 𝑑𝑥

0 𝑥 1
1 5 1 5
∫ 𝐹(𝑥) 𝑑𝑥 + ∫ 𝑑𝑥 + ∫ − 𝑥 𝑑𝑥 = − 𝑥 2 − 𝑥 0 ≤ 𝑥 ≤ 1
4 4 2 4
−∞ 1 0

iv)
0 2 1
1 5 1 3
∫ 𝐹(𝑥) 𝑑𝑥 + ∫ 𝑑𝑥 + ∫ −𝑥 + 𝑑𝑥 = 0 + + = 1
4 4 4 4
−∞ 1 0
5 𝑥2
𝑅1 = 𝑥−
4 2
5−√25−32𝑅1 3
𝑥= 0<R1<4
4

1 1
𝑅2 = − 𝑥
2 4
3
x=4𝑅2 – 2 4<R2<1

Prueba del ejemplo 2 en R


> #Ejemplo 2

> n=100

> lambda=2

> x<- c()

> Fx<- c()

> for(j in 1:n){

+ R=runif(1,min=0,max=1)

+ if(R>=0.75 && R<=1){


+ Y=4*R -2

+ }else{

+ if(R>=0 && R<0.75){

+ Y=1/4*(5-(sqrt(25-32*R)))

+}

+}

+ Fx[j]<-R

+ x[j]<-Y

+}

> Fx

[1] 0.17297256 0.47338760 0.55372738 0.83487123 0.09562603 0.42262853

[7] 0.83056203 0.76449197 0.61387344 0.16167224 0.39770237 0.66330302

[13] 0.10251942 0.39670085 0.85075922 0.04098867 0.41749322 0.15727800

[19] 0.96581793 0.68211799 0.76086050 0.69917564 0.83588256 0.05259179

[25] 0.12126105 0.09861790 0.17531985 0.31622201 0.05641082 0.60020092

[31] 0.96146059 0.73241019 0.21426345 0.96624987 0.57340631 0.64621516

[37] 0.68762581 0.11382013 0.88355052 0.21750272 0.74445883 0.43553459

[43] 0.59257359 0.55792673 0.44967489 0.85023831 0.91036622 0.38252285

[49] 0.65712974 0.36862924 0.81904357 0.99031223 0.34939407 0.78846092

[55] 0.44906452 0.99516029 0.13941297 0.64309493 0.84770702 0.34635486

[61] 0.16527116 0.12984949 0.10100083 0.89897989 0.99129388 0.55815931

[67] 0.27430234 0.46535463 0.51244199 0.82868672 0.09669340 0.43109113

[73] 0.26715292 0.14914821 0.25711016 0.17008709 0.25963645 0.53046032

[79] 0.50740666 0.87749247 0.78642007 0.23224448 0.86701226 0.71803801

[85] 0.02251862 0.20818835 0.97355620 0.50554374 0.37781645 0.72099303

[91] 0.55083936 0.38981045 0.43725757 0.68609435 0.43597509 0.17982420


[97] 0.86293487 0.11196761 0.04676917 0.40028384

>x

[1] 0.14702453 0.46531867 0.57542958 1.33948493 0.07899704 0.40309804

[7] 1.32224813 1.05796790 0.67142147 0.13682638 0.37416026 0.76431084

[13] 0.08489865 0.37301751 1.40303688 0.03323270 0.39705595 0.13288586

[19] 1.86327171 0.80473152 1.04344199 0.84484729 1.34353024 0.04280639

[25] 0.10109709 0.08155480 0.14915474 0.28560590 0.04597410 0.64825408

[31] 1.84584237 0.93746260 0.18511827 1.86499946 0.60526178 0.73031771

[37] 0.81727793 0.09463869 1.53420209 0.18816453 0.97873935 0.41847681

[43] 0.63570950 0.58168380 0.43565964 1.40095323 1.64146488 0.35699703

[49] 0.75176259 0.34157195 1.27617430 1.96124891 0.32063900 1.15384366

[55] 0.43491046 1.98064116 0.11700659 0.72434789 1.39082806 0.31737453

[61] 0.14006411 0.10859691 0.08359598 1.59591958 1.96517552 0.58203190

[67] 0.24307631 0.45514735 0.51677696 1.31474688 0.07990889 0.41315011

[73] 0.23600091 0.12563192 0.22614470 0.14441155 0.22861511 0.54177733

[79] 0.50994144 1.50996987 1.14568027 0.20213978 1.46804903 0.89443849

[85] 0.01814662 0.17942851 1.89422481 0.50742845 0.35174218 0.90284883

[91] 0.57116181 0.36519545 0.42055148 0.81375317 0.41900673 0.15325409

[97] 1.45173947 0.09303640 0.03799272 0.37711265

> plot(x,Fx,cex=1,type="p",pch=1,xlab="x",ylab="Fx",col="black")

> plot(x,Fx,cex=1,type="h",pch=1,xlab="x",ylab="Fx",col="black")

> par(new=TRUE)

> plot(x,Fx,cex=1,type="p",pch=1,xlab="x",ylab="Fx",col="black",axes=FALSE)

>

También podría gustarte