Main Content

chi2gof

Prueba de bondad de ajuste de chi-cuadrado

Descripción

ejemplo

h = chi2gof(x) devuelve una decisión de prueba para la hipótesis nula de que los datos del vector x proceden de una distribución normal con una media y una varianza estimadas a partir de x, usando la prueba de bondad de ajuste de chi-cuadrado. La hipótesis alternativa es que los datos no proceden de dicha distribución. El resultado h es 1 si la prueba rechaza la hipótesis nula al nivel de significación del 5%, y 0 en el caso contrario.

ejemplo

h = chi2gof(x,Name,Value) devuelve una decisión de prueba para la prueba de bondad de ajuste de chi-cuadrado con más opciones especificadas por uno o más argumentos de par nombre-valor. Por ejemplo, puede probar una distribución distinta de la normal o cambiar el nivel de significación de la prueba.

ejemplo

[h,p] = chi2gof(___) también devuelve el valor p, p, de la prueba de hipótesis, usando cualquiera de los argumentos de entrada de las sintaxis anteriores.

ejemplo

[h,p,stats] = chi2gof(___) devuelve también la estructura stats que contiene información sobre la estadística de la prueba.

Ejemplos

contraer todo

Cree un objeto de distribución de probabilidad normal estándar. Genere un vector de datos x usando números aleatorios a partir de la distribución.

pd = makedist('Normal');
rng default;  % for reproducibility
x = random(pd,100,1);

Pruebe la hipótesis nula de que los datos de x proceden de una población con una distribución normal.

h = chi2gof(x)
h = 0

El valor devuelto h = 0 indica que chi2gof no rechaza la hipótesis nula al nivel de significación predeterminado del 5%.

Cree un objeto de distribución de probabilidad normal estándar. Genere un vector de datos x usando números aleatorios a partir de la distribución.

pd = makedist('Normal');
rng default;  % for reproducibility
x = random(pd,100,1);

Pruebe la hipótesis nula de que los datos de x proceden de una población con una distribución normal al nivel de significación del 1%.

[h,p] = chi2gof(x,'Alpha',0.01)
h = 0
p = 0.3775

El valor devuelto h = 0 indica que chi2gof no rechaza la hipótesis nula al nivel de significación del 1%.

Cargue los datos de muestra de la vida útil de bombillas.

load lightbulb

Cree un vector a partir de la primera columna de la matriz de datos, que contiene la vida útil en horas de las bombillas.

x = lightbulb(:,1);

Pruebe la hipótesis nula de que los datos de x proceden de una población con una distribución de Weibull. Utilice fitdist para crear un objeto de distribución de probabilidad con parámetros A y B estimados a partir de los datos.

pd = fitdist(x,'Weibull');
h = chi2gof(x,'CDF',pd)
h = 1

El valor devuelto h = 1 indica que chi2gof rechaza la hipótesis nula al nivel de significación predeterminado del 5%.

Cree seis bins, numerados del 0 al 5, para utilizarlos en la agrupación de datos.

bins = 0:5;

Cree un vector que contenga los recuentos observados para cada bin y calcule el número total de observaciones.

obsCounts = [6 16 10 12 4 2];
n = sum(obsCounts);

Ajuste un objeto de distribución de probabilidad de Poisson a los datos y calcule el recuento previsto para cada bin. Utilice el operador de trasposición .' para transformar bins y obsCounts de vectores fila en vectores columna.

pd = fitdist(bins','Poisson','Frequency',obsCounts');
expCounts = n * pdf(pd,bins);

Pruebe la hipótesis nula de que los datos de obsCounts proceden de una distribución de Poisson con un parámetro lambda igual a lambdaHat.

[h,p,st] = chi2gof(bins,'Ctrs',bins,...
                        'Frequency',obsCounts, ...
                        'Expected',expCounts,...
                        'NParams',1)
