Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

testcholdout

Compare las precisiones predictivas de dos modelos de clasificación

Descripción

evalúa estadísticamente las precisiones de dos modelos de clasificación.testcholdout La función compara primero sus etiquetas predichas con las etiquetas verdaderas y, a continuación, detecta si la diferencia entre las tasas de clasificación errónea es estadísticamente significativa.

Puede evaluar si las precisiones de los modelos de clasificación son diferentes o si un modelo de clasificación funciona mejor que otro. puede llevar a cabo varias variaciones, incluyendo la prueba asintótica, la prueba condicional exacta y la prueba de valor medio.testcholdoutPrueba de McNemarp Para, las pruebas disponibles incluyen una prueba de Chi-cuadrado (requiere una licencia) y una prueba de relación de verosimilitud.evaluación de costo-sensibleOptimization Toolbox™

ejemplo

h = testcholdout(YHat1,YHat2,Y) Devuelve la decisión de prueba, realizando el valor medio, desde probar la hipótesis nula que las etiquetas de clase pronosticadas y tienen la misma precisión para predecir las etiquetas de clase verdaderas.pPrueba de McNemarYHat1YHat2Y La hipótesis alternativa es que las etiquetas tienen una precisión desigual.

= indica que se rechaza la hipótesis nula en el nivel de significancia del 5%. = indica que no se rechaza la hipótesis nula al nivel del 5%.h1h0

ejemplo

h = testcholdout(YHat1,YHat2,Y,Name,Value) Devuelve el resultado de la prueba de hipótesis con opciones adicionales especificadas por uno o más argumentos de par.Name,Value Por ejemplo, puede especificar el tipo de hipótesis alternativa, especificar el tipo de prueba o suministrar una matriz de costes.

ejemplo

[h,p,e1,e2] = testcholdout(___) Devuelve el valor-Value para la prueba de hipótesis () y los respectivos de cada conjunto de etiquetas de clase pronosticadas (y) utilizando cualquiera de los argumentos de entrada de las sintaxis anteriores.pppérdida de clasificacióne1e2

Ejemplos

contraer todo

Entrenar dos modelos de clasificación utilizando diferentes algoritmos. Realizar una prueba estadística comparando las tasas de clasificación errónea de los dos modelos en un conjunto retenido.

Cargue el conjunto de datos.ionosphere

load ionosphere

Cree una partición que divida uniformemente los datos en conjuntos de entrenamiento y pruebas.

rng(1);                             % For reproducibility CVP = cvpartition(Y,'holdout',0.5); idxTrain = training(CVP);           % Training-set indices  idxTest = test(CVP);                % Test-set indices

es un objeto de partición de validación cruzada que especifica los conjuntos de entrenamiento y prueba.CVP

Entrena un modelo SVM y un conjunto de 100 árboles de clasificación en bolsas. Para el modelo SVM, especifique si desea utilizar el kernel de la función de base radial y un procedimiento heurístico para determinar la escala del kernel.

MdlSVM = fitcsvm(X(idxTrain,:),Y(idxTrain),'Standardize',true,...     'KernelFunction','RBF','KernelScale','auto'); t = templateTree('Reproducible',true);  % For reproducibility of random predictor selections MdlBag = fitcensemble(X(idxTrain,:),Y(idxTrain),'Method','Bag','Learners',t);

es un modelo entrenado. es un modelo entrenado.MdlSVMClassificationSVMMdlBagClassificationBaggedEnsemble

Etiquete las observaciones del conjunto de pruebas utilizando los modelos entrenados.

YhatSVM = predict(MdlSVM,X(idxTest,:)); YhatBag = predict(MdlBag,X(idxTest,:));

y son vectores que continúan las etiquetas de clase pronosticadas de los modelos respectivos.YhatSVMYhatBag

Pruebe si los dos modelos tienen precisiones predictivas iguales.

h = testcholdout(YhatSVM,YhatBag,Y(idxTest))
h = logical
   0

indica que no se rechace la hipótesis nula de que los dos modelos tengan la misma precisión predictiva.h = 0

Entrena dos modelos de clasificación usando el mismo algoritmo, pero ajusta un hiperparámetro para hacer el algoritmo más complejo. Realizar una prueba estadística para evaluar si el modelo más simple tiene mejor precisión en los datos retenidos que el modelo más complejo.

