0% encontró este documento útil (0 votos)
4 vistas10 páginas

Prácticas de Estadística con R: Distribuciones

El documento presenta prácticas de estadística utilizando R, enfocándose en la simulación de distribuciones de probabilidad discretas y continuas. Se explican ejemplos prácticos como el lanzamiento de dados y el cálculo de probabilidades para variables aleatorias binomiales y continuas. Además, se incluyen instrucciones sobre cómo graficar funciones de masa y densidad, así como la aproximación de distribuciones binomiales a normales.

Cargado por

Gustavo
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas10 páginas

Prácticas de Estadística con R: Distribuciones

El documento presenta prácticas de estadística utilizando R, enfocándose en la simulación de distribuciones de probabilidad discretas y continuas. Se explican ejemplos prácticos como el lanzamiento de dados y el cálculo de probabilidades para variables aleatorias binomiales y continuas. Además, se incluyen instrucciones sobre cómo graficar funciones de masa y densidad, así como la aproximación de distribuciones binomiales a normales.

Cargado por

Gustavo
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 PDF, TXT o lee en línea desde Scribd

PRÁCTICAS DE

ESTADÍSTICA
CON R
PRÁCTICA 3: DISTRIBUCIONES DE
PROBABILIDAD DISCRETAS Y CONTINUAS

3.1 Distribuciones discretas

Las principales ideas que vamos a ir desarrollando a lo largo de la primera parte de


esta práctica hacen referencia al ejercicio siguiente:

ÉEjemplo 3-1: Simular 1000 veces el experimento consistente en lanzar 5 dados.


Considérese la variable aleatoria número de unos y doses obtenidos entre los 5
dados. Hacer un gráfico de frecuencias relativas y compararlo con la función de
probabilidad de una variable aleatoria B(5,1/3).

En R es posible calcular probabilidades para las principales variables aleatorias


discretas. Los nombres reservados a algunas de esas distribuciones son:
• Binomial: binom
• Hipergeométrica: hyper
• Poisson: pois
• Binomial negativa: nbinom
• Geométrica: geom.

Los nombres anteriores, sin embargo, no son sentencias de R que produzcan una
salida válida. Es necesario anteponerles los prefijos “d” para la función de masa o
función de probabilidad, “p” para la función de distribución acumulada, “r” para
generar valores aleatorios y “q” para la función cuantil. A continuación vemos
algunos ejemplos.

Calcular la probabilidad de que una variable aleatoria binomial de parámetros n=10,


p=0.3 tome el valor 4:
> dbinom(4,size=10,prob=0.3)
[1] 0.2001209

Probabilidad acumulada en el valor 5 de una variable aleatoria de Poisson de


parámetro l=2:
> ppois(5,2)
[1] 0.9834364

Generar 10 valores aleatorios de una distribución de Poisson de parámetro 3,52:


> rpois(10,3.52)
[1] 4 3 3 3 4 5 4 1 2 1

3.2 Cómo simular en R el lanzamiento de un dado

En primer lugar vamos a simular el lanzamiento de un dado una vez. Para ello
utilizamos la función sample. Mediante esta función se escogen al azar un número
de elementos de tamaño especificado entre todos los elementos de un cierto
vector. Por ejemplo, podemos usarla para escoger un número al azar entre los
naturales del 1 al 6 (lanzamiento de un dado una vez). Previamente definiremos el
vector dado, que representa todos los posibles resultados que pueden producirse al
lanzar un dado:
> dado<-c(1:6)
> sample(dado,1)
[1] 5

Para simular el lanzamiento más de una vez, por ejemplo 10, evidentemente
debemos indicar la opción con reemplazamiento (por defecto extrae sin
reemplazamiento):
> sample(dado,10,replace=T)
[1] 1 5 3 6 6 4 2 3 2 2

3.3 Función de masa

En el ejemplo 4-1 se necesita simular el lanzamiento de cinco dados 1000 veces, lo


