Professional Documents
Culture Documents
ESTADISTICA
2009-2010
PRACTICA 2. PROBABILIDAD Y VARIABLES ALEATORIAS
OBJETIVOS: Introducci
on a la probabilidad y a las variables aleatorias
1.
Probabilidad
1. Simular 1000 lanzamientos de una moneda cuya probabilidad de obtener cara (codificada
como 1) es de 0,4 y la de obtener cruz (codificada como 0) es de 0,6. Como se podra ver
que la simulaci
on est
a funcionando seg
un lo esperado?
>>
>>
>>
>>
n=1000; p=0.4;
u=rand(n,1);
m=1*(u<=p)+0*(u>p);
mean(m) % aprox. 0.40
2. Simular 10 lanzamientos de una moneda cuya probabilidad de obtener cara (codificada como
1) es de 0,4 y la de obtener cruz (codificada como 0) es de 0,6 y localizar en un vector los
lanzamientos que son cara.
>>
>>
>>
>>
>>
>>
n=10; p=0.4;
u=rand(n,1);
m=1*(u<=p)+0*(u>p);
lanza=(1:n)
data=[lanza m];
donde=data(find(data(:,2)==1))
% mediante simulacion:
>> u=rand(10000,2) ;
% simulamos 2 columnas (s
abado y domingo)
>> x=(u<=p);
% si u<=p, toma valor 1 y 0 en caso contrario
>> w=(x(:,1)==1 | x(:,2)==1); % si llueve el s
abado
%
domingo o ambos, w=1 y w=0 en caso
%
contrario
>> prob = sum(w)/10000; % aprox. 0.75
4. Indicar el c
odigo MATLAB para calcular la fiabilidad de un sistema de 5 componentes en
serie cuya probabilidad de fallo es de 0.05 para cada uno de ellos y donde se supone que los
fallos se producen de forma independiente entre s. Compararla con la fiabilidad teorica.
Sea p = 1 0,05 la probabilidad de que cada componente no falle, la probabilidad
teorica es p5 = 0,7738.
% mediante simulaci
on:
>> u=rand(1000,5);
>> x=(u<=p);
>> w=(x(:,1)==1 & x(:,2)==1 & x(:,3)==1 & x(:,4)==1 & x(:,5)==1);
>> prob=sum(w)/1000; % aprox. 0.7738
5. La empresa Aikon tiene una planta de fabricacion de telefonos moviles. Se sabe que el 30 %
de los telefonos fabricados en dicha planta son defectuosos. Si un telefono es defectuoso, la
probabilidad de que un robot del Departamento de Calidad de la empresa lo detecte es 0, 9
y si no es defectuoso, la probabilidad de que el robot lo considere defectuoso y lo saque de
producci
on es de 0, 2. Si un cliente compra dos telefonos que no han sido sacados de la cadena
de producci
on, cu
al es la probabilidad de que sean ambos no defectuosos?
La soluci
on te
orica es la siguiente: Sean los sucesos A = ser defectuoso, A = no
= el robot dice que no es
ser defectuoso, R = el robot dice que es defectuoso, y R
defectuoso. Los datos del problema nos dice que:
= 0,2, por lo que P (A)
= 1 P (A) = 0,7,
P (A) = 0,3, P (R|A) = 0,9 y que P (R|A)
P (R|A) = 0,1 y P (R|A) = 0,8. Se tiene por tanto que la probabilidad de que un telefono
que no haya sido sacado de la cadena de produccion sea no defectuoso es:
A)P
(A)
P (R|
R)
= P (R|A)P (A) =
P (A|
= 0,949
A)P
(A)
+ P (R|A)P
P (R)
P (R|
(A)
Y por tanto, que dos lo sean es 0, 949 0, 949 = 0, 9006.
En MATLAB, podemos calcular la probabilidad, sin necesidad de aplicar el teorema
de Bayes. Mediante simulaci
on y a partir de las probabilidades dadas en el problema:
1. Simulamos la fabricaci
on de n moviles (por ej: n = 10000). Sabiendo que el 30 %
son defectuosos (el 70 % no son defectuosos).
>> n=10000;
>> n_def=0.3*n;
% no de defectuosos
>> n_no_def=0.7*n; % no de no defectuosos
2. Crearemos el vector M, formado por los vectores DEF, y NDEF, que toma valor 1 si el
m
ovil fabricado es defectuoso y 0 si no lo es.
>> DEF = repmat(1,n_def,1) ;
>> NDEF = repmat(0,n_no_def,1) ;
>> M = [DEF ; NDEF];
3. Generamos n
umeros aleatorios mediante el comando rand, de tama
no n_def y
n_no_def.
>> u_def=rand(n_def,1);
>> u_no_def=rand(n_no_def,1);
=
4. Mediante la condici
on booleana, y con las probabilidades P (R|A) = 0,9 y P (R|A)
0,2, generamos un vector R, que indica que el Robot detecta que el movil es defectouso y en efecto lo es (1) y toma valor 0 si lo detecta cuando no lo es.
>> R_DEF = 1*(u_def<=0.9) + 0*(u_def>0.9);
>> R_NDEF = 1*(u_no_def<=0.2) + 0*(u_no_def>0.2);
>> R =[ R_DEF ; R_NDEF ];
Count
5631
309
Percent
94.80%
5.20%
R)
0, 949, en nuestro caso hemos obtenido 0.9480.
Obtenemos P (A|
2.
Variables aleatorias
2.1.
Funciones preliminares u
tiles
La siguienta tabla resume algunas de las funciones mas importantes para la generaci
on de
n
umeros aleatorios en MATLAB/Octave:
Funci
on
Descripci
on
Sintaxis
rand
unifrnd
unidrnd
n. aleatorios [0, 1]
n. aleatorios [a, b]
n. aleatorios discretos {1, 2, ..., N }
rand(m,n)
unifrnd(a,b,m,n)
unidrnd(N,m,n)
o x=unifrnd(0,1,100,1)
% otra manera:
>> u=rand(6,1)
>> x=floor(6*u+1)
% otra manera:
>> u=rand(5,3)
>> x=floor(6*u+1)
2.2.
Generaci
on de variables aleatorias
>> n=10000;
>> u1=rand(n,1);
>> u2=rand(n,1);
>> m1=1*(u1<=1/2)+0*(u1>1/2);
>> m2=1*(u2<=1/2)+0*(u2>1/2);
>> x=m1+m2;
Count
2483
5006
2511
Percent
24.83%
50.06%
25.11%
50
40
30
p(x)
0
1
2
1/4
1/2
1/4
20
10
2. Dada la variable aleatoria X, del ejercicio anterior, comprueba los valores teoricos E[X] y
Var[X].
La esperanza de X es:
= E[X] =
n
X
xi P (X = xi ) = 0
i=1
1
1
1
+1 +2 =1
2
4
2
Y la varianza:
2 = Var[X] =
n
X
(xi )2 P (X = xi )
i=1
2
= (0 1)
1
1
1
+ ... + (2 1)2 =
2
2
2
Recuerda:
Var[X] = E[X 2 ] (E[X])2
En MATLAB podemos comprobar que:
>> mean(x)
>> var(x)
% es aproximadamente 1
% es aproximadamente 0.5
3. El m
etodo de la inversa1 de la funcion de distribucion, FX (x), afirma que si una variable
aleatoria X tiene una funci
on de distribucion FX (x) que admite inversa, entonces se verifica
que la variable transformada U = FX (X) sigue siempre una distribucion uniforme continua
U.
Este resultado se aplica en la vida real considerando la igualdad u = FX (x) y despejando x
en funci
on de u, que vendr
a dado por x = FX1 (u), con lo que si se genera u U(0, 1) se tiene
que x = FX1 (u) sigue la distribucion de X.
Para generar u U con MATLAB/Octave podemos utilizar rand o unifrnd.
a) Sea X una variable aleatoria con funcion de distribucion FX (x), dada por:
0
x<0
FX (x) =
1 e2x
0x
C
omo simularas valores de la v.a. X?
b) Comprueba con MATLAB/Octave los valores de E[X] y de Var[X].
1
Para m
as detalles: link
Fijar n = 100
Generar n datos u U(0, 1)
Aplicar transformaci
on inversa (x = 21 log(1 u))
Tenemos que x f (x)
45
40
35
30
>>
>>
>>
>>
n=100000;
u=rand(n,1);
x = (-1/2)*log(1-u);
hist(x)
25
20
15
10
0.5
1.5
2.5
xf (x)dx =
1
2
1 2
1
f (x)dx =
= Var[X] =
(x ) f (x)dx =
x
2
4
>> mean(x)
>> var(x)
% es aprox. 0.5
% es aprox. 0.25
4. Decir si es verdadera o falsa la siguiente afirmacion. En caso de que sea verdadera demostrarlo
y en caso de que sea falsa dar un contraejemplo o su valor correcto:
El codigo en MATLAB/Octave para generar 100 valores de una v.a Gompertz generalizada
con funci
on de distribuci
on
1 exp ( exp (x)) 0 < x
F (x) =
0
resto
es
>> x=rand(100,1);
>> g=-log(1-x); % log es logaritmo neperiano
X Es falsa. Para generar una v.a. continua cuya funcion de distribucion admita inversa,
se considera
F (x) = u
con u U (0, 1) y se despeja la x. Por lo que
F (x) = 1 exp ( exp (x)) = u
1 u = exp ( exp (x))
ln (1 u) = exp (x)
x = ln ( ln (1 u))
Por tanto el c
odigo en MATLAB sera:
>> u=rand(1000,1);
>> x=log(-log(1-u));
Variables aleatorias
Ejercicio 2 (2.5 puntos)
Sea p = P (S = s) una funci
on de probabilidad definida para el espacio de sucesos S = {1, 2, 3, 4, 5}
con las siguientes probabilidades
S
p
1
0.3
2
0.2
3
0.2
4
0.2
5
0.1
a) Genera en MATLAB/Octave dos variables aleatorias independientes (x1 y x2) con funci
on
de probabilidad p. Que valores aproximados deberan dar la media y la varianza de x1 y x2?
b) Calcula mediante simulaci
on en MATLAB/Octave la probabilidad P (X1 = X2 ). A que resultado te
orico se aproximado debera parecerse el resultado obtenido? Justifica tu respuesta.
c) Comprueba mediante una tabla de frecuencias y graficamente mediante un diagrama de barras
que la generaci
on de X1 y X2 es correcta. Explica los resultados obtenidos.
Ejercicio 3 (2.5 puntos)
Utiliza el metodo de la transformacion inversa de la funcion de distribucion para generar una
variable aleatoria continua cuya funci
on de densidad sea
0
resto
f (x) =
1
0<x<6
18 x
Grado de Telecomunicaciones - Estadistica (2009-2010), PRACTICA 2. PROBABILIDAD Y V.As
10
b) Escribe el PSEUDOCODIGO
para generar n
umeros aleatorios de la variable aleatoria X.
c) Escribe el c
odigo MATLAB/Octave que genera las variables aleatorias de X mediante el
metodo de la transformaci
on inversa.
d) Calcula analticamente E[X] y Var[X]. Como se podra comprobar que se ha generado de
forma correcta la v.a. X en el apartado anterior?
Ejercicio 4 (2.5 puntos)
Sea X una variable aleatoria cuya funcion de densidad f (x) viene dada por
x exp 2 x2 x > 0
f (x) =
0
resto
a) Como generaras la variable aleatoria X? Justifica tu respuesta.
b) Indica el c
odigo de MATLAB/Octave para generar n valores X con = 0, 15. Justifica tu
respuesta.
c) Sabiendo que la variable aleatoria anterior tiene media y varianza dadas por
r
4
y 2 = Var [X] =
= E [X] =
2
2
Como se podra comprobar que se ha generado de forma correcta la v.a. X en el apartado
anterior?
11