modelos de probabilidad en r - mexestadisticaymatematicaucr.mex.tl/imagesnew2/0/0/0/2/1/4/... ·...
TRANSCRIPT
-
Modelos de probabilidad en R
ContentsProbabilidades Discretas 1
Ejemplo: suma de la cara de dos dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1Distribución Binomial: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Distribución Poisson: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Probabilidades Continuas 11Ejemplo: una varible distribuida normalmente (estándar) . . . . . . . . . . . . . . . . . . . . . . . 11Cambiando los parámetros de una curva normal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Distribucion T Student . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Distribucion Log Normal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Chi Cuadrado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Distribución Beta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Ejemplo: a una variable específica, ajustar la curva normal . . . . . . . . . . . . . . . . . . . . . . 27Estimar los parametros: normal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Estimar los parametros: t student . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Comparamos el ajuste normal y t student . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
En este tutorial vamos a R para reforzar los conceptos de probabilidad vistos en clase y darles un mayorsentido y aplicabilidad.
Se abordarán los principales modelos de probabilidad discreta y continua. Más adelante se verá su utilidaden finanzas.
Probabilidades Discretas
Ejemplo: suma de la cara de dos dados
Gráfico de la Función de Masa (o densidad) y la Función de Distribución
#Sabemos que la suma de dos dados se encuentra entre 2 y 12x
-
2 4 6 8 10 12
0.00
0.05
0.10
0.15
0.20
xi
p i
#Graficamos la función de distribución F(x)plot.ecdf(outer(1:6,1:6,"+"),ylab=expression(F[X](x)),main="")
2
-
2 4 6 8 10 12
0.0
0.2
0.4
0.6
0.8
1.0
x
FX(x
)
Distribución Binomial:
Suponga que un gerente de crédito de American Express ha descubierto que históricamente7.82% (p) de los usurios de tarjetas han experimentado problemas con el róbo o pérdida desu tarjeta. Por lo cual para efectos de preveer la cantidad de reposiciones en el próximo añodesea saber la probabilidad de que:
De una sucursal que atiende 1,000 personas, exactamente 68 personas necesiten reponer sutarjeta#Identifico los parámetrosx
-
p
-
#Primer forma es con una función creada por nosotros mismos
#Defino los parámetrosp
-
#Ahora puedo reducir el eje x en el gráfico para amplificar el área donde ocurren los casosg.bin
-
0 8 18 30 42 54 66 78 90 103 118 133 148 163 178
bin. dist. :1000:0.0782
Personas que reponen tarjeta
Den
sida
d
0.00
0.01
0.02
0.03
0.04
#Un décimo del largo del ejep
-
0 4 8 13 19 25 31 37 43 49 55 61 67 73 79 85 91
bin. dist. :1000:0.0782
Personas que reponen tarjeta
Den
sida
d
0.00
0.01
0.02
0.03
0.04
Distribución Poisson:
Suponga que en el mercado cambiario se espera que sucedan en promedio 25 calces o transac-ciones cada hora. Si se asume que las transacciones siguen una distribución de Poisson. En-tonces encuentre la probabilidad de que:
En una hora específica, sucedan exactamente 19 transacciones#Identifico los parámetrosx
-
## [1] 0.1366911ppois(x,lambda=h,lower=FALSE)
## [1] 0.1366911
En una hora específica, sucedan menos de 10 transacciones#Identifico los parámetrosx
-
0 1 2 3 4 5 6 7 8 9 11 13 15 17 19
poi. dist. :20:25
Calces en el mercado
Den
sida
d
0.00
0.01
0.02
0.03
0.04
0.05
#Ampliamos la cantidad de calces de interésx
-
0 4 8 13 19 25 31 37 43 49 55 61 67 73
poi. dist. :75:25
Calces en el mercado
Den
sida
d
0.00
0.02
0.04
0.06
Probabilidades Continuas
Ejemplo: una varible distribuida normalmente (estándar)
#Se fija la "semilla" para la generación de números aleatoriosset.seed(3000)
#Creamos un vector de los valores para el eje xxseq
-
−4 −2 0 2 4
0.0
0.1
0.2
0.3
0.4
f(x) Normal Estándar
Den
sida
d
plot(xseq,cumul,col="darkorange",xlab="",ylab="Probabilidad Acumulada",type="l",lwd=2,cex=2,main="F(x) Normal Estándar", cex.axis=.8)
12
-
−4 −2 0 2 4
0.0
0.2
0.4
0.6
0.8
1.0
F(x) Normal Estándar
Pro
babi
lidad
Acu
mul
ada
hist(random,main="Números Aleatorios Normal Estándar",cex.axis=.8, xlim=c(-4,4))
13
-
Números Aleatorios Normal Estándar
random
Fre
quen
cy
−4 −2 0 2 4
050
100
150
200
Cambiando los parámetros de una curva normal
#Creamos un vector de los valores para el eje xx1
-
−10 0 10 20
0.0
0.1
0.2
0.3
0.4
f(x) Normal Estándar
Den
sida
d
N~(5,1)N~(5,2)N~(5,4)N~(5,8)
#Creamos un vector de los valores para el eje y de la densidad acumuladacum1
-
−10 0 10 20
0.0
0.2
0.4
0.6
0.8
1.0
F(x) Normal Estándar
Pro
babi
lidad
Acu
mul
ada
Distribucion T Student
#Vamos a observar cual es la forma de la distribucion#con 1 grado de libertadx
-
−3 −2 −1 0 1 2 3
0.05
0.15
0.25
x
Den
sity
#Generamos varias T Student con distintos grados de libertadplot(x,dt(x,1),type="n",ylab="Density",ylim=c(0,0.4))for (i in 0:6){
lines(x,dt(x,df=2^i),col=i+2)legend("topright",legend=2^(0:6),col=2:8,lty=1,bty="n")
}
17
-
−3 −2 −1 0 1 2 3
0.0
0.1
0.2
0.3
0.4
x
Den
sity
1248163264
1248163264
1248163264
1248163264
1248163264
1248163264
1248163264
Distribucion Log Normal
#Vamos a observar cual es la forma de la distribucion log normalx
-
−1 0 1 2 3 4 5
0.0
0.1
0.2
0.3
0.4
0.5
0.6
x
Den
sity
#Generamos valores aleatorio log normalx
-
Histogram of x
x
Den
sity
0 20 40 60 80 100 120
0.00
0.02
0.04
0.06
0.08
0.10
#Entonces si sacamos el logaritmo, se debe parece a una normaly
-
Histogram of y
y
Den
sity
−1 0 1 2 3 4 5
0.0
0.1
0.2
0.3
0.4
Chi Cuadrado
#Vamos a observar cual es la forma de la distribucion#con 1 grado de libertadx
-
0 10 20 30 40 50
0.0
0.1
0.2
0.3
0.4
0.5
0.6
x
Den
sity
1248163264
1248163264
1248163264
1248163264
1248163264
1248163264
Distribución Beta
#Vamos a observar cual es la forma de la distribucion#Parámetros alpha y beta
#con parámetros (1,1) grado de libertadx
-
0.0 0.2 0.4 0.6 0.8 1.0
0.6
0.8
1.0
1.2
1.4
x
Den
sity
#con parámetros (1,2) grado de libertadx
-
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.5
1.0
1.5
2.0
x
Den
sity
#con parámetros (2,1) grado de libertadx
-
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.5
1.0
1.5
2.0
x
Den
sity
#con parámetros (2,2) grado de libertadx
-
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.5
1.0
1.5
x
Den
sity
#Generamos varias beta con distintos parámetros#Se definen vectores con los valores de parámetrso de la distribución y del gráficoa.seq
-
0.0 0.2 0.4 0.6 0.8 1.0 1.2
0.0
0.5
1.0
1.5
2.0
2.5
3.0
x
Den
sity
α, β1 12 23 34 45 56 60.8 0.80.4 0.40.2 0.21 40.5 42 4
α, β1 12 23 34 45 56 60.8 0.80.4 0.40.2 0.21 40.5 42 4
α, β1 12 23 34 45 56 60.8 0.80.4 0.40.2 0.21 40.5 42 4
α, β1 12 23 34 45 56 60.8 0.80.4 0.40.2 0.21 40.5 42 4
α, β1 12 23 34 45 56 60.8 0.80.4 0.40.2 0.21 40.5 42 4
α, β1 12 23 34 45 56 60.8 0.80.4 0.40.2 0.21 40.5 42 4
α, β1 12 23 34 45 56 60.8 0.80.4 0.40.2 0.21 40.5 42 4
α, β1 12 23 34 45 56 60.8 0.80.4 0.40.2 0.21 40.5 42 4
α, β1 12 23 34 45 56 60.8 0.80.4 0.40.2 0.21 40.5 42 4
α, β1 12 23 34 45 56 60.8 0.80.4 0.40.2 0.21 40.5 42 4
α, β1 12 23 34 45 56 60.8 0.80.4 0.40.2 0.21 40.5 42 4
Ejemplo: a una variable específica, ajustar la curva normal
#Cargamos paqueteslibrary(timeSeries)
## Loading required package: timeDate#Cargamos una base de datos nuevarm(list=ls())setwd("G:/UCR TR-ESTADISTICA/Curso 21-07-17/Clase 1")data
-
head(ret.datos)
## GMT## Bond.US r1 US.Stock r2 Latin.Stock r3## 2000-01-10 0.0404 59.4599 0.4299 -171.4632 3.8029 -4.8987## 2000-01-14 0.0139 -33.6780 1.2061 149.8206 2.6466 -48.1271## 2000-01-26 0.0160 65.0849 0.0281 -194.8651 1.0297 373.6607## 2000-03-01 0.0228 -8.6902 0.0949 -224.0976 2.8484 226.9099## 2000-03-02 0.0166 -31.8563 0.2659 103.0694 3.5632 22.7523## 2000-03-03 0.0138 -18.2804 1.9704 201.1519 1.8614 -65.7876#Hacemos el histograma y sobreponemos la curvax
-
#Usar QQ plot#Famoso grafico QQ-Plotqqnorm(ret.datos$r3)qqline(ret.datos$r3, col=2)
−3 −2 −1 0 1 2 3
−40
00
200
400
Normal Q−Q Plot
Theoretical Quantiles
Sam
ple
Qua
ntile
s
Estimar los parametros: normal
#Instalo el paquete#install.packages("fitdistrplus")library(fitdistrplus)
## Warning: package 'fitdistrplus' was built under R version 3.4.1
## Loading required package: MASS
## Loading required package: survival#Comando para la estimacionf1
-
names(f1)
## [1] "estimate" "method" "sd" "cor" "vcov"## [6] "loglik" "aic" "bic" "n" "data"## [11] "distname" "fix.arg" "fix.arg.fun" "dots" "convergence"## [16] "discrete" "weights"plot(f1)
Empirical and theoretical dens.
Data
Den
sity
−600 −200 0 200 400
0.00
000.
0025
−400 −200 0 200 400
−40
020
0
Q−Q plot
Theoretical quantilesE
mpi
rical
qua
ntile
s
−600 −200 0 200 400
0.0
0.6
Empirical and theoretical CDFs
Data
CD
F
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.6
P−P plot
Theoretical probabilities
Em
piric
al p
roba
bilit
ies
#No hay mucha diferencia con las estimaciones de la media y desviacion que calculamos anteshist(ret.datos$r3,prob=TRUE,ylim=c(0,0.004),breaks=20)curve(dnorm(x,mean(ret.datos$r3),sd(ret.datos$r3)),
add=TRUE,col="darkblue",lwd=2)curve(dnorm(x,f1$estimate[1],f1$estimate[2]),
add=TRUE,col="red",lwd=2)
30
-
Histogram of ret.datos$r3
ret.datos$r3
Den
sity
−400 −200 0 200 400
0.00
00.
001
0.00
20.
003
0.00
4
Estimar los parametros: t student
#Instalar paquete#install.packages("metRology")library(metRology)
## Warning: package 'metRology' was built under R version 3.4.1
#### Attaching package: 'metRology'
## The following objects are masked from 'package:base':#### cbind, rbind#Comando para la estimacionx
-
## Warning in dt((x - m)/s, df, log = TRUE): NaNs producedf2
## m s df## 2.548267 104.322667 4.522365## ( 6.020630) ( 6.929205) ( 1.135969)names(f2)
## [1] "estimate" "sd" "vcov" "loglik" "n"#Sobreponemos la curva thist(ret.datos$r3,prob=TRUE,ylim=c(0,0.004),breaks=20)curve(dt.scaled(x,df=f2$estimate[3],mean=f2$estimate[1],sd=f2$estimate[2]),
add=TRUE,col="darkblue",lwd=2)
Histogram of ret.datos$r3
ret.datos$r3
Den
sity
−400 −200 0 200 400
0.00
00.
001
0.00
20.
003
0.00
4
Comparamos el ajuste normal y t student
#Sobreponemos la curva t y la normalhist(ret.datos$r3,prob=TRUE,ylim=c(0,0.004),breaks=20)curve(dt.scaled(x,df=f2$estimate[3],mean=f2$estimate[1],sd=f2$estimate[2]),
add=TRUE,col="darkblue",lwd=2)curve(dnorm(x,f1$estimate[1],f1$estimate[2]),add=TRUE,col="red",lwd=2)
32
-
Histogram of ret.datos$r3
ret.datos$r3
Den
sity
−400 −200 0 200 400
0.00
00.
001
0.00
20.
003
0.00
4
33
Probabilidades DiscretasEjemplo: suma de la cara de dos dadosDistribución Binomial:Distribución Poisson:
Probabilidades ContinuasEjemplo: una varible distribuida normalmente (estándar)Cambiando los parámetros de una curva normalDistribucion T StudentDistribucion Log NormalChi CuadradoDistribución BetaEjemplo: a una variable específica, ajustar la curva normalEstimar los parametros: normalEstimar los parametros: t studentComparamos el ajuste normal y t student