que hacemos generando una matriz de 1000 filas por 5 columnas del siguiente
modo:
>lanzamientos<-
matrix(sample(dado,5000,replace=T),nrow=1000)
> # Por ejemplo, los resultados correspondientes a las
filas 250 a 260 son los que vienen a continuación
> lanzamientos[250:260,]
[,1] [,2] [,3] [,4] [,5]
[250,] 2 1 2 5 4
[251,] 1 1 2 3 5
[252,] 4 5 4 1 1
[253,] 2 3 4 5 6
[254,] 5 1 6 5 4
[255,] 3 3 6 4 6
[256,] 5 6 2 1 2
[257,] 5 6 1 5 3
[258,] 4 5 4 2 1
[259,] 5 6 2 6 2
[260,] 6 1 2 1 5
El resultado anterior no es del todo práctico en nuestro caso, ya que más que en los
resultados concretos de los 1000 lanzamientos de 5 dados estamos interesados en
el número de unos y doses que se obtienen en cada lanzamiento. Para ello
podemos usar la distribución B(1,2/6) que toma el valor 1 si ha salido uno o dos y
0 en otro caso, y generar 5000 valores al azar de esta distribución.
> x<-matrix(rbinom(5000,1,2/6),nrow=1000)
> # Por ejemplo, los resultados correspondientes a
las diez primeras filas son los siguientes
> x[1:10,]
[,1] [,2] [,3] [,4] [,5]
[1,] 0 0 1 0 1
[2,] 0 0 1 0 0
[3,] 0 1 1 1 1
[4,] 0 0 1 1 1
[5,] 0 1 1 0 0
[6,] 0 0 1 1 1
[7,] 1 1 0 1 1
[8,] 1 0 0 1 0
[9,] 1 0 0 1 0
[10,] 0 0 1 0 0

Construimos a continuación el vector formado por la suma de los valores de las filas
de x:
> y<-c([Link](x,1))
> y
[1] 2 1 4 3 2 3 4 2 2 1 2 0 4 0 3 1 3 3 2 0 3 3
0 4 3 3 2 2 3 1 4 2 2 1 3 3 0
...
[963] 4 0 1 3 1 2 2 2 2 3 1 2 0 2 2 1 2 1 4 2 1 1
3 2 1 2 2 2 3 1 2 2 2 3 3 0 3
[1000] 2

Construimos un histograma con los valores anteriores:

> hist(y)

Histogram of y
300
250
200
Frequency

150
100
50
0

0 1 2 3 4 5

y
Vamos a dibujar ahora la función de masa de una distribución B(5,2/6) y a
compararla con el histograma obtenido. Si queremos conservar el gráfico anterior
para que esté disponible más adelante podemos abrir una nueva ventana gráfica
con la instrucción windows():
> windows()
> z<-0:5
> plot(z,dbinom(z,size=5,prob=1/3),type="h")

0.30
dbinom(z, size = 5, prob = 2/6)

0.20
0.10
0.00

0 1 2 3 4 5

3.4 Función de distribución de una variable aleatoria discreta

Utilizando la función pbinom podemos dibujar la función de distribución acumulada


de la variable aleatoria que representa el número de unos y doses que aparecen al
lanzar cinco dados. Utilizamos la opción type="s" para construir la función en
forma de escalera.
> plot(z,pbinom(z,size=5,prob=1/3),type="s")
1.0
0.8
pbinom(z, size = 5, prob = 1/3)

0.6
0.4
0.2

0 1 2 3 4 5

z
3.5 Distribuciones continuas

En R es posible calcular probabilidades para las principales variables aleatorias


continuas. Los nombres reservados a las distribuciones continuas más importantes
son:
• Uniforme: unif
• Exponencial: exp
• Normal: norm
• c2: chisq
• t de Student: t
• F de Snedecor: f

Los nombres anteriores, igual que para las distribuciones discretas, no son
sentencias de R que produzcan una salida válida. Es necesario anteponerles los
prefijos “d” para la función de densidad, “p” para la función de distribución
acumulada, “r” para generar valores aleatorios y “q” para la función cuantil
(inversa de la función de distribución).

Por ejemplo, si queremos conocer la ordenada de la función de densidad de una


variable aleatoria N(-2,4), valor que por otro lado no tiene ninguna utilidad
práctica, haremos:
> dnorm(3,-2,4)
[1] 0.04566227

Este resultado lo podemos obtener así mismo mediante la función de densidad de la


variable aleatoria normal:
> exp(-(1/2)*((3+2)/4)^2)/(4*sqrt(2*pi))
[1] 0.04566227

Generemos 10 valores aleatorios de una distribución U(-5,3):


> runif(10,-5,3)
[1] -1.8616074 -0.2718027 -3.4057091 1.3315307
-1.6892947 2.6328703
[7] -2.8891604 -1.1120779 -0.1570343 -0.1074194

3.6 Función de densidad

En el primer ejemplo vamos a dibujar la función de densidad de una variable


aleatoria exponencial de parámetro 3. Posteriormente, veremos cómo se aproxima
una distribución binomial por una normal.
ÉEjemplo 3-6-1: Dibujar la función de densidad y la función de distribución de una
variable aleatoria exponencial de media 3.

> # Una forma muy simple de dibujar la función de


densidad es usar la función “curve”
> curve(dexp(x,rate=1/3),from=-3,to=10)

