








Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Estadística, Profesor: , Carrera: Ingeniería en Tecnologías de Telecomunicación, Universidad: UC3M
Tipo: Ejercicios
1 / 14
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!









OBJETIVOS: Introducci´on a modelos de probabilidad discretos y cont´ınuos m´as comunes. Caracterizaci´on, representaci´on gr´afica. Resoluci´on mediante simulaci´on con MATLAB/Octave de ejercicios propuestos.
En general, para generar variables aleatorias cont´ınuas utilizaremos el m´etodo de la trans- formaci´on inversa de la funci´on de distribuci´on (siempre que exista inversa). Para el caso de v.a.’s discretas utilizaremos una condici´on booleana. No obstante, MATLAB/Octave dispone de funciones propias para generar variables aleatorias de modelos de probabilidad conocidos.
La siguienta tabla resume algunas de las funciones m´as importantes para la generaci´on de n´ume- ros aleatorios de modelos de probabilidad para variables cont´ınuas y discretas en MATLAB/Octave:
Funci´on Descripci´on Sintaxis normrnd no^ aleatorios N (μ, σ) normrnd(MU,SIGMA,m,n) randn no^ aleatorios N (0, 1) randn(m,n) exprnd no^ aleatorios Exp(λ) exprnd(1/lambda,m,n) binornd no^ aleatorios Bin(n, p) binornd(N,P,m,n) poissrnd no^ aleatorios Poiss(λ) poissrnd(lambda,m,n)
donde m y n son el no^ de filas y columnas a generar, respectivamente.
Recordemos que la distribuci´on Normal tiene como funci´on de densidad:
X ∼ N (μ, σ) : f (x) =
σ
2 π
exp−^
1 2 σ^2 (x−μ) 2 , donde x ∈ R, σ > 0 y μ ∈ R.
%% creamos la funci´on fd_normal.m
function y = fd_normal(x, mu, sigma) for i = 1:length(x) y(i) = exp(-0.5((x(i)-mu)/sigma)^2) / (sigmasqrt(2*pi)); end end
%%
a) Manteniendo σ y variando μ ⇒ Considera 3 distribuciones Normales con desvia- ci´on t´ıpica constante (σ = 1) y con diferentes medias (μ =-1,0,1). ¿C´omo afectan los par´ametros a la forma de la distribuci´on? ¿y a su posici´on en los ejes? b) Mantiendo μ y variando σ ⇒ Considera 3 distribuciones Normales con media cons- tante (μ = 0) y variando la desviaci´on t´ıpica (σ =0.3,0.5,1.2). Analizar c´omo afecta a la forma de la distribuci´on y c´omo afecta a su posici´on en los ejes.
% a)
x = -5:0.01:5; y1 = fd_normal(x,-1,1); % y1 es Normal con media -1 y desv. 1 y2 = fd_normal(x, 0,1); % y2 es Normal con media 0 y desv. 1 y3 = fd_normal(x, 1,1); % y2 es Normal con media +1 y desv. 1
% b)
y4 = fd_normal(x, 0, 0.3); % y4 es Normal con media 0 y desv. 0. y5 = fd_normal(x, 0, 0.5); % y5 es Normal con media 0 y desv. 0. y6 = fd_normal(x, 0, 1.2); % y6 es Normal con media 0 y desv. 1.
Una vez generadas las 6 variables aleatorias normales, vamos a compararlas gr´aficamente usando los comandos subplot^1 , plot, hold on y hold off. (^1) Mediante la funci´on subplot podemos crear varios gr´aficos a la vez. En el ejemplo, subplot(1,2,i), significa que dibujamos en 1 fila y 2 columnas el gr´afico i, con i = 1, 2.
En MATLAB/Octave es posible generar n´umeros aleatorios de una distribuci´on normal (μ, σ), a trav´es de funciones propias de la librer´ıa estad´ıstica stats. As´ı, podemos crear datos normales (n filas y m columnas) de la siguiente manera:
x = normrnd(MU,SIGMA,m,n);
El comando randn permite generar n´umeros aleatorios de una distribuci´on normal est´andar (es decir, de media μ = 0 y σ = 1). A partir de randn, es posible generar n´umeros aleatorios ∼ N (μ, σ) del siguiente modo: sea Z ∼ N (0, 1), podemos obtener X ∼ N (μ, σ), dada la siguiente relaci´on: X = Z · σ + μ
z = randn(m,n); x = z*sigma + mu;
Podemos comprobar que los n´umeros generados son N (μ, σ) representando el histograma:
m = 1000; n = 1; sigma = 0.75; mu = 1; z = randn(m,n); x = z*sigma + mu; hist(x)
-1.5^0 -1 -0.5 0 0.5 1 1.5 2 2.5 3 3.
50
100
150
200
250
300
x = [-3:0.01:3]; mu = 0; sigma = 1; p = normcdf(x,mu,sigma); % p = normcdf(x) proporciona la % f. distr. acum. de una N(0,1). % Su inversa es x = norminv(p,mu,sigma)
plot(x,p) grid on
(^0) -3 -2 -1 0 1 2 3
1
Distribuci´on binomial
La funci´on de probabilidad p(x) de la distribuci´on binomial Bin(n, p) es:
X ∼ Bin(n, p) : p(x) =
n x
px(1 − p)n−x^ donde x = 0, 1 , ..., n y 0 ≤ p < 1.
Siendo n el n´umero de intentos o de ensayos y el par´ametro p la probabilidad de que el suceso ´exito ocurra.
%% creamos la funci´on fp_binomial.m
function y = fp_binomial(x,n,p) for i = 1:length(x) y(i) = (nchoosek(n,x(i)))(p^x(i))((1-p)^(n-x(i))); end end
%%
NOTA: La funci´on nchoosek(n,x) permite calcular
(n x
. Sin embargo, para un tama˜no de n grande, el resultado puede no ser exacto. Por ello, para un tama˜no n grande, emplearemos
% Caso a):
x5 = 0:5 % creamos una secuencia de 0 a 5 y5 = fp_binomial(x5,5,0.2) % llamamos a la funci´on fp_binomial.m sum(y5) % comprobamos que la suma de las probabilidades es 1
x10 = 0:10; y10 = fp_binomial(x10,10,0.2);
x20 = 0:20; y20 = fp_binomial(x20,20,0.2);
% Caso b):
x100 = 0:100;
y1 = fp_binomialN(x100, 100, 0.1); % llamamos a la funci´on y2 = fp_binomialN(x100, 100, 0.5); % fp_binomialN.m y3 = fp_binomialN(x100, 100, 0.8);
Podemos comparar ambos gr´aficos, como vimos en el caso de la distribuci´on Normal.
subplot(1,2,1) plot(x5,y5,’.’, x10,y10, ’+’, x20, y20, ’’); legend(’n=5, p=0.2’, ’n=10, p=0.2’, ’n=20, p=0.2’) subplot(1,2,2) plot(x100, y1, ’.’, x100, y2, ’+’, x100, y3, ’’); legend(’n = 100, p = 0.1’, ’n = 100, p = 0.5’, ’n = 100, p = 0.8’);
(^00 5 10 15 )
0.45 n=5, p=0. n=10, p=0.2n=20, p=0.
(^00 20 40 60 80 )
0.14 n = 100 , p = 0. n = 100 , p = 0.5n = 100 , p = 0.
%% creamos la funci´on na_binomial.m
function y= na_binomial(n_dat, n, p) % ‘n_dat’ es el % no^ de datos binomiales % que se van a generar
prob = rand(n_dat,n); % realizamos ‘n’ experimentos exitos = prob < p; % si se cumple, entonces se ha producido un exito y = sum(exitos); % sumamos todos los ´exitos producidos end
%%
En el Command Window:
% Obtenemos 10 n´umeros binomiales obtenidos de sumar el no % de ´exitos de n intentos con una probabilidad de ´exito p
y = na_binomial(10,n,p)
Num´ericamente, podemos verificar las propiedades de la media y la varianza de la distri- buci´on binomial:
E[X] = n × p Var[X] = n × p × q
n = 10000; p = 0.1; y = na_binomial(10,n,p);
mean(y) % aprox. 1 var(y) % aprox. 0.
donde α y β son par´ametros dados. Indica c´omo generar´ıas en MATLAB/Octave variables aleatorias Weibull.
X Mediante el m´etodo de la inversa, tenemos que considerando u = FX (x),
1 − e(x/β) α = u e(x/β)
α = 1 − u (x/β)α^ = − ln(1 − u) x/β = [− ln(1 − u)] α^1 x = β[− ln(1 − u)] α^1
Por tanto:
n = 1000; % Por ejemplo u = rand(n,1); x = beta*(-log(1-u)).^(1/alpha);
La funci´on Q se define como la complementaria a la funci´on de distribuci´on de la N (0, 1), es decir como Q(x) = P (X > x) siendo X ∼ N (0, 1)
Supongamos una funci´on Q tiene por cotas superiores (cs1) y (cs2) y cota inferior (ci) dadas por
Q(x) ≤
e−^ x 22 para todo x ≥ 0 (cs1)
Q(x) <
2 πx
e−^ x 22 para todo x > 0 (cs2)
Q(x) >
2 πx
x^2
e−^
x^2 (^2) para todo x > 1 (ci)
a) La funci´on de MATLAB normcdf(x,MU,SIGMA) devuelve la funci´on de distribuci´on acumu- lada de una N (μ, σ). ¿C´omo representar´ıas en MATLAB la funci´on Q?
Q = 1 - normcdf(x,0,1)
b) Escribe el c´odigo en MATLAB para representar gr´aficamente la funci´on Q en el intervalo (0, 5] junto con las cotas superiores cs1 y cs2 y la cota inferior ci. El resultado que se ha de obtener ser´a similar al de la figura 1. NOTA: Representa x ∈ (0, 5] como x=[0.01:0.01:5]. Para la cota inferior ci, observa que existe una as´ıntota vertical en x = 1, por tanto, define xi=[1.01:0.01:5] tan s´olo para esta cota. Utiliza una escala logar´ıtmica para representar gr´aficamente las cotas.
x1 = [1.01:0.01:5];
for i = 1:length(x1) ci(i) = (1/x1(i)sqrt(2pi))(1- (1/x1(i)^2))exp(-0.5*x1(i)^2); end
x = [0.01:0.01:5];
for i = 1:length(x) cs1(i) = 0.5exp(-0.5x(i)^2); cs2(i) = (1/(x(i)sqrt(2pi))) * exp(-0.5*x(i)^2); end
q = 1- normcdf(x,0,1);
plot(x, log(q), ‘black’) hold on plot(x, log(cs1), ‘r’) plot(x, log(cs2), ‘g’) plot(x1, log(ci), ‘m’) hold off
-20 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
0
5
(^10) log(q) log(cs1)log(cs2) log(ci)
Figura 1: Representaci´on gr´afica de la funci´on Q con las cotas en escala logar´ıtmica log(cs1), log(cs2) y log(ci). La l´ınea vertical representa la as´ıntota en x = 1.
b) Si se realizan 10 actividades seg´un la v.a. X, calcular, de forma anal´ıtica y con MATLAB/Octave, la probabilidad de que exactamente en tres de ellas, el tiempo que se emplee en realizar cada una sea superior a una hora y media.
a) De forma anal´ıtica, se tiene que:
x=1, 5
f (x) dx =
x=1, 5
(x + 1) dx =
x^2
[x]^21 , 5
Para resolverlo con MATLAB/Octave, hay que utilizar el m´etodo de la inversa, con lo que hay que calcular previamente la funci´on de distribuci´on, que es
F (x) =
∫ 0 x <^0 x 0
1 4 (y^ + 1)^ dy^ =^
1 8 x
4 x^0 ≤^ x <^2 1 2 ≤ x
Y ahora hay que invertir la funci´on de distribuci´on: 1 8
x^2 +
x = u
x^2 + 2x − 8 u = 0
x =
4 + 32u 2 Dada la definici´on de la v.a. X la soluci´on negativa no es v´alida, con lo que el proce- dimiento para generarla es: u ∼ U (0, 1)
x =
4 + 32u 2 El c´odigo MATLAB/Octave para resolver este apartado es:
u = rand(1000,1); x = (-2+sqrt(4+32*u))/2; prob = sum(x>1.5)/1000 % aprox. 0.
b) De forma anal´ıtica, si se define Y como la v.a. “n´umero de actividades entre las 10 realizadas en las que el tiempo que se emplea es superior a una hora y media”, se tiene que Y ∼ Bin
n = 10, p = (^1132)
y hay que calcular
El c´odigo MATLAB/Octave para resolver este apartado es:
u = rand(1000,10); x = (-2+sqrt(4+32*u))/2; conta = (x>1.5); suma = sum(conta,2); prob = sum(suma==3)/1000 % aprox. 0.