1. Generación de mixturas

Anuncio
GUIÓN DE LA PRÁCTICA 3 (2a parte)
1. Generación de mixturas
Las mixturas son funciones de distribución del tipo H = (1 − )F + G. Si ∈ (0, 1) es un
número pequeño, H se puede interpretar como una “perturbación” o “contaminación” del modelo
“central” F .
Cuando G tiene una varianza mucho mayor que F (o una media muy alejada de la de F ), este
modelo genera, con una probabilidad (1 − ), datos del modelo central F y con probabilidad proporciona observaciones que se pueden considerar “atı́picas” (outliers) procedentes de G.
Por supuesto, cuando hay funciones de densidad f y g asociadas a F y G, la correspondiente
mixtura tiene función de densidad h = (1 − )f + g.
Código R para una mixtura de dos normales (o contaminación de un modelo normal):
# GENERACION DE MIXTURAS
mixtura = function(n,p,mu1,mu2,sigma1,sigma2)
{
U = runif(n)
X = rnorm(n,mu1,sigma1)
Ind = U>=p
nI = sum(Ind)
X[Ind] = rnorm(nI,mu2,sigma2)
X
}
Ejercicios
1. Dibujar la función de densidad de la mixtura 0.9 N(0,1) + 0.1 N(15,3).
mu1 = 0 ; mu2 = 15 ; sigma1 = 1 ; sigma2 = 3 ; p = 0.9
x = seq(mu1-3*sigma1,mu2+3*sigma2,0.1)
M = p*dnorm(x,mu1,sigma1) + (1-p)*dnorm(x,mu2,sigma2)
plot(x,M,type="l",lwd="3",col="red")
2. Generar una muestra de tamaño 1000 de una distribución 0,90 N (0, 1) + 0,10 N (15, 3).
3. Estimar la correspondiente función de densidad. Hacer lo mismo para diferentes valores de la
media y la varianza de la distribución “contaminante” y de la proporción de contaminación .
4. Diseñar un pequeño estudio de simulación para analizar el comportamiento de la media muestral
y la mediana muestral bajo un modelo de este tipo. En concreto, aproximar las distribuciones
de ambos estimadores para muestras de tamaño 15, con el modelo indicado en el primer punto.
Por ejemplo,
nMC = 100
n = 15 ; p = 0.9 ; mu1 = 0 ; mu2 = 15 ; sigma1 = 1 ; sigma2 = 3 ;
media = rep(0,nMC) ; mediana = rep(0,nMC)
for (i in 1:nMC){
X = mixtura(n,p,mu1,mu2,sigma1,sigma2)
media[i] = mean(X)
mediana[i] = median(X)
}
layout(matrix(1:4,2,2)) ; layout.show(4)
hist(media)
plot(density(media,kernel="gaussian"))
hist(mediana)
plot(density(mediana,kernel="gaussian"))
2. Comparación de estimadores
Diseñar un estudio de simulación, obteniendo muestras de diferentes tamaños (n = 10, 50, 100)
de la distribución uniforme en [0, θ] para diferentes valores de θ (θ = 1, 2, 10), para comparar los
errores cuadráticos medios (ECM) de los estimadores Tn = 2X̄ y Tn∗ = X(n) . Aunque en este caso es
factible calcular exactamente ambos ECM, se trata de ver cómo podrı́amos actuar para comparar
los estimadores si no los conociéramos (que es una situación muy frecuente en la práctica).
Por ejemplo:
n = 10
theta = 1
nMC = 100
ECM1 = rep(0,nMC) ; ECM2 = rep(0,nMC)
for (i in 1:nMC){
X = runif(n,0,theta)
T1 = 2*mean(X)
T2 = max(X)
ECM1[i] = (T1-theta)^2
ECM2[i] = (T2-theta)^2
}
layout(matrix(1:4,2,2)) ; layout.show(4)
boxplot(ECM1)
boxplot(ECM2)
hist(ECM1)
hist(ECM2)
Descargar