0.30
0.25
0.20
dexp(x, rate = 1/3)

0.15
0.10
0.05
0.00

-2 0 2 4 6 8 10

> # Una alternativa es utilizar la función “plot”,


pero previamente debemos definir un vector z en el que
evaluaremos la función de densidad
> z<-seq(-3,10,0.1)
> plot(z,dexp(z,rate=1/3),type="l")
> # Con la opción type=”l” conseguimos dibujar el
gráfico como una línea

> # Dibujamos ahora la función de distribución


> curve(pexp(x,rate=1/3),from=-3,to=10)
1.0
0.8
0.6
pexp(x, rate = 1/3)

0.4
0.2
0.0

-2 0 2 4 6 8 10

x
ÉEjemplo 3-6-2: La probabilidad de que un cierto componente electrónico falle a lo
largo de un mes es 0,1. Si hay 500 componentes en funcionamiento, calcular la
probabilidad de que en un mes: 1º) fallen como mucho 50 componentes, 2º) fallen
entre 30 y 60, 3º) fallen más de 65. Resolver, en primer lugar, el problema
utilizando la distribución binomial y despues mediante la aproximación de la
binomial a la normal. Comprobar gráficamente tal aproximación.

> # Calculamos las probabilidades exactas pedidas


mediante la distribución binomial

> pbinom(50,500,0.1)
[1] 0.5375688

> pbinom(60,500,0.1)-pbinom(29,500,0.1)
[1] 0.9376227

> 1-pbinom(65,500,0.1)
[1] 0.01269429

Como es sabido, la distribución B (n, p ) se aproxima a la N ( np, np (1 − p )) , y la

aproximación es buena si np>5 y n(1-p)>5. Aplicando este resultado obtendremos,


de manera aproximada, las probabilidades anteriores.

> n<-500;p<-0.1
> n*p;n*(1-p)
[1] 50
[1] 450
> media<-n*p;destip<-sqrt(n*p*(1-p))
> pnorm(50.5,media,destip)
[1] 0.5297079
> pnorm(60.5,media,destip)-
+ pnorm(29.5,media,destip)
[1] 0.9401159
> 1-pnorm(65.5,media,destip)
[1] 0.01042738
> # En todos los casos hemos tenido en cuenta la
corrección por continuidad

> # Dibujamos la función de masa de la


distribución B(500,0.1) y le superponemos la
función de densidad de la N(media,destip)
> z<-0:100
> plot(z,dbinom(z,500,0.1),type="h")
> curve(dnorm(x,media,destip),add=T)
> # Notemos que en la sentencia anterior hemos
utilizado la opción add=T (TRUE) para indicarle a
R que superponga este gráfico al anterior
0.06
0.05
0.04
dbinom(x, 500, 0.1)

0.03
0.02
0.01
0.00

0 20 40 60 80 100

3.7 Función de distribución de una variable aleatoria continua

Vamos a dibujar ahora la función de distribución de la variable aleatoria normal del


ejemplo 3-6-2. Como se trata de una variable aleatoria continua utilizaremos la
opción type="l" para dibujarla como una línea, obteniendo la clásica curva en
forma de S:
> plot(x,pnorm(x,50,6.7082),type="l")
1.0
0.8
pnorm(x, 50, 6.7082)

0.6
0.4
0.2
0.0

0 20 40 60 80 100

Alternativamente, podríamos construir este gráfico mediante la sentencia siguiente:


> curve(pnorm(x,media,destip),from=0,to=100)
PRÁCTICA 3: EJERCICIOS

ÉEjercicio 3-1: Representar gráficamente la función de probabilidad y la función de


distribución de una variable aleatoria que sigue una distribución de Poisson de
parámetro 4,32.

ÉEjercicio 3-2: De un lote de 100 piezas, se sabe que 5 de ellas no cumplen con los
requisitos de aceptación. Si se toman al azar 10, ¿cuál es la probabilidad de
encontrar uno o menos elementos defectuosos en la muestra? Resolverlo para dos
casos:
a) El muestreo se hace sin reemplazamiento, y
b) el muestreo se hace con reemplazamiento.

ÉEjercicio 3-3: Dibujar la función de densidad, y la función de distribución de una


variable aleatoria uniforme continua de parámetros (-3,4).

ÉEjercicio 3-4: Dibujar, superpuestas en un mismo gráfico, las funciones de


densidad de las siguientes variables aleatorias normales: N(3,0.75), N(0,1),
N(-2,1), y N(-2,2).

ÉEjercicio 3-5: Dibujar, superpuestas en un mismo gráfico, las funciones de


densidad de las siguientes variables aleatorias: t2 y N(0,1).

También podría gustarte