Cargue el conjunto de datos.ionosphere

load ionosphere;

Cree una partición que divida uniformemente los datos en conjuntos de entrenamiento y pruebas.

rng(1);                             % For reproducibility CVP = cvpartition(Y,'holdout',0.5); idxTrain = training(CVP);           % Training-set indices  idxTest = test(CVP);                % Test-set indices

es un objeto de partición de validación cruzada que especifica los conjuntos de entrenamiento y prueba.CVP

Entrenar dos modelos SVM: uno que utiliza un kernel lineal (el predeterminado para la clasificación binaria) y otro que utiliza el kernel de la función de base radial. Utilice la escala de kernel predeterminada de 1.

MdlLinear = fitcsvm(X(idxTrain,:),Y(idxTrain),'Standardize',true); MdlRBF = fitcsvm(X(idxTrain,:),Y(idxTrain),'Standardize',true,...     'KernelFunction','RBF');

y son modelos entrenados.MdlLinearMdlRBFClassificationSVM

Etiquete las observaciones del conjunto de pruebas utilizando los modelos entrenados.

YhatLinear = predict(MdlLinear,X(idxTest,:)); YhatRBF = predict(MdlRBF,X(idxTest,:));

y son vectores que continúan las etiquetas de clase pronosticadas de los modelos respectivos.YhatLinearYhatRBF

Pruebe la hipótesis nula de que el modelo más simple () es más preciso que el modelo más complejo ().MdlLinearMdlRBF Dado que el tamaño del conjunto de pruebas es grande, realice la prueba asintótica de McNemar y compare los resultados con la prueba de valor medio (el valor predeterminado de prueba no sensible al costo).p Solicitud de valores devueltos y tasas de clasificación errónea.p

Asymp = zeros(4,1); % Preallocation MidP = zeros(4,1);   [Asymp(1),Asymp(2),Asymp(3),Asymp(4)] = testcholdout(YhatLinear,YhatRBF,Y(idxTest),...     'Alternative','greater','Test','asymptotic'); [MidP(1),MidP(2),MidP(3),MidP(4)] = testcholdout(YhatLinear,YhatRBF,Y(idxTest),...     'Alternative','greater'); table(Asymp,MidP,'RowNames',{'h' 'p' 'e1' 'e2'})
ans=4×2 table
            Asymp          MidP   
          __________    __________

    h              1             1
    p     7.2801e-09    2.7649e-10
    e1       0.13714       0.13714
    e2       0.33143       0.33143

El valor-Value está cerca de cero para ambas pruebas, lo que indica una evidencia sólida para rechazar la hipótesis nula de que el modelo más simple es menos preciso que el modelo más complejo.p Independientemente de la prueba que especifique, devuelve el mismo tipo de medida de clasificación errónea para ambos modelos.testcholdout

Para conjuntos de datos con representaciones de clases desequilibradas, o si los costes falsos positivos y falsos negativos están desequilibrados, puede comparar estadísticamente el rendimiento predictivo de dos modelos de clasificación mediante la inclusión de una matriz de costes en el análisis.

Cargue el conjunto de datos.arrhythmia Determine las representaciones de clase en los datos.

load arrhythmia; Y = categorical(Y); tabulate(Y);
  Value    Count   Percent       1      245     54.20%       2       44      9.73%       3       15      3.32%       4       15      3.32%       5       13      2.88%       6       25      5.53%       7        3      0.66%       8        2      0.44%       9        9      1.99%      10       50     11.06%      14        4      0.88%      15        5      1.11%      16       22      4.87% 

Hay 16 clases, sin embargo, algunas no están representadas en el conjunto de datos (por ejemplo, clase 13). La mayoría de las observaciones se clasifican como no tener arritmias (clase 1). El conjunto de datos es muy discreto con clases desequilibradas.

Combine todas las observaciones con arritmias (clases 2 a 15) en una clase. Quite esas observaciones con estado de arritmia desconocida (clase 16) del conjunto de datos.

idx = (Y ~= '16'); Y = Y(idx); X = X(idx,:); Y(Y ~= '1') = 'WithArrhythmia'; Y(Y == '1') = 'NoArrhythmia'; Y = removecats(Y);

