Ajustando Distribuciones a los Datos. Prof. Mariela J. Curiel H. Enero, 2009 (por incluir la bibliografía) M. Curiel Técnicas para ajustar una distribución teórica Establecer una Hipótesis acerca de la Distribución. Análisis Exploratorio de los Datos Calcular el(los) parámetros: Maximunlikelihood estimators (MLE) Determinar cuán representativa es la distribución escogida: Métodos Gráficos: qqplots, p-pplots, Otro tests: chi-cuadrado, kolmogorov-Smirnov, Anderson-Darling. M. Curiel 1 Distribuciones Empíricas read read read write write write write write write seek P(read)= 0.3 P(write)= 0.6 P(seek)=0.1 F(read)=0.3 F(write) = 0.9 F(seek) = 1 Simulación F(x) 1 3/4 2/4 1/4 D = R(0,1) If D <= 0.3 then read If D <= 0.9 then write Else seek M. Curiel X(1) X(2) X(3) X(4) X(5) Técnicas para ajustar una distribución teórica: Hipótesis Ver qué fenómenos modela usualmente una distribución: Ejm. Tiempos entre llegadas, tiempo para que falle la pieza de un equipo, tiempos de servicio en el CPU (exponencial). Errores de varios tipos (Normal), etc. Valores posibles de lo que se modela, ejm. Tiempos de servicio no son negativos, por lo tanto no se puede usar una distribución normal. Histogramas M. Curiel 2 Distribuciones Teóricas: Hipótesis quantile Depth Sample value(s) Midpoint Median i = (n+1)/2 Xi Xi Quartiles j = (|i| + 1)/2 Xj X(n-j+1) (Xj + X(n-j+1))/2 Octiles Extremes k= (|j| + 1)/2 Xk 1 X1 X(n-k+1) (Xk + X(n-k+1))/2 Xn (X1 + Xn)/2 -Si la distribución es simétrica los 4 puntos medios deberían ser aproximadamente iguales. -Si la distribución es sesgada a la derecha (izquierda) los 4 puntos M. Curiel medios (de arriba hacia abajo) deberían ir creciendo (decreciendo) Otros Estadísticos de Interés CV: cv = 1 (o cercano a 1) sugiere una distribución exponencial. Para las distribuciones Gamma o Weibull, cv es mayor, igual o menor que uno, si el parámetro shape es menor, igual o mayor que 1, respectivamente. Skewness (v): es una medida de la simetría de la distribución. Para distribuciones simétricas como la normal, v=0, si v>0, la distribución es sesgada a la derecha (v=2 para la distribución exponencial). Si v < 0 la distribución es sesgada a la izquierda. M. Curiel 3 M. Curiel Determinar la distribución de los datos Cómo se puede saber si los datos se ajustan a una distribución teórica conocida? HISTOGRAMAS Un histograma es una estimación gráfica de la función de densidad que corresponde a un conjunto de datos: X1, X2, ...Xn. Es una distribución empírica de los datos Para hacer un histograma se dividen los datos en intervalos disjuntos, los cuales deberían tener el mismo ancho. M. Curiel 4 Determinar la distribución de los datos Después se compara el histograma con funciones de densidad conocidas a fin de determinar qué funciones se asemejan al histograma construido. 4.8 3.9 4.3 5.6 2.3 3.9 4.2 5.5 6.8 La altura cuenta las unidades en cada clase. 8.2 1.1 2.2 3.0 4.1 5.5 6.7 7.0 8.0 9.1 10.9 12 [1,2) [2,3) .... [12,13) M. Curiel Número de Clases Regla empírica: entre 5 y 15 Regla de Sturges k = 1+ log 2 n M. Curiel 5 Determinar la distribución de los datos Si el tamaño del intervalo es 1, el histograma sugiere una función que crece y decrece (normal, beta, etc). Si el tamaño del intervalo es 5 [1,5), [5, 10), [10, 15). El histograma sugiere una función decreciente (exponencial) M. Curiel Determinar la distribución de los datos Variando el tamaño del intervalo 4.8 4.3 4.2 4.1 3.9 3.9 3.0 2.3 2.2 1.1 8.2 8.0 7.0 6.8 6.7 5.6 5.5 5.5 12 10.9 9.1 [1,5) [5,9) [9,13) M. Curiel 6 Histogramas en R Lee un archivo de datos con una sola totall <- scan("tlecturas19.txt") Columna. hist(totall) hist(totall, main=“Histograma de los datos”) Hace el histograma M. Curiel M. Curiel 7 M. Curiel Estimación de los Parámetros Existen varios métodos para la estimación de los parámetros de una distribución, entre ellos: Moment matching method. Método de máxima verosimilitud M. Curiel 8 Estimador de Máxima Verosimilitud La idea detrás de este método, es encontrar aquellos parámetros de la distribución subyacente (la que se plantea en la hipótesis) que dan a los valores de la muestra la probabilidad más alta. A continuación se da la explicación del método para un solo parámetro. M. Curiel Estimador de Máxima Verosimilitud Sea X una variable aleatoria continua o discreta, cuya función de densidad f(x) depende de un único parámetro θ. Supongamos que se observa la variable n veces (se efectúa el experimento n veces) y se obtienen una muestra de n números x1, …..xn. La función de verosimilitud es la probabilidad de observar ciertos valores en la muestra X1, X2, ….Xn, dado que estas variables vienen de una misma distribución. Queremos la probabilidad conjunta de que X1= x1, X2=x2,……Xn=xn. A esta función la llamaremos L. L tiene un parámetro desconocido θ.n M. Curiel 9 Estimador de Máxima Verosimilitud Se puede escribir de la siguiente forma: n L( X 1 , X 2 , K , X n ;θ ) = ∏ f ( X i ;θ ) i =1 Suponiendo que las variables son independientes. Deseamos encontrar la máxima probabilidad, es decir, el máximo valor de la Función. Queremos encontrar el valor de theta, para el que el valor de L sea lo mas grande posible. La verosimilitud de un conjunto de datos, es la probabilidad de obtener esos datos, dado que se ha elegido un determinado modelo de probabilidades teórico. Si L es una función derivable en theta, entonces la condición necesaria para que tenga un máximo, es que la primera derivada con respecto a theta sea 0. M. Curiel Estimador de Máxima Verosimilitud Se puede escribir de la siguiente forma: n L( X 1 , X 2 , K , X n ;θ ) = ∏ f ( X i ;θ ) i =1 Suponiendo que las variables son independientes. Si f(x) es no-negativa un máximo de L será positivo. Como el logaritmo natural es una función monotonicamente creciente, tendrá máximos en los puntos en los que L tenga máximo. Es más fácil usar logaritmos porque las sumas se convierten en productos. M. Curiel 10 Estimador de Máxima Verosimilitud Pasos a seguir: Dada una función de distribución f, calcule la función de máxima verosimilitud L. Tome logaritmos de esta expresión. Derive con respecto a theta. Iguale el resultado a cero. Despeje theta Verifique que es un máximo, obteniendo la segunda derivada y chequeando que el valor es negativo. M. Curiel Estimador de Máxima Verosimilitud Ejemplo para la distribución Exponencial: L(X 1, X ln( L ( X n ∑ i=1 2 1, ,L X X 2 n ;θ ) = i=1 ,L X X ⎛ ⎜ ln( 1 θ ) − θ ⎝ n ∏ i n 1 θ e ; θ )]) = ln( − X i θ n 1 ∏ e θ i=1 1 ⎞ ⎟ = n ln( 1 θ ) − θ ⎠ − X i θ ) = n ∑ X i=1 i Diferenciamos con respecto a theta e igualamos a 0 ∂ 1 1 n ln(L) = −n + 2 ∑Xi ∂θ θ θ i=1 n θ M. Curiel = n ∑ i = 1 X i 11 θ=∑ Xi n Un estimador del parámetro de la distribución es el promedio. M. Curiel Estimador de Máxima Verosimilitud Obtenemos que theta es el promedio de las muestras. Nota: la metodología no siempre puede aplicarse. No tiene una forma cerrada o la derivada no se puede obtener usando álgebra sino métodos numéricos. Las distribuciones Gamma, Weibull y Beta son ejemplos de estos casos. M. Curiel 12 Estimador de Máxima Verosimilitud Cómo lo hacemos en R? Tenemos dos formas: 1) mle(), incluido en el paquete stats4 2) fitdistr() incluido en el paquete MASS > library(MASS) fitdistr(lecturas, "log-normal") meanlog sdlog -2.503219229 0.316825460 ( 0.001551761) ( 0.001097261) fitdistr(comentarioss[[2]], "gamma") shape rate 1.00267060 0.24399318 (0.04280851) (0.01335210) > fitdistr(comentarioss[[2]], "weibull") shape scale 1.00054891 4.11036738 (0.02673682) (0.14831511) Warning messages: 1: NaNs produced in: dweibull(x, shape, scale, log) 2: NaNs produced in: dweibull(x, shape, scale, log) M. Curiel Distribución Teórica: Cuán bueno es el ajuste? 1- Procedimientos Gráficos: QQplots- PPplots, etc. 2.- Tests para revisar la bondad del ajuste: Jicuadrado, Kolmogorov Smirnov, AndersonDarling, etc. M. Curiel 13 Cómo se hacen los qq-plots en R? > fitdistr(lecturass, "log-normal") meanlog sdlog -2.379248969 0.215409751 ( 0.012478352) ( 0.008823527) > l2 <- rlnorm(n=298, meanlog=-2.37, sdlog=0.21) > qqplot(l2, lecturass) M. Curiel M. Curiel 14 M. Curiel Distribución Teórica: Cuán bueno es el ajuste? Q-Qplot Consiste en graficar (to plot) los cuantiles teóricos (yi) versus los cuantiles observados (xi). Si las observaciones siguen la distribución teórica, el qqplot debería ser lineal. M. Curiel 15 QQPlot Suponga que yi es el i-ésimo cuantil observado. Si se quiere el iésimo cuantil teórico xi se necesita invertir la función de distribución acumulada. Por ejemplo, si F(x) es la CDF para la distribución supuesta: qi = F(xi) y xi = F-1(qi) Finalmente, se coloca un punto en la posición (xi, yi) del plot. Ejemplo Para las distribuciones que tienen una función inversa, es fácil determinar los cuantiles teóricos. Para otras distribuciones uno puede usar tablas e interpolar valores si es necesario. M. Curiel M. Curiel 16 Otros gráficos P-P plots: en lugar de graficar los X´s uno grafica las probabilidades o cuantiles. El Q-Qplot amplifica las diferencias en las colas y el P-Pplot (válido para variables continuas y discretas) las diferencias en el cuerpo de la distribución. Plot de diferencias de las funciones de distribución: qi = F(xi) ^ F ( x) − F ( x) n M. Curiel Test de Kolmogorov-Smirnov El test de Kolmogorov-Smirnov es un test de ajuste que compara una función de distribución empírica con la función de distribución que suponemos tienen los datos F0.. La Hipótesis Nula H0 es: Los datos siguen F0 Hipótesis Alternativa: Los datos no siguen la distribución especificada. M. Curiel 17 Test de Kolmogorov-Smirnov La idea es la siguiente: si la hipótesis es correcta, entonces la función de distribución empírica de la muestra debe parecerse a la función . La función de distribución empírica es la función que va de en , y que toma los valores: . es la proporción de elementos de la muestra que son M. Curiel menores o iguales a x . 1 Dn- 3/4 F0 (x4) (X(3)) 1/2 Dn+ 1/4 X(1) X(2) X(3) X(4) M. Curiel 18 Test de Kolmogorov-Smirnov Para calcularla basta evaluar la diferencia entre puntos . y en los ⎧i i −1 ⎫ Dn = max⎨ − F0 ( Xi ) , F0 ( Xi ) − ⎬ 1≤i≤n n n ⎩ ⎭ Dn- Dn+ Caso 1: todos los parámetros son conocidos Caso 2: Distribución Normal Caso 3: Distribucion Exponencial Caso 4: Weibull M. Curiel Test de Kolmogorov-Smirnov Caso 3: se rechaza Ho si: 0.2 ⎞⎛ 0.5 ⎞ " ⎛ 0 . 26 + + D − n ⎜ ⎟ > c1−α ⎜ n ⎟ n ⎠⎝ n⎠ ⎝ > ks.test(comentarioss[[2]], "pgamma", shape=1.00, rate=0.24) One-sample Kolmogorov-Smirnov test data: comentarioss[[2]] D = 0.0269, p-value = 0.5702 alternative hypothesis: two-sided M. Curiel 19 Test de Kolmogorov-Smirnov > ks.test(comentarioss[[2]], "plnorm", meanlog=0.83, sdlog=1.27) One-sample Kolmogorov-Smirnov test data: comentarioss[[2]] D = 0.0711, p-value = 0.0003684 alternative hypothesis: two-sided Ho se acepta si el p-valor es mayor que un nivel de significancia de al menos el 5% (0.05) Otras funciones a revisar: goodfit (library vcd), ad.test (test de Anderson Darling Librería nortest) M. Curiel Test de Kolmogorov-Smirnov Algunas desventajas: La forma original del test sólo podía aplicarse si se conocían los parámetros de la distribución, i.e. los parámetros no podían ser estimados de los datos. Más recientemente, sí se permite la estimación de los parámetros para algunas distribuciones como la lognormal, lormal, exponencial, Weibull y log-logistic. Da el mismo peso a todas las diferencias sin importar si es el cuerpo o en la cola de la distribución y en algunos casos las principales diferencias están en las colas. M. Curiel 20 Test de Kolmogorov-Smirnov Algunas desventajas: Dado que la distribución tienen que estar completamente especificada y por darle igual peso a todas las diferencias, muchas veces se prefiere el Test Anderson-Darling. Sólo se puede aplicar a determinadas distribuciones: normal, log-normal, exponencial, weibull. M. Curiel R S Datos Reales ExpertFit: shape= 1.21, scale= 6.35 (es el tercer mejor modelo, el primero es Beta) Datos Sintéticos ExpertFit: shape=0.96, scale=5.19 (es el segundo mejor modelo) M. Curiel 21 Otras Formas de Ajustar Distribuciones a los Datos ExpertFit EasyFit No se trata de software libre, no resuelve distribuciones mixtas, puede estar limitado respecto al número de datos que maneja. M. Curiel Bibliografía Daniel Menascé. Virgilio Almeida. Larry W. Dowdy. Capacity Planning and Performance Modeling. Prentice Hall, 1994. Raj Jain. The Art of Computer Systems Performance Analysis, Wiley, 1991. Averill M. Law y David Kelton. Simulation Modelling and Analysis. Mc. Graw Hill.2000 Apuntes del curso análisis de datos II de la Prof. Ma. Eglee Pérez. Material on-line del libro: Evaluación y Modelado del Rendimiento de Sistemas Informáticos. Juiz, Molero, Rodeño M. Curiel 22