You are on page 1of 11

GRADO de TELECOMUNICACIONES

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))

3. La probabilidad de lluvia en un da es de p = 0,5. Indicar el codigo MATLAB/Octave para


saber cu
al es la probabilidad de que llueva el fin de semana (asumiendo independencia de
lluvia entre das) Compararla con la teorica.
Sea A el suceso llueve en s
abado y B el suceso llueve en domingo, y la probabilidad de
lluvia P (A) = P (B) = 0,5. Por tanto, la probabilidad de que llueva el fin de semana es:
P (A B) = P (A) + P (B) P (A B) = 0,5 + 0,5 0,5 0,5 = 0,75

Grado de Telecomunicaciones - Estadistica (2009-2010), PRACTICA 2. PROBABILIDAD Y V.As

% 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?

Grado de Telecomunicaciones - Estadistica (2009-2010), PRACTICA 2. PROBABILIDAD Y V.As

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 ];

Grado de Telecomunicaciones - Estadistica (2009-2010), PRACTICA 2. PROBABILIDAD Y V.As

5. Finalmente creamos un matriz datos, que contiene en la primera columna el vector


R),
se puede aproximar
M y en la segunda el vector R. Por tanto la probabilidad P (A|
contando las veces que R=0 y M=1, para ello utilizamos en comando find.
>> datos = [ M R ];
>> AIKON = datos(find(datos(:,2)==0));
% finalmente con tabulate
>> tabulate(AIKON)
Value
0
1

Count
5631
309

Percent
94.80%
5.20%

R)
0, 949, en nuestro caso hemos obtenido 0.9480.
Obtenemos P (A|

Grado de Telecomunicaciones - Estadistica (2009-2010), PRACTICA 2. PROBABILIDAD Y V.As

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 de filas y columnas a generar.


donde m y n, son respectivamente en nA
Ejemplos:
1. Genera 100 datos de la distribucion uniforme contnua U(0, 1).
>> x=rand(100,1)

o x=unifrnd(0,1,100,1)

2. Genera con MATLAB/Octave, 5 lanzamientos de un dado.


>> x=unidrnd(6,5,1)

% generamos los 5 lanzamientos


% a partir de una unif. discreta entre 1 y 6

% otra manera:
>> u=rand(6,1)
>> x=floor(6*u+1)

3. Genera con MATLAB/Octave, 5 lanzamientos de 3 dados.


>> x=unidrnd(6,5,3)

% generamos los 5 lanzamientos de los 3 dados


% a partir de una uniforme discreta entre 1 y 6

% otra manera:
>> u=rand(5,3)
>> x=floor(6*u+1)

2.2.

Generaci
on de variables aleatorias

1. Supongamos el experimento del lanzamiento de dos monedas. Sea X, la variable aleatoria


n
umero de cruces. Determina con MATLAB/Octave la funcion de probabilidad de X.

Grado de Telecomunicaciones - Estadistica (2009-2010), PRACTICA 2. PROBABILIDAD Y V.As

>> 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;

% generamos los n lanzamientos de las


% monedas 1 y 2, con probabilidad
% 1/2 de cruz (=1) y de cara (=0)

% x es la suma de las cruces de ambas monedas

>> tabulate(x) % con tabulate, obtenemos la tabla de frecuencias


% absoluta y relativa
Value
0
1
2

Count
2483
5006
2511

Percent
24.83%
50.06%
25.11%

De este modo hemos aproximado la funcion de probabilidad teorica:


p(x) = P (X = x)
>> tab=tabulate(x) % guardamos la tabla en una matriz tab
>> bar(tab(:,3))
% representamos el diagrama de barras de las
% frecuencias relativas
60

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].

Grado de Telecomunicaciones - Estadistica (2009-2010), PRACTICA 2. PROBABILIDAD Y V.As

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

Grado de Telecomunicaciones - Estadistica (2009-2010), PRACTICA 2. PROBABILIDAD Y V.As

a) Por el metodo de la inversa tenemos que considerando la igualdad u = FX (x), tenemos


que para 0 x, se verifica que:
1 e2x = u
1 u = e2x
1
log(1 u) = x
2
Con lo que si generamos u U(0, 1), obtendremos que x f (x). El pseudocodigo sera:
1:
2:
3:
4:

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

En MATLAB, sobre el Command Window:

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

NOTA: El metodo de la inversa permite simular variables aleatorias de manera sencilla


a partir de v.a.s uniformes. En este ejercicio se han simulado v.a.s Exponenciales de
parametro = 2.
b) Dada la funci
on de distribuci
on de X, FX (x), podemos obtener la funcion de densidad
f (x), sabiendo que
dFX (x)
f (x) =
dx
y por tanto:
 2x
2e
x0
f (x) =
0
en otro caso
Z
= E[X] =

xf (x)dx =

1
2



1 2
1
f (x)dx =
= Var[X] =
(x ) f (x)dx =
x
2
4

Grado de Telecomunicaciones - Estadistica (2009-2010), PRACTICA 2. PROBABILIDAD Y V.As

>> mean(x)
>> var(x)

% es aprox. 0.5
% es aprox. 0.25

NOTA: como se indic


o en el apartado anterior, X Exp( = 2), donde E[X] = 1/
2
y Var[X] = 1/ .

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));

Grado de Telecomunicaciones - Estadistica (2009-2010), PRACTICA 2. PROBABILIDAD Y V.As

Ejercicios para entregar


Probabilidad
Ejercicio 1 (2.5 puntos)
Dado el circuito de la figura, formado por los componentes A, B y C, que funcionan de manera
independiente:
B

a) Calcula mediante simulaci


on con MATLAB/Octave, la probabilidad de que el sistema funcione, suponiendo que P (A) = P (B) = P (C) = 0,8. A que valor teorico se aproximar
a la
solucion mediante la simulaci
on? Justifica tu respuesta.
b) Calcula mediante simulaci
on con MATLAB/Octave, la probabilidad de que el sistema funcione, suponiendo que P (A) = 0,08, P (B) = 0,3 y P (C) = 0,1. A que valor teorico se
aproximar
a la soluci
on mediante la simulacion? Justifica tu respuesta.

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

a) Determina analticamente la funcion de distribucion FX (x).

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?

Grado de Telecomunicaciones - Estadistica (2009-2010), PRACTICA 2. PROBABILIDAD Y V.As

11

You might also like