Cree una partición que divida uniformemente los datos en conjuntos de entrenamiento y pruebas.

rng(1);                             % For reproducibility CVP = cvpartition(Y,'holdout',0.5); idxTrain = training(CVP);           % Training-set indices  idxTest = test(CVP);                % Test-set indices

es un objeto de partición de validación cruzada que especifica los conjuntos de entrenamiento y prueba.CVP

Crear una matriz de costos tal que clasificar erróneamente a un paciente con arritmia en la clase de "no arritmia" es cinco veces peor que clasificar erróneamente a un paciente sin arritmia en la clase de arritmias. Clasificar correctamente no conlleva ningún coste. Las filas indican la clase true y las columnas indican la clase pronosticada. Cuando se realiza un análisis de coste-sensible, una buena práctica es especificar el orden de las clases.

Cost = [0 1;5 0]; ClassNames = {'NoArrhythmia','WithArrhythmia'};

Entrenar dos conjuntos de impulso de 50 árboles de clasificación, uno que utiliza AdaBoostM1 y otro que utiliza LogitBoost. Dado que faltan valores en el conjunto de datos, especifique usar divisiones sustitutas. Entrenar los modelos utilizando la matriz de costes.

t = templateTree('Surrogate','on'); numTrees = 50; MdlAda = fitcensemble(X(idxTrain,:),Y(idxTrain),'Method','AdaBoostM1',...     'NumLearningCycles',numTrees,'Learners',t,...     'Cost',Cost,'ClassNames',ClassNames); MdlLogit = fitcensemble(X(idxTrain,:),Y(idxTrain),'Method','LogitBoost',...     'NumLearningCycles',numTrees,'Learners',t,...     'Cost',Cost,'ClassNames',ClassNames);

y son modelos entrenados.MdlAdaMdlLogitClassificationEnsemble

Etiquete las observaciones del conjunto de pruebas utilizando los modelos entrenados.

YhatAda = predict(MdlAda,X(idxTest,:)); YhatLogit = predict(MdlLogit,X(idxTest,:));

y son vectores que contienen las etiquetas de clase pronosticadas de los modelos respectivos.YhatLinearYhatRBF

Pruebe si el conjunto AdaBoostM1 () y el conjunto LogitBoost () tienen la misma precisión predictiva.MdlAdaMdlLogit Suministre la matriz de costes. Llevar a cabo la asintótica, relación de probabilidad, prueba de costo-sensible (el valor predeterminado cuando se pasa en una matriz de costos). Solicitud de valores devueltos y costos de clasificación errónea.p

[h,p,e1,e2] = testcholdout(YhatAda,YhatLogit,Y(idxTest),'Cost',Cost)
h = logical
   0

p = 0.2094 
e1 = 0.5953 
e2 = 0.4698 

indica que no se rechace la hipótesis nula de que los dos modelos tengan la misma precisión predictiva.h = 0

Argumentos de entrada

contraer todo

Etiquetas de clase pronosticadas del primer modelo de clasificación, especificadas como una matriz categórica, de caracteres o de cadena, Vector lógico o numérico o matriz de celdas de vectores de caracteres.

Si es una matriz de caracteres, cada elemento debe corresponder a una fila de la matriz.YHat1

, y debe tener longitudes iguales.YHat1YHat2Y

Es una práctica recomendada para, y para compartir el mismo tipo de datos.YHat1YHat2Y

Tipos de datos: categorical | char | string | logical | single | double | cell

Etiquetas de clase pronosticadas del segundo modelo de clasificación, especificadas como una matriz categórica, de caracteres o de cadena, Vector lógico o numérico o matriz de celdas de vectores de caracteres.

Si es una matriz de caracteres, cada elemento debe corresponder a una fila de la matriz.YHat2

, y debe tener longitudes iguales.YHat1YHat2Y

Es una práctica recomendada para, y para compartir el mismo tipo de datos.YHat1YHat2Y

Tipos de datos: categorical | char | string | logical | single | double | cell

Etiquetas de clase verdaderas, especificadas como una matriz categórica, de caracteres o de cadena, Vector lógico o numérico o matriz de celdas de vectores de caracteres.