h = 0
p = 0.4654
st = struct with fields:
    chi2stat: 2.5550
          df: 3
       edges: [-0.5000 0.5000 1.5000 2.5000 3.5000 5.5000]
           O: [6 16 10 12 6]
           E: [7.0429 13.8041 13.5280 8.8383 6.0284]

El valor devuelto h = 0 indica que chi2gof no rechaza la hipótesis nula al nivel de significación predeterminado del 5%. El vector E contiene los recuentos previstos para cada bin bajo la hipótesis nula y O contiene los recuentos observados para cada bin.

Utilice la función de distribución de probabilidad normcdf como identificador de función en la prueba de bondad de ajuste de chi-cuadrado (chi2gof).

Pruebe la hipótesis nula de que los datos de muestra en el vector de entrada x provienen de una distribución normal con parámetros µ y σ iguales a la media (mean) y la desviación estándar (std) de los datos de muestra, respectivamente.

rng('default') % For reproducibility
x = normrnd(50,5,100,1);
h = chi2gof(x,'cdf',{@normcdf,mean(x),std(x)})
h = 0

El resultado devuelto de h = 0 indica que chi2gof no rechaza la hipótesis nula al nivel de significación predeterminado del 5%.

Argumentos de entrada

contraer todo

Datos de muestra para la prueba de hipótesis, especificados como vector.

Argumentos de par nombre-valor

Especifique pares de argumentos opcionales Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de otros argumentos, pero el orden de los pares no importa.

En versiones anteriores a R2021a, use comas para separar cada nombre y valor y encierre Name entre comillas.

Ejemplo: 'NBins',8,'Alpha',0.01 agrupa los datos en ocho bins y realiza la prueba de hipótesis al nivel de significación del 1%.

Número de bins que se desea utilizar para la agrupación de datos, especificado como el par separado por comas que consta de 'NBins' y un valor entero positivo. Si especifica un valor para NBins, no especifique un valor para Ctrs o Edges.

Ejemplo: 'NBins',8

Tipos de datos: single | double

Centros de bins, especificados como el par separado por comas que consta de 'Ctrs' y un vector de valores centrales para cada bin. Si especifica un valor para Ctrs, no especifique un valor para NBins o Edges.

Ejemplo: 'Ctrs',[1 2 3 4 5]

Tipos de datos: single | double

Bordes de bins, especificados como el par separado por comas que consta de 'Edges' y un vector de valores de borde para cada bin. Si especifica un valor para Edges, no especifique un valor para NBins o Ctrs.

Ejemplo: 'Edges',[-2.5 -1.5 -0.5 0.5 1.5 2.5]

Tipos de datos: single | double

La cdf de la distribución hipotética, especificada como el par separado por comas que consta de 'CDF' y un objeto de distribución de probabilidad, un identificador de función o un arreglo de celdas.

  • Si CDF es un objeto de distribución de probabilidad, los grados de libertad tienen en cuenta si se estiman los parámetros mediante fitdist o si se especifican mediante makedist.

  • Si CDF es un identificador de función, la función de distribución debe tomar x como único argumento.

  • Si CDF es un arreglo de celdas, el primer elemento debe ser un identificador de función y los elementos restantes deben ser valores de parámetros, uno por celda. La función debe tomar x como primer argumento y los demás parámetros del arreglo como argumentos posteriores.

Si especifica un valor para CDF, no especifique un valor para Expected.

Ejemplo: 'CDF',pd_object

Tipos de datos: single | double

Recuentos previstos para cada bin, especificados como el par separado por comas de 'Expected' y un vector de valores no negativos. Si Expected depende de parámetros estimados, utilice NParams para asegurarse de que chi2gof calcula correctamente los grados de libertad. Si especifica un valor para Expected, no especifique un valor para CDF.

Ejemplo: 'Expected',[19.1446 18.3789 12.3224 8.2432 4.1378]

Tipos de datos: single | double

