Podemos crear variables aleatorias simples usando las funciones sample() y runif()<.
>x=sample(0:20,50,rep=T)
>y=runif(50,0,1)
Podemos disponer de una distribución tabular usando data frame
> p = data.frame(x,y)
>p
>plot(p)
Adicional
Gráficos con plot() para dos variables
Sintaxis:
>plot(x,y,type=”..”,main=”..”,xlab=”..”,ylab=”..”)
Donde type:
l=línea, p=puntos, b=ambos, h=histograma, s=escalera, o=overplotted
main=título, xlab=Texto en el eje X, ylab=Texto en el eje Y
>x=-5:5
>y=x**2
>plot(x,y)
> plot(x,y,"l")
Se puede usar también
>plot(x,y,type = ”l”)
>y= 5*x**3+3*x**2-10
>plot(x,y,”p”,main=”Gráfica de y=5x**3+3x**2-10”,xlab=”X”,ylab=”Y”)
También podemos usar la función curve() para trazar el gráfico de manera más refinada.
>x=2
>curve(x**2,from=-4,to=4)
>curve(sin,from=-2*pi,to=2*pi)
>curve(x**2-sqrt(x)+x-3,from=0,to=5)
>text(2.5,20,"f(x) = x**2-sqrt(x)+x-3")
Grafiquemos otra vez
> curve(x**2-sqrt(x)+x-3,from=0,to=5)
Otro tipo de texto
> text(2.5,20,expression(x**2-sqrt(x)+x-3))
Observación importante
Cuando hablamos de variables aleatorias, estamos hablando de sus funciones de densidad o de probabilidad y sus funciones de distribución acumulada.
En R se dispone de las siguientes funciones en cada variable aleatoria conocida:
dnamed (x, tamaño, prob, log = FALSE)
pnamed (q, tamaño, prob, lower.tail = TRUE, log.p = FALSE)
qnamed (p, tamaño, prob, lower.tail = TRUE, log.p = FALSE)
Rnamed (n, tamaño, prob)
donde "named" debe reemplazarse por
binom: En el caso de la distribucion Binomial
pois : En el caso de la distribución de Poisson
hyper: En el caso de la distribución Hiperogeométrica
exp : En el caso de la distribución Exponencial
norm : En el caso de la distribución Normal, etc.
La primera genera la función de probabilidad o de densidad
La segunda es la función de distribución acumulada
La tercera usa los valores de los cuantiles
La cuarta genera una secuencia de valores aleatorios que siguen la distribución indicada por named.
Distribución Binomial
Ejemplo 1
Obtenga la distribución de probabilidad del número de veces que sale cara cuando se lanza una moneda 3 veces
>x=0:3
>p=dbinom(x,3,0.5)
>pac=pbinom(x,2,0.5)
Veamos la table de la distribución de probabilidad: p(x) = P(X = x)
>dp=data.frame(x,p) >dp
Gráfica
>plot(dp)
>barplot(p)
Una tabla que contenga, x, f(x) y F(x)
>fx= dbinom(x,3,0.5)
>Fx=pbinom(x,3,0.5)
>px=data.frame(x,fx,Fx)
La función de probabilidad por definición:
>n=3
>x=0:3
>p=0.5
>fx=choose(n,x)*p**x*(1-p)**(n-x)
Ejemplo 2
Sea X una variable aleatoria tal que X ---> B(n=10, p = 0.4)
La función de densidad:
> fx=dbinom(x,n,p)
La función de distribución acumulada
> Fx=pbinom(x,n,p)
Gráfica de la función de probabilidad
> plot(fx,type="h",xlab="x",ylab="P(X=x)",main="Gráfica de la función de probabilidad")
Gráfica de la función de probabilidad acumulada Fx
> Fx=pbinom(0:11,10,0.4)
Observe que le asignamos un valor más a X a fin de visualizar el máximo valor de probabilidad acumulada.
Otro gráfico en la misma ventana
>par(new=T)
> plot(Fx,type="h",xlab="x",ylab="P(X=x)",col = "red")
Cambiemos el tipo de gráfico
> plot(fx,type="b",xlab="x",ylab="P(X=x)",col="blue",main="Gráfica de la función de probabilidad")
> plot(Fx,type="b",xlab="x",ylab="P(X=x)",col = "red")
Otra forma de graficar Fx en escalones
>plot(stepfun(0:10,Fx),xlab="x",ylab="P(X=x)",main="Gráfica de la función de probabilidad")
Ejemplo 3
Generar una distribución para X----> B(n = 10, p = 0.5) y luego graficar las funciones de probabilidad y de distribución.
Recordando la sintaxis de la función de probabilidad
>x=0:10
>n=10
>p = 0.25
>fx=dbinom(x,n,p)
>Fx=pbinom(x,n,p)
Sus gráficas
>dbf=data.frame(x,fx)
>dbF=data.frame(x,Fx)
> plot(dbf,col="blue",type="l")
>par(new=T)
> plot(dbF,col="red",type="l")
> barplot(fx,col="blue")
> par(new=T)
> barplot(Fx,col="red")
Distribución de Poisson
Sea X ---> P(lambda), con x =0,1,2,….
Su función de probabilidad viene dada por
A una caseta de peaje llegan 15 vehículos cada media hora. Obtenga las distribuciones de probabilidad del número de vehículos que llegará cada hora.
Si definimos a X como : “El número de vehículos que llegarán cada hora”, entonces X tiene distribución de Poisson cuyo parámetro lambda es 30.
En este caso, siendo lambda = 30, su función de probabilidad viene dada por
>x=0:50
>lambda=30
>fx=dpois(x,lambda)
>Fx=ppois(x,lambda)
>plot(fx)
>par(new=T)
>plot(Fx)
Distribución Hipergeométrica
De una población de tamaño N, k de los cuales tienen cierto atributo, se extrae una muestra de tamaño n. Si X representa el número de elementos en la muestra que tienen el atributo, entonces X ---> H(N,k,n) . Si m = N-k, la función de probabilidad viene dada por dhyper(x,n,m,k).
Los valores de x:
>x=0:n
>N=25
>k=5
>n = 4
>m = 20; # m = N-k
Luego
> fx = dhyper(x,k,m,n)
Su función de distribución acumulada
> Fx = phyper(x,k,m,n)
Distribución exponencial
Si X ---> E(beta), donde el parámetro beta = 1/mu. (mu = media)
Las funciones de densidad y acumulada:
>fx=dexp(x,rate=1/ µ,lower.tail=TRUE)
Si lower.tail=TRUE, se calcula P(X≤x), en caso contrario, P(X>x).
Ejemplo
El número de nacimientos que se producen en Lima, anualmente es de 3090. Si la distribución del número de nacimientos puede ajustarse a una distribución exponencial, encuentre
a) La probabilidad de que, el próximo año se produzcan, a lo más, 3500 nacimientos
b) La probabilidad de que, el próximo año se produzcan por lo menos 4000 nacimientos
c) ¿Cuántos nacimientos, a lo más, se producirá el próximo año, con probabilidad 0.50?
Solución
Sea X: Nro de nacimientos por año, en miles. Parámetro beta = 1/3.09
X E(1/3.09)
a)>pexp(3.5,1/3.09,lower.tail=TRUE)
b)>beta=1/3.09
>pexp(4,beta,lower.tail=FALSE)
c)>qexp(0.5,beta,lower.tail=TRUE)
Distribución normal
Continuaremos en la siguiente sesión