CAP VIII VA_Prueba de Ajuste

download CAP VIII VA_Prueba de Ajuste

of 15

Transcript of CAP VIII VA_Prueba de Ajuste

  • 7/23/2019 CAP VIII VA_Prueba de Ajuste

    1/15

    Ing. Alcides Ramos Calcina

    E.P. DE INGENIERA METALURGICAPROGRAMACIN Y SIMULACIN DE PROCESOS METALRGICOS

    GENERACIN DE VARIABLES ALEATORIASPRUEBAS DE BONDAD DE AJUSTE

    INTRODUCCIN

    Las pruebas de bondad de ajuste consisten en comprobar grficamente y

    estadsticamente si la frecuencia emprica de la serie analizada se ajusta a una

    determinada funcin de probabilidad terica seleccionada a priori, con los parmetros

    estimados en base a los valores muestrales.

    Las pruebas estadsticas, tienen por objeto medir la certidumbre que se obtiene al hacer

    una hiptesis estadstica sobre una poblacin, es decir, califica el hecho de suponer que

    una variable aleatoria se distribuya segn una cierta funcin de probabilidades.

    Las pruebas que se consideran son:

    Ajuste grfico

    Ajuste estadstico: Ji-cuadrado de K. Pearson

    Kolmogorov Smirnov.

    La prueba Ji cuadrado conviene tanto para distribuciones continuas como para discretas,

    mientras que la prueba Kolmogorov-Smirnov slo sirve para distribuciones continuas.

    1.1. Ajuste Grfico

    El ajuste grfico se puede realizar comparando grficamente el histograma ofuncin de densidad emprica de la serie de datos, con funcin densidad terica y

    decidir visualmente, si hay o no ajuste de acuerdo a la similitud o diferencia de

    ambos; as mismo, podemos comparar la funcin acumulada con la funcin

    acumulada terica seleccionada.

    Ejemplo 1:

    Da la serie histrica de caudales medios anuales en m3/s, que corresponde a un

    registro de 38 aos.

  • 7/23/2019 CAP VIII VA_Prueba de Ajuste

    2/15

    Ing. Alcides Ramos Calcina

    121,3 26,7 110,1 63,4 162,1 144,7 137,1

    144,9 92,8 95,6 76,3 97,2 109,2 32,9

    142,4 58,8 48,8 52,3 52,5 48,5

    205,8 57,4 148,3 36,3 165,6 59,6

    114,5 79,0 67,5 88,0 64,2 40,372,5 76,9 70,0 122,4 110,2 112,2

    Realice la prueba de bondad de ajuste grafico para ver si los datos se ajustan a una

    distribucin normal.

    Matlab

    Primeramente, ingresamos la serie de datos en Excel (en una columna, solamente

    datos sin rotulo) y almacnela con formato tipo texto delimitado con tabulaciones.

    Elija algn nombre. Por ejemplo datos.txt

    En la ventana de comandos de Matlab cargue el archivo datos.txty sela como un

    vector:

    >> load datos.txt

    Realizamos el histograma (grfico 1) para la serie histrica de caudales:

    >> hist(datos)

    >> title('HISTOGRAMA DE LA SERIE HISTRICA')

    Grfico 1:Histograma.

    0 50 100 150 200 2500

    1

    2

    3

    4

    5

    6

    7

    8HISTOGRAMA DE LA SERIE HISTRICA

  • 7/23/2019 CAP VIII VA_Prueba de Ajuste

    3/15

    Ing. Alcides Ramos Calcina

    Por lo cual establecemos la siguiente hiptesis:

    Ho: La serie se ajusta a una distribucin Normal

    H1: Otra distribucin

    Ahora ejecutamos el m-ficheroque grafica la funcin de densidad y acumulada.

    >> ajus_g(datos)

    ajus_g.m

    %AJUSTE GRAFICO A UNA NORMALfunction ajus_g(y)mu=mean(y);sig=sqrt(var(y));

    xord=sort(y);%Funcion de probabilidad PDFx=[-4:0.211:4];y2=normpdf(x); %PDF tericoz=(xord-mu)/sig; %Estadarizacin de la seriey1=(1/sqrt(2*pi))*exp(-(z.^2)/2); %PDF empiricosubplot(2,1,1); plot(x,y2,'-.',z,y1,'-+');legend({'Distr. Terica' 'Distr. Emprica'},1)title('DISTRIBUCIN DENSIDAD NORMAL TEORICA VS EMPIRICA')

    xlabel('X')ylabel('f(x)')%Funcion de distribucin CDFy3=normcdf(x); % CDF tericoy4=normcdf(z); % CDF empiricosubplot(2,1,2); plot(x,y3,'-.',z,y4,'-+');legend({'Distr. Terica' 'Distr. Emprica'},2)title('DISTRIBUCIN ACUMULADA NORMAL TEORICA VSEMPIRICA')

    xlabel('X')ylabel('F(x)')

    Nos muestra los siguientes grficos:

  • 7/23/2019 CAP VIII VA_Prueba de Ajuste

    4/15

    Ing. Alcides Ramos Calcina

    Grfico 2:Ajuste grfico de la funcion densidad y distribucin.

    Tambin podemos realizar directamente un grfico de normalidad a la serie de

    datos con la siguiente funcin en MatLab:

    >> normplot(datos);

    -4 -3 -2 -1 0 1 2 3 40

    0.1

    0.2

    0.3

    0.4

    X

    f(x)

    DISTRIBUCIN DENSIDAD NORMAL TEORICA VS EMPIRICA

    Distr. Terica

    Distr. Emprica

    -4 -3 -2 -1 0 1 2 3 40

    0.2

    0.4

    0.6

    0.8

    1

    X

    F(x)

    DISTRIBUCIN ACUMULADA NORMAL TEORICA VS EMPIRICA

    Distr. Terica

    Distr. Emprica

  • 7/23/2019 CAP VIII VA_Prueba de Ajuste

    5/15

    Ing. Alcides Ramos Calcina

    Grfico 3:Ajuste de probabilidad normal.

    Finalmente realizaremos un grfico de un histograma con campana de Gauss para

    la serie de datos.

    >> histfit(datos);

    >> title('HISTOGRAMA CON CURVA NORMAL');

    Grfico 4.

    50 100 150 200

    0.010.02

    0.05

    0.10

    0.25

    0.50

    0.75

    0.90

    0.95

    0.980.99

    Data

    Probability

    Normal Probability Plot

    -50 0 50 100 150 200 2500

    2

    4

    6

    8

    10

    12HISTOGRAMA CON CURVA NORMAL

  • 7/23/2019 CAP VIII VA_Prueba de Ajuste

    6/15

    Ing. Alcides Ramos Calcina

    Evidentemente se puede observar que los grficos de distribucin densidad y

    acumulada empricos se ajustan a los grficos de las distribuciones tericas; al

    igual que en el grfico de normalidad los datos se ajustan a la diagonal y por ltimo

    en la grfica del histograma con la curva normal, tambin se observa un ajuste a

    la normal, por lo tanto, podemos concluir que la serie de datos se ajusta a una

    distribucin normal.

    1.2. Ajuste Estadstico

    a) Prueba Chi-cuadrado ( 2 )

    La prueba de ji-cuadrado es la ms comnmente utilizada para verificar la bondad

    de ajuste de la distribucin emprica a una distribucin terica conocida y se basa

    en el clculo de las frecuencias, tanto de valores observados, como valoresesperados, para un nmero determinado de intervalos. Esta prueba fue propuesta

    por Kart Pearson en 1900.

    La expresin general de la prueba Ji-cuadrado se escribe como:

    2k2 i ic

    i 1 i

    ( e )x

    e

    (1)

    Donde:

    k k

    i i

    i 1 i 1

    e n

    , i = 1, 2, 3, , k

    2

    cx : valor calculado de ji-cuadrado de los datos

    i : nmero de valores observados en el intervalo de clase iei : nmero de valores esperados del intervalo i

    n : nmero total de observaciones de la muestra

    k : nmero de intervalos de clase en que ha sido agrupada la muestra

    Asignando probabilidades a la ecuacin (1); vale decir, asignando igual

    probabilidad de ocurrencia a cada intervalo de clase, se tiene que:

  • 7/23/2019 CAP VIII VA_Prueba de Ajuste

    7/15

    Ing. Alcides Ramos Calcina

    2k2 i ic

    i 1 i

    (n np )x

    np

    (2)

    Donde:

    ni: nmero de observaciones que caen dentro de los lmites de clases ajustados

    de intervalo i.n : tamao de muestra

    pi : probabilidad igual para todos los intervalos de clase

    i i i

    1p , e n.p

    k

    Procedimiento de clculo

    El procedimiento seguido para comprobar la bondad de ajuste mediante la prueba

    Ji-cuadrado es:

    a) Planteamiento de Hiptesis

    H0: i= ei(frecuencia observada es igual a las esperadas)Ha: iei(frecuencia observada es diferente a las esperadas)

    b)

    Seleccionar el nivel de significancia:= 0.05.

    c) Calcular el valor de Ji-cuadrado calculado (2

    cx ) utilizando las ecuaciones (1)

    (2), las cuales estn implementadas en una funcin de Matlab del siguiente

    modo:

    La funcin CHI2GOFrealiza la prueba chi-cuadrado de bondad de ajuste paradistribuciones discretas o continuas.

    Si en el resultado H = 0, nos indica que la hiptesis nula (que X es una muestra

    aleatoria de una distribucin normal) no puede ser rechazada al nivel de

    significacin del 5%, y si H = 1, nos indica que la hiptesis nula puede ser

    rechazada al nivel del 5%.

    Tambin devuelve el valor de P. Que es el valor de probabilidad (p-value)

    asociado al estadstico.

    Y la estructura STATS devuelve los siguientes campos:

  • 7/23/2019 CAP VIII VA_Prueba de Ajuste

    8/15

    Ing. Alcides Ramos Calcina

    chi2stat: Estadstico Chi-cuadrado

    df: Grados de libertad

    edges: Vector de intervalos

    O: Valores observados en cada intervalo

    E: Valores esperados en cada intervalo

    d)

    Determinar el valor de Ji-cuadrado de la tabla (2

    tx ) con:

    : 0.05g.l. : k-1-h

    donde:

    g.l. : grados de libertad

    k : nmero de intervalos de claseh : nmero de parmetros a estimar

    as h = 2, para distribucin normal

    h = 3, para la distribucin log-normal de 3 parmetros

    e) Criterio de decisin

    El criterio de decisin se fundamenta en la compasin del valor calculado de

    ji-cuadrado con el valor tabular encontrado, esto es:

    -

    Si2

    cx 2

    tx , se acepta la hiptesis de que los datos se ajustan a la

    distribucin elegida.

    - Si2

    cx >2

    tx , se rechaza la hiptesis de que los datos se ajustan a la

    distribucin elegida, por lo tanto, es necesario probar con otra distribucin

    terica.

    Ventajas y Limitaciones

    a) Es aplicable slo para ajustes a la distribucin normal, puesto que ha sido

    desarrollado en base a datos normales e independientes.

    b) Es realizada en la funcin densidad de datos agrupados en intervalos de

    clases.

    c) Requiere un conocimiento a priori de la funcin de distribucin terica

    utilizada en el ajuste.

    d) En la prctica se usa para cualquier modelo de ajuste, pero estrictamente

    es vlido solo para la normal.e) Es de fcil aplicacin

  • 7/23/2019 CAP VIII VA_Prueba de Ajuste

    9/15

    Ing. Alcides Ramos Calcina

    Ejemplo 2:

    Vamos a generar un vector X de 100 variables uniformes independientemente

    distribuidas al azar en el intervalo [0, 1].

    >> X=rand(100,1);

    El parmetro (100, 1) significa que generamos una matriz 1001 de variables

    aleatorias uniformes.

    Vamos a probar si el vector X proviene de la distribucin U[0,1] usando la prueba

    de bondad de ajuste implementada en Matlab:

    >> [H,P,STATS]=chi2gof(X,'cdf',@(z)unifcdf(z,0,1),'edges',0:0.2:1)

    H =

    0

    P =

    0.8614

    STATS =

    chi2stat: 1.3000

    df: 4

    edges: [0 0.2000 0.4000 0.6000 0.8000 1]

    O: [20 18 17 22 23]

    E: [20 20 20.0000 20.0000 20.0000]

    De acuerdo a los resultados, aceptamos la hiptesis nula H0:X= U[0,1] teniendo

    por defecto el nivel de significancia = 0.05 ya que el valor de p = 0.8614 esmayor que . El Parmetro 'cdf' hace uso de @ especificando completamente ac.d.f.

    Por ejemplo, para comprobar si los datos provienen deN(3, 5) usaramos:

    @(z)normcdf(z,3,5)

    o para probar la distribucin de Poisson Poi(=4) se usara:

    @(z)poisscdf(z,4)

  • 7/23/2019 CAP VIII VA_Prueba de Ajuste

    10/15

    Ing. Alcides Ramos Calcina

    Ejemplo 3:

    Un estudio del comportamiento del tiempo entre roturas de cierto filamento,

    medido en minutos/rotura, se muestra a continuacin:

    4.33 1.61 2.16 2.88 0.70 0.44 1.59 2.15 8.59 7.369.97 7.86 5.49 0.98 4.52 2.12 4.44 0.82 6.69 3.04

    2.81 14.39 3.44 9.92 4.38 8.04 2.18 6.19 4.48 9.66

    4.34 1.76 2.30 5.24 11.65 10.92 12.16 6.60 0.85 4.82

    1.36 3.53 6.58 1.45 8.42 3.69 2.44 0.28 1.90 2.89

    Haciendo uso de la funcin chi2gof, realice la prueba de chi-cuadradocon un nivel

    de significancia del 5% ( = 0.05) para saber si los datos se ajustan a unadistribucin normal.

    Planteamos la siguiente hiptesis para la variable X: tiempo entre roturas.

    Ho: XN(, 2)Ha: X no es normal

    Antes de realizar la prueba, se procede los siguientes clculos:

    >> load tiempo.txt>> R=max(tiempo)-min(tiempo)

    R =

    14.1100

    >> K=1+3.3*log10(length(tiempo))

    K =

    6.6066

    >> C=R/7

    C =

    2.0157

    Ahora realizamos la prueba, sabiendo que el valor mximo y mnimos son 14.39

    y 0.28 respectivamente con un ancho de clase C = 2.016.

  • 7/23/2019 CAP VIII VA_Prueba de Ajuste

    11/15

    Ing. Alcides Ramos Calcina

    >> [H,P,STATS]=chi2gof(tiempo,'cdf',@(z)normcdf(z,mu,sig),

    'edges', 0.28:2.016:14.4)

    H =

    0

    P =

    0.6125

    STATS =

    chi2stat: 2.6810

    df: 4

    edges: [0.2800 2.2960 4.3120 6.3280 8.3440 14.3920]

    O: [16 9 10 6 9]E: [12.1447 10.4817 11.2082 8.6628 7.5025]

    De los resultados observamos que el valor de probabilidad asociado al estadstico

    Chi-cuadrado P = 0.6125 > = 0.05, por tanto, se acepta la hiptesis nula Ho. Esdecir, los datos se ajustan a la distribucin normal, con un nivel de significancia

    de 5% de probabilidad.

    b) Prueba De Kolmogorov-Smirnov (Ks)

    La prueba de ajuste de Kolmogorov-Smirnov consiste en comparar las diferencias

    existentes entre la probabilidad de los datos agrupados y la probabilidad ajustada,

    tomando la distancia ms grande entre el valor observado y la recta del modelo,

    vale decir:

    mx F(x) P(x) (3)

    Donde:

    : es el estadstico de Kolmogorov-Smirnov, cuyo valor es igual a ladiferencia mxima existente entre la probabilidad ajustada y la

    probabilidad emprica.

    F(x) : probabilidad de la distribucin de ajuste.

    P(x) : probabilidad de los datos no agrupados, denominado tambin

    frecuencia acumulada.

    El estadstico tiene una distribucin muestral. Si 0es un valor crtico para unvalor seleccionado, se tiene que:

  • 7/23/2019 CAP VIII VA_Prueba de Ajuste

    12/15

    Ing. Alcides Ramos Calcina

    0 0P mx F(x) P(x) P( ) (4)

    Tambin:

    0P( ) 1 (5)

    Ventajas y limitaciones

    a)

    No requiere un conocimiento a priori de la funcin de distribucin terica.

    b)

    Es aplicable a distribuciones de datos no agrupados, vale decir no se requiere

    hacer intervalos de clase.

    c)

    Es aplicable a cualquier distribucin terica.

    d)

    Se aplica en la funcin de distribucin acumulada y no en la funcin de

    densidad.

    e)

    Comparndola con la prueba Ji-cuadrado, no requiere que la frecuenciaabsoluta de cada clase, sea igual o mayor que 5.

    f)

    No es una prueba exacta, sino una prueba aproximada.

    Ajuste con Matlab

    H = kstest (x)lleva a cabo la prueba de Kolmogorov-Smirnov para comparar

    si los valores en el vector de datos X tienen distribucin normal estndar u otra

    distribucin.

    Ejemplo 5:

    Se tiene el comportamiento del tiempo entre roturas de cierto filamento del Ejemplo

    3. Realice la prueba de bondad de ajuste de Kolmogorov-Smirnov, para ver si la

    serie se ajusta a una distribucin normal.

    Planteamos la siguiente hiptesis:

    Ho: XN(, 2)Ha: X no es normal

    Haciendo uso de la funcin kstest, realice la prueba de bondad de ajuste de losdatos del ejercicio 3.28.

    Previamente debe cargarse el archivo tiempo.txt.

    >> load tiempo.txt

    >> mu=mean(tiempo);>> sig=std(tiempo);

  • 7/23/2019 CAP VIII VA_Prueba de Ajuste

    13/15

    Ing. Alcides Ramos Calcina

    >> CDFt=normcdf(tiempo,mu,sig);

    A continuacin, realizamos la prueba KS, para lo cual en la ventana de comandos

    escribimos:

    >> [H,P,KSSTAT,CV]=kstest(tiempo,[tiempo,CDFt],0.05)

    H =

    0

    P =

    0.2294

    KSSTAT =

    0.1438

    CV =

    0.1884

    Aceptamos H0ya que el valor de probabilidad asociado al estadstico KS (p-value)

    P = 0.2294 > = 0.05. CV es el valor crtico, de tal manera que se rechaza H0siKSSTAT > CV; en nuestro caso KSSTAT < CV, es decir, los datos distribuyen

    normalmente.

    Ejemplo 6:

    Dada la serie histrica de caudales medios anuales en m3/s, que corresponden a un

    registro de 50 aos para el ro Santa (Per).

    95,05 108,75 132,49 158,48 193,78

    98,13 110,77 134,1 162,29 193,88

    100,18 114,31 136,22 164,35 197,58101,66 116,69 144,22 169,18 207,78

    101,76 119,52 145,79 169,64 208,18

    105,21 123 146,08 177 212,48

    105,81 123,22 153,64 182,53 217,52

    106,4 124,31 153,97 183,11 239,07

    107,43 127,82 154,8 183,49 256,62

    107,62 128,15 156,8 184,98 266,54

  • 7/23/2019 CAP VIII VA_Prueba de Ajuste

    14/15

    Ing. Alcides Ramos Calcina

    Averiguar si los datos se ajustan a una distribucin log-normal de 2 parmetros,

    haciendo uso del comando kstest

    Creamos el archivo archivo caudal.txt,como se hizo anteriormente y lo cargamos

    a travs de:

    >> load caudal.txt

    >> y=caudal;

    Ahora realizamos la prueba KS, para lo cual, en la ventana de comandos

    previamente calculamos:

    >> ly=log(y);

    >> mu=mean(ly);

    >> sig=std(ly);>> CDFly=logncdf(y,mu,sig);

    Luego,

    >> [H,P,KSSTAT,CV]=kstest(y,[y,CDFly],0.05)

    H =

    0

    P =

    0.8248

    KSSTAT =

    0.0858

    CV =

    0.1884

    Para graficar, la distribucin terica F(x) frente a la emperica P(x), realizamos lo

    siguiente:

    >> m=[1:n]';

    >> Px=(m./(n+1)); %Distribucin emprica

    >> h=plot(m,Px,m,CDFly,'-+');

    >> legend({'P(x)' 'CDFly'},2)

    >> title('AJUSTE K-S: LOG-NORMAL 2P')

    >> grid on

  • 7/23/2019 CAP VIII VA_Prueba de Ajuste

    15/15

    Ing. Alcides Ramos Calcina

    Grfico 5.

    El valor del estadstico Dt = 0.1884 (Valor critico o Delta tabulado, para un valor

    de N = 50 y nivel de significancia 0.05.

    Como Dc= 0.0858 < Dt= 0.1884, se acepta la hiptesis nula Ho. Por lo tanto, los

    datos se ajustan a la distribucin log normal de 2 parmetros, con un nivel de

    significancia del 5%, lo que se puede corroborar con el grafico 4.9.

    0 5 10 15 20 25 30 35 40 45 500

    0.1

    0.2

    0.3

    0.4

    0.5

    0.6

    0.7

    0.8

    0.9

    1AJUSTE K-S: LOG-NORMAL 2P

    P(x)

    CDFly