Si es una matriz de caracteres, cada elemento debe corresponder a una fila de la matriz.Y

, y debe tener longitudes iguales.YHat1YHat2Y

Es una práctica recomendada para, y para compartir el mismo tipo de datos.YHat1YHat2Y

Tipos de datos: categorical | char | string | logical | single | double | cell

Argumentos de par nombre-valor

Especifique pares de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como.Name1,Value1,...,NameN,ValueN

Ejemplo: Especifica si el primer conjunto de etiquetas de clase predicha es más preciso que el segundo, para llevar a cabo la prueba asintótica de McNemar, y para penalizar las observaciones de clasificación errónea con la etiqueta true dos veces más que para clasificar erróneamente las observaciones con la etiqueta true.'Alternative','greater','Test','asymptotic','Cost',[0 2;1 0]ClassNames{1}ClassNames{2}

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

Ejemplo: 'Alpha',0.1

Tipos de datos: single | double

Hipótesis alternativa para evaluar, especificada como el par separado por comas que consta de y uno de los valores enumerados en la tabla.'Alternative'

ValorHipótesis alternativa
predeterminado'unequal'Para predecir y tener precisiones desiguales.YYHat1YHat2
'greater'Para predecir, es más preciso que.YYHat1YHat2
'less'Para predecir, es menos preciso que.YYHat1YHat2

Ejemplo: 'Alternative','greater'

Nombres de clase, especificados como el par separado por comas que consta de una matriz categórica, carácter o cadena, Vector lógico o numérico, o matriz de celdas de vectores de caracteres.'ClassNames' Debe establecer utilizando el tipo de datos de.ClassNamesY

Si es una matriz de caracteres, cada elemento debe corresponder a una fila de la matriz.ClassNames

Utilizar para:ClassNames

  • Especifique el orden de cualquier dimensión de argumento de entrada que corresponda al orden de la clase. Por ejemplo, se utiliza para especificar el orden de las dimensiones de.ClassNamesCosto

  • Seleccione un subconjunto de clases para realizar pruebas. Por ejemplo, supongamos que el conjunto de todos los nombres de clase distintos en es.Y{'a','b','c'} Para entrenar y probar modelos utilizando observaciones de clases y solo, especifique.'a''c''ClassNames',{'a','c'}

El valor predeterminado es el conjunto de todos los nombres de clase distintos en.Y

Ejemplo: 'ClassNames',{'b','g'}

Tipos de datos: single | double | logical | char | string | cell | categorical

Coste de clasificación errónea, especificado como el par separado por comas consistente en una matriz cuadrada o una matriz de estructura.'Cost'

  • Si especifica la matriz cuadrada, entonces es el costo de clasificar un punto en la clase si su clase verdadera es.CostoCost(i,j)ji Es decir, las filas corresponden a la clase true y las columnas corresponden a la clase pronosticada. Para especificar el orden de la clase de las filas y columnas correspondientes, especifique además el argumento de par nombre-valor.CostoClassNames

  • Si especifica la estructura, debe tener dos campos:SS

    • , que contiene los nombres de clase como una variable del mismo tipo de datos que.S.ClassNamesY Puede utilizar este campo para especificar el orden de las clases.

    • , que contiene la matriz de costes, con las filas y columnas ordenadas como in.S.ClassificationCostsS.ClassNames

Si especifica,Costo testcholdout no puede realizar pruebas parciales, exactas o de mitad de la prueba.p También debe especificar.'Alternative','unequal','Test','asymptotic' Para las opciones de prueba de coste-sensible, vea el argumento del par nombre-valor.CostTest

Una práctica recomendada es suministrar la misma matriz de costes utilizada para entrenar los modelos de clasificación.

El valor predeterminado es if y if.Cost(i,j) = 1i ~= jCost(i,j) = 0i = j

Ejemplo: 'Cost',[0 1 2 ; 1 0 2; 2 2 0]

Tipos de datos: single | double | struct

Tipo de prueba de coste-sensible, especificado como el par separado por comas que consta de y o.'CostTest''chisquare''likelihood' A menos que especifique una matriz de costes utilizando el argumento de par nombre-valor,Costo testcholdout Ignora.CostTest

