Función MATLAB kstest()
Este tutorial analizará cómo encontrar la decisión de prueba de la hipótesis nula para un conjunto de datos utilizado para verificar si un conjunto de datos proviene de una distribución normal estándar o si no proviene de una distribución normal estándar utilizando la función kstest()
en MATLAB .
Función kstest()
de Matlab
En Matlab, la función kstest()
se usa para encontrar la decisión de prueba de la hipótesis nula para un conjunto de datos que se usa para verificar si un conjunto de datos es de una distribución normal estándar o si no proviene de una normal estándar distribución. La función kstest()
utiliza el algoritmo Kolmogorov Smirnov de una muestra para encontrar la decisión de la prueba.
La sintaxis básica de la función kstest()
se encuentra a continuación.
output = kstest(data)
La salida de la sintaxis anterior puede ser 0 o 1. Si la salida es 0, la función no rechaza la decisión de prueba para la hipótesis nula, y si la salida es 1, significa que la función ha rechazado la decisión de prueba.
Analicemos un ejemplo de calificaciones de exámenes para confirmar la decisión de la prueba de la función kstest()
. Podemos trazar la distribución normal estándar y la distribución acumulativa empírica en un solo gráfico para compararlas y confirmar la decisión de la prueba.
Vea el código de ejemplo y la salida a continuación.
clc
clear
load examgrades
data = grades(:,1);
a = (data-75)/10;
testResult = kstest(a)
cdfplot(a)
hold on
x = linspace(min(a),max(a));
plot(x,normcdf(x,0,1),'r--')
legend('Empirical-CDF','Normal-CDF')
Producción :
testResult =
logical
0
Hemos utilizado el conjunto de datos examgrades
, que ya está en Matlab en el código anterior. Hemos usado una media de 75 y una desviación estándar de 10 para hacer el conjunto de datos de las calificaciones dadas, y lo pasamos dentro de la función kstest()
, que devolvió 0 como valor de decisión de la prueba, lo que significa que la función tiene No se rechazó la decisión de prueba de la hipótesis nula.
Si observamos la imagen de salida anterior, podemos ver que las dos distribuciones están cerca una de la otra, lo que confirma que la decisión de la prueba es precisa. Hemos utilizado la función cdfplot()
para trazar la función de distribución acumulada de los datos y la función normcdf()
para encontrar la distribución normal de los datos dados.
Hemos utilizado la función leyenda()
para añadir leyendas al gráfico para entenderlo fácilmente. Ahora, cambiemos la media de 75 a 85 en el código anterior y verifiquemos el resultado.
Vea el código de ejemplo y la salida a continuación.
clc
clear
load examgrades
data = grades(:,1);
a = (data-85)/10;
testResult = kstest(a)
cdfplot(a)
hold on
x = linspace(min(a),max(a));
plot(x,normcdf(x,0,1),'r--')
legend('Empirical-CDF','Normal-CDF')
Producción :
testResult =
logical
1
En el código anterior, la función kstest()
ha devuelto 1, lo que significa que se rechaza la decisión de la prueba, y también podemos confirmarlo usando la imagen de arriba, que muestra claramente las dos distribuciones y no son iguales entre sí.
También podemos especificar la distribución hipotética mientras encontramos la decisión de prueba usando la matriz de dos columnas. La primera columna contiene los datos y la segunda columna contiene los valores de distribución acumulados o cdf
.
También tenemos que decirle a la función kstest()
al respecto usando el argumento CDF
, como se muestra a continuación.
output = kstest(data,'CDF',cdfOfData)
En el código anterior, el cdfOfData
es una matriz de dos columnas en la que la primera columna son los datos y la segunda columna es el cdf
de esos datos. Podemos encontrar cdf
usando la función cdf()
de Matlab.
También podemos especificar la distribución hipotética usando un objeto de distribución de probabilidad que podemos hacer usando la función makedist()
. Consulte este enlace para obtener más detalles sobre la función makedist()
.
Tenemos que pasar el objeto de distribución dentro de la función kstest()
usando el argumento CDF
, como se muestra a continuación.
output = kstest(data,'CDF',cdfObject)
También podemos encontrar la decisión de la prueba en diferentes niveles significativos utilizando el argumento Alpha
y estableciendo su valor de 0 a 1. La función kstest()
también devolverá un nuevo argumento, p
, que muestra la probabilidad de una decisión de prueba.
A continuación se muestra un ejemplo de la función kstest()
con el argumento Alfa
.
[output, p] = kstest(data,'CDF',cdfObject, 'Alpha', 0.2)
También podemos comprobar la decisión de la prueba utilizando una hipótesis alternativa utilizando el argumento Tail
en el que la función kstest()
devolverá 0 o 1 a favor de la hipótesis alternativa. El valor del argumento Cola
puede ser diferente, mayor o menor.
De forma predeterminada, el valor del argumento Cola
se establece en desigual
, lo que significa que la cdf
de la población y la cdf
de la distribución hipotética no serán iguales. El valor mayor
establece la cdf
de la población mayor que la cdf
de la distribución hipotética, y el valor menor
establece la cdf
de la población menor que la cdf
hipotética.
A continuación se muestra un ejemplo de la función kstest()
con el argumento Tail
.
output = kstest(data, 'Tail', 'larger')
La función kstest()
devuelve cuatro argumentos en total que se muestran en la siguiente sintaxis.
[h,p,ksstat,cv] = kstest(data)
Ya estamos familiarizados con los dos primeros argumentos de la función kstest()
.
El argumento ksstat
contiene valores de escalador no negativos de la estadística de la prueba de hipótesis. El argumento cv
tiene el valor crítico, un escalar no negativo.
Matlab también contiene la función kstest2()
, que se utiliza para probar la decisión de dos vectores utilizando el algoritmo Kolmogorov Smirnov de dos muestras.
Consulte este enlace para obtener más detalles sobre la función kstest()
.