Supongamos que nuestro problema es estimar, para cierto tipo de componentes, la X = ’vida útil’ , pero que la verdadera pregunta de interés es: qué proporción de ellos fallarán en menos de la mitad de su duración media. Para ello, hacemos la hipótesis de que X tenga distribución Gamma(w, λ), que tiene E[X] =w/λ , var(X) =w/λ2 , y cuyos parámetros estimamos ! por el METODO DE LOS MOMENTOS: ! E[X] =w/λ = x̄ λ = x̄/VX , luego , 2 var(X) =w/λ = VX w = x̄2 /VX para luego hallar, bajo esa estimación, la P(X < µX /2). (A) El siguiente código R simula el proceso bajo la hipótesis de que el modelo sea realmente ése, con parámetros w= 7, factor de escala=1 (sin pérdida de generalidad) y compara los resultados con ‘la verdad’... 0.00 0.05 0.10 0.15 > w<-7; # EL MODELO: Gamma con w=E[X] (el factor de escala se toma =1) > b<-qgamma(0.99,w); x<-(1:100)*b/100; fx<-dgamma(x,w); # para la gráfica de f_X > w<-7; # EL MODELO: Gamma con w=E[X] (el factor de escala se toma =1) > pgamma(w/2,w)*100 # P( X < E[X]/2 ), en % : >> b<-qgamma(0.99,w); x<-(1:100)*b/100; fx<-dgamma(x,w); para la gráfica f_X w<-7; # EL MODELO: Gamma con w=E[X] (el factor#de escala se tomade =1) [1] 6.52881 >> pgamma(w/2,w)*100 # P( X < E[X]/2 ),fx<-dgamma(x,w); en % : b<-qgamma(0.99,w); x<-(1:100)*b/100; # para la gráfica de f_X > [1] 6.52881 > pgamma(w/2,w)*100 # P(X P( X<<µ E[X]/2 ),lineas en %que : siguen generan una M.A.S. de tamaño n = 100, ... que> como se ve da un# 6.5 % como /2) . MOMENTOS Las n<-100; LA MUESTRA YX SUS > [1] 6.52881 estiman los parámetros λ, w media<-mean(xi); por ese método y los Vxi<-var(xi)*(1-1/n); usan para estimar la P(X < µX /2). > xi<-rgamma(n,w); >> n<-100; # LA MUESTRA Y SUS MOMENTOS > la<- media/ Vxi; wa<- media*la; la; wa; pgamma(wa/2,wa)*100 # LA ESTIMACION: n<-100; # LA MUESTRA Y SUSVxi<-var(xi)*(1-1/n); MOMENTOS >> xi<-rgamma(n,w); media<-mean(xi); [1] 1.019063 xi<-rgamma(n,w); media<-mean(xi); >> la<media/ Vxi; wa<media*la; la;Vxi<-var(xi)*(1-1/n); wa; pgamma(wa/2,wa)*100 # LA ESTIMACION: [1] 6.98162 > la<media/ Vxi; wa<- media*la; la; wa; pgamma(wa/2,wa)*100 # LA ESTIMACION: [1] 1.019063 [1] 6.558573 [1] 1.019063 [1] 6.98162 > [1] fe<-dgamma(x,wa,la); plot(c(x,b,x),c(fx,min(fe),fe),'l',xlab='',ylab='') [1] 6.98162 6.558573 > >[1] n<-100; # LA MUESTRA Y SUS MOMENTOS 6.558573 fe<-dgamma(x,wa,la); plot(c(x,b,x),c(fx,min(fe),fe),'l',xlab='',ylab='') > >> xi<-rgamma(n,w); media<-mean(xi); fe<-dgamma(x,wa,la); plot(c(x,b,x),c(fx,min(fe),fe),'l',xlab='',ylab='') n<-100; # LA MUESTRA Y SUSVxi<-var(xi)*(1-1/n); MOMENTOS > >> la<media/ Vxi; la;Vxi<-var(xi)*(1-1/n); wa; pgamma(wa/2,wa)*100 # LA ESTIMACION: n<-100; # wa<LA media*la; MUESTRA Y SUS MOMENTOS xi<-rgamma(n,w); media<-mean(xi); [1] 0.8817888 xi<-rgamma(n,w); media<-mean(xi); >> la<media/ Vxi; wa<media*la; la;Vxi<-var(xi)*(1-1/n); wa; pgamma(wa/2,wa)*100 # LA ESTIMACION: [1] 6.461026 > la<media/ Vxi; wa<- media*la; la; wa; pgamma(wa/2,wa)*100 # LA ESTIMACION: [1] 0.8817888 [1] 7.467637 [1] 0.8817888 [1] 6.461026 > [1] fe<-dgamma(x,wa,la); plot(c(x,b,x),c(fx,min(fe),fe),'l',xlab='',ylab='') [1] 6.461026 7.467637 > >[1] 7.467637 fe<-dgamma(x,wa,la); plot(c(x,b,x),c(fx,min(fe),fe),'l',xlab='',ylab='') > >> # fe<-dgamma(x,wa,la); OTRO MODELO, SIN plot(c(x,b,x),c(fx,min(fe),fe),'l',xlab='',ylab='') QUE LO SEPAMOS...: > > c<-7; fy<-dweibull(x,2,c); P( X <a E[X]/2 ), en : > ve, # la simulación OTRO MODELO, QUE pweibull(c/2,2,c)*100 SEPAMOS...: Como se se ha SIN repetido 2LOveces, con resultados bastante #cercanos ‘la verdad’, algo% menos la > # OTRO MODELO, SIN QUE LO SEPAMOS...: [1] 22.11992 c<-7; pweibull(c/2,2,c)*100 # P( X <(laE[X]/2 ), en : segunda> vez, de lafy<-dweibull(x,2,c); que vemos ahora un gráfico: compara las dos funciones de densidad ‘verdadera’ y la%estimada) > c<-7; fy<-dweibull(x,2,c); pweibull(c/2,2,c)*100 # P( X < E[X]/2 ), en % : > [1] xi<-rweibull(n,2,c); media<-mean(xi); Vxi<-var(xi)*(1-1/n); 22.11992 [1] 22.11992 > >la<-media / Vxi; wa<-media*la; la; wa; Vxi<-var(xi)*(1-1/n); pgamma(wa/2,wa)*100 # LA ESTIMACION ERRONEA: xi<-rweibull(n,2,c); media<-mean(xi); xi<-rweibull(n,2,c); media<-mean(xi); >> la<-media la; wa; Vxi<-var(xi)*(1-1/n); pgamma(wa/2,wa)*100 # LA ESTIMACION ERRONEA: [1] 0.6122461 / Vxi; wa<-media*la; > la<-media [1] 0.6122461/ Vxi; wa<-media*la; la; wa; pgamma(wa/2,wa)*100 # LA ESTIMACION ERRONEA: [1] 3.739277 [1] 0.6122461 [1] 3.739277 [1] 15.38061 [1] 3.739277 15.38061 > [1] fe<-dgamma(x,wa,la); plot(c(x,b,x),c(fy,min(fe),fe),'l',xlab='',ylab='') [1] 15.38061 > fe<-dgamma(x,wa,la); plot(c(x,b,x),c(fy,min(fe),fe),'l',xlab='',ylab='') > fe<-dgamma(x,wa,la); plot(c(x,b,x),c(fy,min(fe),fe),'l',xlab='',ylab='') 0 > w<-7; # 5 EL MODELO: Gamma con w=E[X] 10 15 (el factor de escala se toma =1) (B) ahora se repite lox<-(1:100)*b/100; mismo suponiendo fx<-dgamma(x,w); que la verdad es otra: de X > Pero b<-qgamma(0.99,w); # que paralos lavalores gráfica de siguen f_X una Weibull con > exponente n<-100; 2 y media = 7 (como en el caso anterior), pero que la estimación se realiza, ignorando eso, como si >se tratase de una Gamma: > > # OTRO MODELO, SIN QUE LO SEPAMOS...: > c<-7; s<-2*c/sqrt(pi); fy<-dweibull(x,2,s); pweibull(c/2,2,s)*100 # P( X < E[X]/2 ), en % : [1] 17.82750 > ... >y xi<-rweibull(n,2,s); naturalmente ahora la p media<-mean(xi); = P(X < µX /2) es Vxi<-var(xi)*(1-1/n); muy distinta: 17.8 %. > la<-media / Vxi; wa<-media*la; la; wa; pgamma(wa/2,wa)*100 # LA ESTIMACION ERRONEA: [1] 0.6276832 [1] 4.525886 [1] 12.35883 > fe<-dgamma(x,wa,la); plot(c(x,b,x),c(fy,min(fe),fe),'l',xlab='',ylab='') 0.00 0.05 0.10 0.15 > b<-qgamma(0.99,w); x<-(1:100)*b/100; fx<-dgamma(x,w); # para la gráfica de f_X > n<-100; > > > # QUE LOdeSEPAMOS...: El código queOTRO sigueMODELO, repite laSIN operación antes, produce el resultado (en el que naturalmente los ‘parámetros > c<-7;nos<-2*c/sqrt(pi); # peor P( X que < E[X]/2 estimados’ se corresponden confy<-dweibull(x,2,s); nada y la estimación depweibull(c/2,2,s)*100 p es, como cabı́a esperar, mucho antes) y), en % [1] 17.82750 produce un gráfico que compara las dos funciones de densidad (la ‘verdadera’ y la ‘estimada’): > > xi<-rweibull(n,2,s); media<-mean(xi); Vxi<-var(xi)*(1-1/n); > la<-media / Vxi; wa<-media*la; la; wa; pgamma(wa/2,wa)*100 # LA ESTIMACION ERRONEA: [1] 0.6276832 [1] 4.525886 [1] 12.35883 > fe<-dgamma(x,wa,la); plot(c(x,b,x),c(fy,min(fe),fe),'l',xlab='',ylab='') > > 0 5 10 15 (C) Vemos por último, para comparar sus formas, 3 densidades Gamma con distintos w (todas con factor de *** caught bus error *** escala =1), y el código que las produce. address 0x9, cause 'invalid alignment' ylab = "") 0.20 0.25 Traceback: 1: plot.new() 2: plot.default(c(x, b, x), c(fy, min(fe), fe), "l", xlab = "", 3: plot(c(x, b, x), c(fy, min(fe), fe), "l", xlab = "", ylab = "") 0.05 0.10 0.15 Possible actions: 1: abort (with core dump, if enabled) 2: normal R exit 3: exit R without saving workspace 4: exit R saving workspace Selection: Selection: 0.00 Selection: > xi<-rweibull(n,2,c); media<-mean(xi); Vxi<-var(xi)*(1-1/n); > la<-media / Vxi; wa<-media*la; la; wa; pgamma(wa/2,wa)*100 # LA ESTIMACION ERRONEA: [1] 0.7035025 0 5 10 15 [1] 4.072229 [1] 14.00203 Gamma con w = 3, 7, 11 > fe<-dgamma(x,wa,la); plot(c(x,b,x),c(fy,min(fe),fe),'l',xlab='',ylab='') > > # LA 'FORMA' DE LAS Gamma > fxw<- c(dgamma(x,3),0,dgamma(x,7),0,dgamma(x,11)) > plot(c(x,b,x,b,x),fxw,'l',xlab='Gamma con w = 3, 7, 11',ylab='') >