Esta tabla resume las opciones disponibles para las pruebas de coste-sensibles.

ValorEl tipo de prueba asintóticaRequisitos
'chisquare'Prueba de Chi-cuadradolicencia para implementarOptimization Toolboxquadprog
'likelihood'Prueba de ratio de verosimilitudNinguno

Para obtener más información, consulte.Pruebas de coste-sensible

Ejemplo: 'CostTest','chisquare'

Prueba para realizar, especificada como el par separado por comas que consta de y, y.'Test''asymptotic''exact''midp' En esta tabla se resumen las opciones disponibles para las pruebas no sensibles a los costos.

ValorDescripción
'asymptotic'Prueba asintótica McNemar
'exact'La prueba McNemar condicional exacta
predeterminado'midp'Mid-valor McNemar testp

Para obtener más información, consulte.McNemar tests

Para las pruebas de coste-sensible, debe ser.Test'asymptotic' Cuando se especifica el argumento de par nombre-valor y se elige una prueba de coste-sensible mediante el argumento de par nombre-valor, es el valor predeterminado.CostoCostTest'asymptotic'

Ejemplo: 'Test','asymptotic'

Nota

s, los valores, los vectores de caracteres vacíos (), las cadenas vacías () y los valores indican valores de datos faltantes.NaN<undefined>''""<missing> testcholdout:

  • Trata los valores faltantes en y como observaciones mal clasificadas.YHat1YHat2

  • Elimina los valores faltantes y los valores correspondientes de yYYHat1YHat2

Argumentos de salida

contraer todo

Resultado de la prueba de hipótesis, devuelto como un valor lógico.

indica el rechazo de la hipótesis nula en el nivel de significancia.h = 1Alpha

indica que no se ha rechazado la hipótesis nula en el nivel de significancia.h = 0Alpha

Tipos de datos: logical

-valor de la prueba, devuelto como un escalar en el intervalo [0,1]. es la probabilidad de que una estadística de prueba aleatoria sea al menos tan extrema como la estadística de prueba observada, dado que la hipótesis nula es verdadera.pp

testcholdout estimaciones utilizando la distribución del estadístico de prueba, que varía con el tipo de prueba.p Para obtener más información sobre las estadísticas de prueba derivadas de las variantes disponibles de la prueba McNemar, consulte.McNemar tests Para obtener más información sobre las estadísticas de prueba derivadas de pruebas de coste-sensible, consulte.Pruebas de coste-sensible

que resume la precisión del primer conjunto de etiquetas de clase () que predice las etiquetas de clase verdaderas (), devueltas como un escalar.La pérdida de clasificaciónYHat1Y

Para las pruebas no sensibles al costo, es la tasa de clasificación errónea.e1 Es decir, es la proporción de observaciones mal clasificadas, que es un escalar en el intervalo [0,1].e1

Para las pruebas de coste-sensible, es el costo de clasificación errónea.e1 Es decir, es el promedio ponderado de los costes de clasificación errónea, en el que las ponderaciones son las respectivas proporciones estimadas de observaciones mal clasificadas.e1

que resume la precisión del segundo conjunto de etiquetas de clase () que predice las etiquetas de clase verdaderas (), devueltas como un escalar.La pérdida de clasificaciónYHat2Y

Para las pruebas no sensibles al costo, es la tasa de clasificación errónea.e2 Es decir, es la proporción de observaciones mal clasificadas, que es un escalar en el intervalo [0,1].e2

Para las pruebas de coste-sensible, es el costo de clasificación errónea.e2 Es decir, es el promedio ponderado de los costes de la clasificación errónea, en el que las ponderaciones son las respectivas proporciones estimadas de observaciones mal clasificadas.e2

Más acerca de

contraer todo

Pruebas de coste-sensible

Conducta cuando el costo de la clasificación errónea está desequilibrado.pruebas de coste-sensible Al realizar un análisis sensible al costo, puede tener en cuenta el desequilibrio de costos cuando entrena los modelos de clasificación y cuando los compara estadísticamente.

Si el costo de la clasificación errónea está desequilibrado, la tasa de clasificación errónea tiende a ser una pérdida de clasificación de rendimiento deficiente. Utilice el coste de clasificación errónea para comparar los modelos de clasificación.