Número de parámetros estimados utilizados para describir la distribución nula, especificado como el par separado por comas que consta de 'NParams' y un valor entero positivo. Este valor ajusta los grados de libertad de la prueba en función del número de parámetros estimados utilizados para calcular la cdf o los recuentos previstos.

El valor predeterminado de NParams depende de cómo se especifique la distribución nula:

  • Si especifica CDF como objeto de distribución de probabilidad, NParams es igual al número de parámetros estimados utilizados para crear el objeto.

  • Si especifica CDF como nombre o identificador de función, el valor predeterminado de NParams es 0.

  • Si especifica CDF como arreglo de celdas, el valor predeterminado de NParams es el número de parámetros del arreglo.

  • Si especifica Expected, el valor predeterminado de NParams es 0.

Ejemplo: 'NParams',1

Tipos de datos: single | double

Recuento mínimo previsto por bin, especificado como el par separado por comas que consta de 'EMin' y un valor entero no negativo. Si el bin situado en el extremo de cualquiera de las dos colas tiene un valor previsto inferior a EMin, se combina con un bin vecino hasta que el recuento en cada bin del extremo sea al menos 5. Si alguno de los bins interiores tiene un recuento inferior a 5, chi2gof muestra una advertencia, pero no combina los bins interiores. En ese caso, debe utilizar menos bins o proporcionar centros o bordes de bins para aumentar los recuentos previstos en todos ellos. Especifique EMin como 0 para evitar la combinación de bins.

Ejemplo: 'EMin',0

Tipos de datos: single | double

Frecuencia de valores de datos, especificada como el par separado por comas que consta de 'Frequency' y un vector de valores enteros no negativos que tiene la misma longitud que el vector x.

Ejemplo: 'Frequency',[20 16 13 10 8]

Tipos de datos: single | double

Nivel de significación de la prueba de hipótesis, especificado como el par separado por comas que consta de 'Alpha' y un valor de escalar en el rango (0,1).

Ejemplo: 'Alpha',0.01

Tipos de datos: single | double

Argumentos de salida

contraer todo

Resultado de la prueba de hipótesis, devuelto como 1 o 0.

  • Si h= 1, esto indica el rechazo de la hipótesis nula al nivel de significación Alpha.

  • Si h= 0, esto indica un error al rechazar la hipótesis nula al nivel de significación Alpha.

Valor p de la prueba, devuelto como un valor de escalar en el rango [0,1]. p es la probabilidad de observar una estadística de prueba tan extrema o más que el valor observado bajo la hipótesis nula. Los valores pequeños de p ponen en duda la validez de la hipótesis nula.

La estadística de la prueba, devuelta como una estructura que contiene lo siguiente:

  • chi2stat: el valor de la estadística de la prueba.

  • df: los grados de libertad de la prueba.

  • edges: vector de bordes de bins tras la agrupación.

  • O: vector de recuentos observados para cada bin.

  • E: vector de recuentos previstos para cada bin.

Más acerca de

contraer todo

Prueba de bondad de ajuste de chi-cuadrado

La prueba de bondad de ajuste de chi-cuadrado determina si una muestra de datos procede de una distribución de probabilidad especificada, con parámetros estimados a partir de los datos.

La prueba agrupa los datos en bins, calcula los recuentos observados y previstos para esos bins y calcula la estadística de la prueba de chi-cuadrado

χ2=i=1N(OiEi)2/Ei,

donde Oi son los recuentos observados y Ei son los recuentos previstos basados en la distribución hipotética. La estadística de prueba tiene una distribución chi-cuadrado aproximada cuando los recuentos son lo suficientemente grandes.

Algoritmos

chi2gof compara el valor de la estadística de la prueba con una distribución chi-cuadrado con grados de libertad iguales a nbins - 1 - nparams, donde nbins es el número de bins utilizados para agrupar los datos y nparams es el número de parámetros estimados que se utilizan para determinar los recuentos previstos. Si no hay suficientes grados de libertad para realizar la prueba, chi2gof devuelve el valor p como NaN.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a