El método de la transformada inversa es una técnica utilizada para recuperar una función en su dominio original (como el tiempo o el espacio) a partir de su representación en un dominio transformado (como el de Laplace, Fourier o Z). Es ampliamente aplicado en la resolución de ecuaciones diferenciales, análisis de señales y sistemas dinámicos.
*ejemplo de generar variables aleatorias de una exponencial con parametro \(\beta = 3\)
a <- 317
c <- 15
m <- 571
X_n <- 41 # semilla
random.number<-numeric(100) # vector numérico de longitud 50
for (i in 1:100)
{X_n<-(a*X_n+c)%%m
random.number[i]<-X_n/m # números en el intervalo [0,1]
}
random.number
## [1] 0.78809107 0.85113835 0.83712785 0.39579685 0.49387040 0.58318739
## [7] 0.89667250 0.27145359 0.07705779 0.45359019 0.81436077 0.17863398
## [13] 0.65323993 0.10332750 0.78108581 0.63047285 0.88616462 0.94045534
## [19] 0.15061296 0.77057793 0.29947461 0.95971979 0.25744308 0.63572680
## [25] 0.55166375 0.90367776 0.49211909 0.02802102 0.90893170 0.15761821
## [31] 0.99124343 0.25043783 0.41506130 0.60070053 0.44833625 0.14886165
## [37] 0.21541156 0.31173380 0.84588441 0.17162872 0.43257443 0.15236427
## [43] 0.32574431 0.28721541 0.07355517 0.34325744 0.83887916 0.95096322
## [49] 0.48161121 0.69702277 0.98248687 0.47460595 0.47635727 0.03152364
## [55] 0.01926445 0.13309982 0.21891419 0.42206655 0.82136602 0.39929947
## [61] 0.60420315 0.55866900 0.12434326 0.44308231 0.48336252 0.25218914
## [67] 0.97022767 0.58844133 0.56217163 0.23467601 0.41856392 0.71103327
## [73] 0.42381786 0.37653240 0.38704028 0.71803853 0.64448336 0.32749562
## [79] 0.84238179 0.06129597 0.45709282 0.92469352 0.15411559 0.88091068
## [85] 0.27495622 0.18739054 0.42907180 0.04203152 0.35026270 0.05954466
## [91] 0.90192644 0.93695271 0.04028021 0.79509632 0.07180385 0.78809107
## [97] 0.85113835 0.83712785 0.39579685 0.49387040
# generando una variable exponencial con beta = 3
x <- -3*log(1-random.number)
round(x,1) # redondeando a una cifra decimal
## [1] 4.7 5.7 5.4 1.5 2.0 2.6 6.8 1.0 0.2 1.8 5.1 0.6 3.2 0.3 4.6
## [16] 3.0 6.5 8.5 0.5 4.4 1.1 9.6 0.9 3.0 2.4 7.0 2.0 0.1 7.2 0.5
## [31] 14.2 0.9 1.6 2.8 1.8 0.5 0.7 1.1 5.6 0.6 1.7 0.5 1.2 1.0 0.2
## [46] 1.3 5.5 9.0 2.0 3.6 12.1 1.9 1.9 0.1 0.1 0.4 0.7 1.6 5.2 1.5
## [61] 2.8 2.5 0.4 1.8 2.0 0.9 10.5 2.7 2.5 0.8 1.6 3.7 1.7 1.4 1.5
## [76] 3.8 3.1 1.2 5.5 0.2 1.8 7.8 0.5 6.4 1.0 0.6 1.7 0.1 1.3 0.2
## [91] 7.0 8.3 0.1 4.8 0.2 4.7 5.7 5.4 1.5 2.0
data.frame(1:length(random.number),random.number,round(x,1))
## X1.length.random.number. random.number round.x..1.
## 1 1 0.78809107 4.7
## 2 2 0.85113835 5.7
## 3 3 0.83712785 5.4
## 4 4 0.39579685 1.5
## 5 5 0.49387040 2.0
## 6 6 0.58318739 2.6
## 7 7 0.89667250 6.8
## 8 8 0.27145359 1.0
## 9 9 0.07705779 0.2
## 10 10 0.45359019 1.8
## 11 11 0.81436077 5.1
## 12 12 0.17863398 0.6
## 13 13 0.65323993 3.2
## 14 14 0.10332750 0.3
## 15 15 0.78108581 4.6
## 16 16 0.63047285 3.0
## 17 17 0.88616462 6.5
## 18 18 0.94045534 8.5
## 19 19 0.15061296 0.5
## 20 20 0.77057793 4.4
## 21 21 0.29947461 1.1
## 22 22 0.95971979 9.6
## 23 23 0.25744308 0.9
## 24 24 0.63572680 3.0
## 25 25 0.55166375 2.4
## 26 26 0.90367776 7.0
## 27 27 0.49211909 2.0
## 28 28 0.02802102 0.1
## 29 29 0.90893170 7.2
## 30 30 0.15761821 0.5
## 31 31 0.99124343 14.2
## 32 32 0.25043783 0.9
## 33 33 0.41506130 1.6
## 34 34 0.60070053 2.8
## 35 35 0.44833625 1.8
## 36 36 0.14886165 0.5
## 37 37 0.21541156 0.7
## 38 38 0.31173380 1.1
## 39 39 0.84588441 5.6
## 40 40 0.17162872 0.6
## 41 41 0.43257443 1.7
## 42 42 0.15236427 0.5
## 43 43 0.32574431 1.2
## 44 44 0.28721541 1.0
## 45 45 0.07355517 0.2
## 46 46 0.34325744 1.3
## 47 47 0.83887916 5.5
## 48 48 0.95096322 9.0
## 49 49 0.48161121 2.0
## 50 50 0.69702277 3.6
## 51 51 0.98248687 12.1
## 52 52 0.47460595 1.9
## 53 53 0.47635727 1.9
## 54 54 0.03152364 0.1
## 55 55 0.01926445 0.1
## 56 56 0.13309982 0.4
## 57 57 0.21891419 0.7
## 58 58 0.42206655 1.6
## 59 59 0.82136602 5.2
## 60 60 0.39929947 1.5
## 61 61 0.60420315 2.8
## 62 62 0.55866900 2.5
## 63 63 0.12434326 0.4
## 64 64 0.44308231 1.8
## 65 65 0.48336252 2.0
## 66 66 0.25218914 0.9
## 67 67 0.97022767 10.5
## 68 68 0.58844133 2.7
## 69 69 0.56217163 2.5
## 70 70 0.23467601 0.8
## 71 71 0.41856392 1.6
## 72 72 0.71103327 3.7
## 73 73 0.42381786 1.7
## 74 74 0.37653240 1.4
## 75 75 0.38704028 1.5
## 76 76 0.71803853 3.8
## 77 77 0.64448336 3.1
## 78 78 0.32749562 1.2
## 79 79 0.84238179 5.5
## 80 80 0.06129597 0.2
## 81 81 0.45709282 1.8
## 82 82 0.92469352 7.8
## 83 83 0.15411559 0.5
## 84 84 0.88091068 6.4
## 85 85 0.27495622 1.0
## 86 86 0.18739054 0.6
## 87 87 0.42907180 1.7
## 88 88 0.04203152 0.1
## 89 89 0.35026270 1.3
## 90 90 0.05954466 0.2
## 91 91 0.90192644 7.0
## 92 92 0.93695271 8.3
## 93 93 0.04028021 0.1
## 94 94 0.79509632 4.8
## 95 95 0.07180385 0.2
## 96 96 0.78809107 4.7
## 97 97 0.85113835 5.7
## 98 98 0.83712785 5.4
## 99 99 0.39579685 1.5
## 100 100 0.49387040 2.0
hist(x, breaks = 20, probability = TRUE, col = "lightblue", ylim=c(0,0.35), main = "Distribución Exponencial (beta = 3)", xlab = "Valor de X")
# Añadimos la función de densidad teórica de la distribución exponencial
curve(dexp(x,rate=1/3), col = "red", lwd = 2, add = TRUE)
1.Generando variable aleatoria uniforme
# Generar 100 variables aleatorias uniformes entre 0 y 1
uniform_random_01 <- runif(100, min = 0, max = 1)
uniform_random_01
## [1] 0.69307839 0.44178771 0.96505387 0.01272711 0.72204983 0.09460366
## [7] 0.89365205 0.36786057 0.22282338 0.80938056 0.48727819 0.76917817
## [13] 0.23122946 0.92710933 0.03731363 0.31651590 0.58472115 0.88367333
## [19] 0.15511364 0.03831342 0.78947403 0.42866174 0.77916643 0.68285716
## [25] 0.76455107 0.29004537 0.52119715 0.74871531 0.08616541 0.76424895
## [31] 0.57844629 0.98338911 0.12691402 0.78852292 0.23829188 0.18850274
## [37] 0.91270549 0.64353601 0.90390493 0.59595506 0.35212939 0.63234473
## [43] 0.55266797 0.51884906 0.37139298 0.14744593 0.17074327 0.57865692
## [49] 0.43197393 0.94511559 0.04568378 0.11654225 0.10610302 0.11053247
## [55] 0.06946390 0.54563128 0.07141110 0.72108312 0.09757573 0.55208576
## [61] 0.73601296 0.70335015 0.86832608 0.05572673 0.04494824 0.24212732
## [67] 0.95796105 0.33061716 0.99042850 0.50466249 0.28308966 0.59900315
## [73] 0.24930927 0.93542202 0.43604724 0.22802693 0.17187396 0.55980249
## [79] 0.67378081 0.95828966 0.03035574 0.24538272 0.80772150 0.31947545
## [85] 0.53855566 0.61942527 0.58953725 0.23631447 0.01854073 0.91422453
## [91] 0.34318677 0.37277225 0.40240763 0.89146425 0.63593076 0.66364856
## [97] 0.48545579 0.95126488 0.75698218 0.52454314
# Generar 100 variables normales con media 30 y desviación estándar 3.5
set.seed(123)
normal_random <- rnorm(150, mean = 30, sd = 3.5)
normal_random
## [1] 28.03834 29.19438 35.45548 30.24678 30.45251 36.00273 31.61321 25.57229
## [9] 27.59602 28.44018 34.28429 31.25935 31.40270 30.38739 28.05456 36.25420
## [17] 31.74248 23.11684 32.45475 28.34523 26.26262 29.23709 26.40898 27.44888
## [25] 27.81236 24.09657 32.93225 30.53681 26.01652 34.38835 31.49262 28.96725
## [33] 33.13294 33.07347 32.87553 32.41024 31.93871 29.78331 28.92913 28.66835
## [41] 27.56853 29.27229 25.57111 37.59135 34.22787 26.06912 28.58990 28.36671
## [49] 32.72988 29.70821 30.88661 29.90009 29.84995 34.79011 29.20980 35.30765
## [57] 24.57937 32.04615 30.43349 30.75580 31.32874 28.24187 28.83377 26.43499
## [65] 26.24873 31.06235 31.56873 30.18551 33.22794 37.17530 28.28139 21.91791
## [73] 33.52008 27.51780 27.59197 33.58950 29.00329 25.72749 30.63456 29.51388
## [81] 30.02017 31.34848 28.70269 32.25532 29.22830 31.16124 33.83894 31.52314
## [89] 28.85924 34.02083 33.47726 31.91939 30.83556 27.80233 34.76228 27.89909
## [97] 37.65567 35.36414 29.17505 26.40753 27.51358 30.89909 29.13658 28.78360
## [105] 26.66934 29.84240 27.25283 24.16220 28.66921 33.21649 27.98629 32.12788
## [113] 24.33741 29.80553 31.81793 31.05404 30.36987 27.75753 27.02603 26.41555
## [121] 30.41176 26.68384 28.28305 29.10368 36.45352 27.71818 30.82385 30.27286
## [129] 26.63350 29.75042 35.05593 31.58026 30.14432 28.52126 22.81363 33.95968
## [137] 24.88776 32.58982 36.68186 24.94637 32.45625 29.08231 24.49750 24.69866
## [145] 24.39462 28.14183 24.88386 32.40771 37.35038 25.49539
hist(normal_random,col=5,main="grafico de la normal", xlim=c(10,45))
3. Generando variable aleatoria de una exponencial Para generar
variables aleatorias con distribución exponencial con parámetro β .
Ejemplo:
Simular El tiempo de servicio en una caja de un banco cuyo comportamiento sigue una forma exponencial con media de 3 minutos/cliente
numexp <- rexp(100,1/3)
round(numexp,1)
## [1] 1.7 13.1 1.7 1.4 0.8 2.1 2.9 2.2 3.3 1.8 2.0 4.9 0.3 1.2 8.2
## [16] 8.6 0.1 1.4 2.0 2.9 3.4 0.2 4.9 0.5 4.4 0.3 0.7 2.0 4.6 5.8
## [31] 0.6 1.7 5.8 10.8 4.0 2.8 0.9 0.4 2.8 0.8 1.6 0.2 0.4 7.8 6.2
## [46] 0.6 8.3 4.4 8.3 4.4 0.8 2.3 3.2 1.1 2.9 2.0 4.7 5.8 0.7 11.5
## [61] 0.6 2.9 0.6 3.7 5.0 1.2 3.0 0.2 8.0 5.0 2.5 0.5 1.4 5.1 1.5
## [76] 4.7 3.4 1.0 0.1 3.3 4.3 1.6 4.9 6.6 0.5 2.3 4.7 1.9 7.7 1.9
## [91] 3.5 2.1 4.6 1.9 2.8 1.1 0.2 1.1 3.8 6.6
binom_random <- rbinom(100,12,0.25)
binom_random
## [1] 3 4 1 7 2 1 4 4 2 2 2 1 2 2 3 3 5 2 3 1 5 3 4 2 3 4 1 4 2 2 2 1 3 4 5 0 7
## [38] 2 5 4 3 4 1 4 2 4 3 2 4 1 4 2 4 6 1 5 4 2 2 2 3 5 3 3 4 3 3 0 1 5 4 2 4 4
## [75] 3 4 3 5 3 5 3 3 6 4 3 0 3 3 5 4 5 2 5 1 2 4 6 3 3 1
evento_pois <- rpois(100,5)
tablapois <- table(evento_pois)
tablapois
## evento_pois
## 1 2 3 4 5 6 7 8 9 10 11
## 4 12 11 15 15 15 14 8 3 2 1
evento_pois
## [1] 10 2 2 8 5 4 8 1 3 6 3 4 3 7 3 7 4 4 6 2 1 11 5 7 8
## [26] 6 10 2 8 7 7 4 2 4 4 7 4 4 6 7 5 6 2 3 9 6 7 4 5 7
## [51] 8 4 2 6 6 2 4 5 6 8 5 5 6 7 8 2 5 4 7 7 2 6 3 2 9
## [76] 3 6 3 1 5 2 4 4 5 7 3 5 5 6 6 7 8 9 5 5 3 5 3 1 6