Los costos de clasificación errónea a menudo se desequilibran en las aplicaciones. Por ejemplo, considere la posibilidad de clasificar sujetos basados en un conjunto de predictores en dos categorías: sanas y enfermas. Clasificar erróneamente a un sujeto enfermo como sano plantea un peligro para la vida del sujeto. Sin embargo, clasificar erróneamente a un sujeto sano como enfermo típicamente causa algunos inconvenientes, pero no plantea un peligro significativo. En esta situación, usted asigna costos de clasificación errónea, de manera que clasificar erróneamente a un sujeto enfermo como saludable es más costoso que clasificar erróneamente a un sujeto sano como enfermo.

Las definiciones que siguen resumen las pruebas de coste-sensible. En las definiciones:

  • Nijk Y π^ijk son el número y la proporción estimada de las observaciones de la muestra de prueba con las siguientes características. es la clase true, es la etiqueta asignada por el primer modelo de clasificación y es la etiqueta asignada por el segundo modelo de clasificación.kij El verdadero valor desconocido de π^ijk Es Πijk. El tamaño de muestra del conjunto de pruebas es i,j,knijk=ntest. Además i,j,kπijk=i,j,kπ^ijk=1.

  • Cij es el costo relativo de asignar una etiqueta a una observación con una clase verdadera.ji Cii = 0, Cij ≥ 0 y, para al menos un par (,),ij Cij > 0.

  • Todos los subnumeros toman valores enteros de 1 a través, que es el número de clases.K

  • La diferencia esperada en los costos de clasificación errónea de los dos modelos de clasificación es

    δ=i=1Kj=1Kk=1K(ckickj)πijk.

  • La prueba de hipótesis es

    H0:δ=0H1:δ0.

    Las pruebas de coste-sensible disponibles son apropiadas para las pruebas de dos colas.

Las pruebas asintóticas disponibles que abordan los costos desequilibrados son a y a.prueba de Chi-cuadradoprueba de relación de probabilidad

  • Prueba de Chi-cuadrado: la estadística de prueba de Chi-cuadrado se basa en las estadísticas de prueba de Chi-cuadrado de Pearson y Neyman, pero con un factor de corrección de Laplace para tener en cuenta cualquier Nijk = 0. El estadístico de prueba es

    tχ2=ijk(nijk+1(ntest+K3)π^ijk(1))2nijk+1.

    Si 1Fχ2(tχ2;1)<α, luego rechaceH0.

    • π^ijk(1) se estiman minimizando tχ2 bajo la restricción que = 0.δ

    • Fχ2(x;1) es elχ2 CDF con un grado de libertad evaluado en.x

  • Prueba de relación de probabilidad: la prueba de la relación de probabilidad se basa en Nijk, que son variables aleatorias binomiales con tamaño de muestra Ntest y probabilidad de éxito Πijk. Las variables aleatorias representan el número aleatorio de observaciones con la clase: true, la etiqueta asignada por el primer modelo de clasificación y la etiqueta asignada por el segundo modelo de clasificación.kij Conjuntamente, la distribución de las variables aleatorias es multinomial.

    El estadístico de prueba es

    tLRT=2log[P(i,j,kNijk=nijk;ntest,π^ijk=π^ijk(2))P(i,j,kNijk=nijk;ntest,π^ijk=π^ijk(3))].

    Si 1Fχ2(tLRT;1)<α, luego rechazarH0.

    • π^ijk(2)=nijkntest es el MLE sin restricciones de Πijk.

    • π^ijk(3)=nijkntest+λ(ckickj) es el MLE bajo la hipótesis nula que = 0. es la solución aδλ

      i,j,knijk(ckickj)ntest+λ(ckickj)=0.

    • Fχ2(x;1) es elχ2 CDF con un grado de libertad evaluado en.x

McNemar tests

son pruebas de hipótesis que comparan dos proporciones de población mientras se abordan los problemas resultantes de dos muestras dependientes de pares coincidentes.McNemar tests

Una forma de comparar las precisiones predictivas de dos modelos de clasificación es:

  1. Particionar los datos en conjuntos de entrenamiento y pruebas.

  2. Entrenar ambos modelos de clasificación utilizando el conjunto de entrenamiento.

  3. Predecir etiquetas de clase utilizando el conjunto de pruebas.

  4. Resuma los resultados en una tabla de dos por dos similar a esta figura.

    Nii son el número de pares concordantes, es decir, el número de observaciones que ambos modelos clasifican de la misma manera (correcta o incorrectamente). Nij, ≠, son el número de pares discordantes, es decir, el número de observaciones que los modelos clasifican de manera diferente (correcta o incorrectamente).ij

Las tasas de clasificación errónea para los modelos 1 y 2 son π^2=n2/n Y π^2=n2/nRespectivamente. Una prueba bilateral para comparar la precisión de los dos modelos es

H0:π2=π2H1:π2π2.

La hipótesis nula sugiere que la población exhibe homogeneidad marginal, lo que reduce la hipótesis nula a H0:π12=π21. Además, bajo la hipótesis nula,N12 ~ Binomial (n12 +n21, 0,5).[1]

Estos hechos son la base de las variantes de prueba disponibles de McNemar: las pruebas de, y McNemar.AsintóticaExact-condicionalMid-p-Value Las definiciones que siguen resumen las variantes disponibles.

  • Asintótica: las estadísticas de prueba y las regiones de rechazo de McNemar (para el nivel de significancia) son:α

    • Para las pruebas unilaterales, la estadística de prueba es

      ta1=n12n21n12+n21.

      Si 1Φ(|t1|)<α, donde está el CDF estándar gaussiano, a continuación, rechazarΦH0.

    • Para las pruebas a doble cara, la estadística de prueba es

      ta2=(n12n21)2n12+n21.

      Si 1Fχ2(t2;m)<αDónde Fχ2(x;m) es el Χm2 CDF evaluado y luego rechazarxH0.

    La prueba asintótica requiere una teoría de muestras grandes, concretamente, la aproximación gaussiana a la distribución binomial.

    • El número total de pares discordantes, nd=n12+n21, debe ser mayor que 10 (, CH.[1] 10.1.4).

    • En general, las pruebas asintóticas no garantizan la cobertura nominal. La probabilidad observada de rechazar falsamente la hipótesis nula puede exceder, como se sugiere en los estudios de simulación en.α[18] Sin embargo, la prueba asintótica McNemar funciona bien en términos de poder estadístico.

  • Condicional exacto: las regiones de rechazo y las estadísticas de pruebas de McNemar condicionales exactas (para el nivel de significancia) son (,):α[36][38]

    • Para las pruebas unilaterales, la estadística de prueba es

      t1=n12.

      Si FBin(t1;nd,0.5)<αDónde FBin(x;n,p) es la CDF binomial con el tamaño de la muestra y la probabilidad de éxito evaluadas en, luego rechazannpxH0.

    • Para las pruebas a doble cara, la estadística de prueba es

      t2=min(n12,n21).

      Si FBin(t2;nd,0.5)<α/2, luego rechaceH0.

    La prueba condicional exacta siempre alcanza la cobertura nominal. Los estudios de simulación sugieren que la prueba es conservadora, y luego demuestran que la prueba carece de potencia estadística en comparación con otras variantes.[18] Para muestras de prueba pequeñas o muy discretas, considere la posibilidad de utilizar la prueba de valor medio (, CH.p[1] 3.6.3).

  • Prueba de valor medio: las estadísticas de pruebas de McNemar de valor medio y las regiones de rechazo (para el nivel de significancia) son ():ppα[32]

    • Para las pruebas unilaterales, la estadística de prueba es

      t1=n12.

      Si FBin(t11;n12+n21,0.5)+0.5fBin(t1;n12+n21,0.5)<αDónde FBin(x;n,p) Y fBin(x;n,p) son el binomio CDF y PDF, respectivamente, con el tamaño de la muestra y la probabilidad de éxito evaluadas en, luego rechazannpxH0.

    • Para las pruebas a doble cara, la estadística de prueba es

      t2=min(n12,n21).

      Si FBin(t21;n12+n211,0.5)+0.5fBin(t2;n12+n21,0.5)<α/2, luego rechaceH0.

    La prueba de valor medio aborda el comportamiento demasiado conservador de la prueba condicional exacta.p Los estudios de simulación demuestran que esta prueba alcanza una cobertura nominal y tiene una buena potencia estadística.[18]

Pérdida de clasificación

indicar la precisión de un modelo de clasificación o un conjunto de etiquetas pronosticadas.Las pérdidas de clasificación Dos pérdidas de clasificación son la tasa de clasificación errónea y el costo.

testcholdout Devuelve las pérdidas de clasificación (ver y) bajo la hipótesis alternativa (es decir, las pérdidas de clasificación sin restricciones).e1e2 Nijk es el número de observaciones de muestra de prueba con la clase: true, la etiqueta asignada por el primer modelo de clasificación y la etiqueta asignada por el segundo modelo de clasificación.kij La proporción estimada correspondiente es π^ijk=nijkntest. El tamaño de muestra del conjunto de pruebas es i,j,knijk=ntest. Los índices se toman de 1 a través, el número de clases.K

  • El, o error de clasificación, es un escalar en el intervalo [0,1] que representa la proporción de observaciones mal clasificadas.tasa de clasificación errónea Es decir, la tasa de clasificación errónea para el primer modelo de clasificación es

    e1=j=1Kk=1Kikπ^ijk.

    Para la tasa de clasificación errónea del segundo modelo de clasificación (e2), cambiar los índices y en la fórmula.ij

    La precisión de clasificación disminuye a medida que la tasa de clasificación errónea aumenta a 1.

  • Es un escalar no negativo que es una medida de la calidad de clasificación en relación con los valores de la matriz de costes especificada.costo de clasificación errónea Su interpretación depende de los costes especificados de la clasificación errónea. El coste de clasificación errónea es el promedio ponderado de los costes de clasificación errónea (especificado en una matriz de costes) en el que las ponderaciones son las respectivas proporciones estimadas de observaciones mal clasificadas.C El coste de clasificación errónea para el primer modelo de clasificación se

    e1=j=1Kk=1Kikπ^ijkcki,

    Dónde Ckj es el costo de clasificar una observación en la clase si su verdadera clase es.jk Para el coste de clasificación errónea del segundo modelo de clasificación (e2), cambiar los índices y en la fórmula.ij

    En general, para una matriz de coste fijo, la precisión de la clasificación disminuye a medida que aumenta el coste de clasificación errónea.

Sugerencias

  • Es una buena práctica para obtener etiquetas de clase pronosticadas pasando cualquier modelo de clasificación entrenado y nuevos Datos predictores al método.Predecir Por ejemplo, para las etiquetas previstas de un modelo SVM, consulte predict.

  • Las pruebas de coste-sensible realizan la optimización numérica, que requiere recursos computacionales adicionales. La prueba de la relación de probabilidad realiza la optimización numérica indirectamente al encontrar la raíz de un multiplicador de Lagrange en un intervalo. Para algunos conjuntos de datos, si la raíz se encuentra cerca de los límites del intervalo, el método puede fallar. Por lo tanto, si usted tiene una licencia, considere la realización de la prueba de Chi-cuadrado sensible al costo en su lugar.Optimization Toolbox Para obtener más información, consulte y.CostTestPruebas de coste-sensible

Referencias

[1] Agresti, A. Categorical Data Analysis, 2nd Ed. John Wiley & Sons, Inc.: Hoboken, NJ, 2002.

[2] Fagerlan, M.W., S. Lydersen, and P. Laake. “The McNemar Test for Binary Matched-Pairs Data: Mid-p and Asymptotic Are Better Than Exact Conditional.” BMC Medical Research Methodology. Vol. 13, 2013, pp. 1–8.

[3] Lancaster, H.O. “Significance Tests in Discrete Distributions.” JASA, Vol. 56, Number 294, 1961, pp. 223–234.

[4] McNemar, Q. “Note on the Sampling Error of the Difference Between Correlated Proportions or Percentages.” Psychometrika, Vol. 12, Number 2, 1947, pp. 153–157.

[5] Mosteller, F. “Some Statistical Problems in Measuring the Subjective Response to Drugs.” Biometrics, Vol. 8, Number 3, 1952, pp. 220–226.

Consulte también

Introducido en R2015a