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.

stepwisefit

Regresión stepwise

Sintaxis

b = stepwisefit(X,y)
[b,se,pval,inmodel,stats,nextstep,history] = stepwisefit(...)
[...] = stepwisefit(X,y,param1,val1,param2,val2,...)

Descripción

b = stepwisefit(X,y) utiliza un método escalonado para realizar una regresión multilineal de los valores de respuesta en el vector-by-1 en los términos predictivos en la matriz.nypnpX Los distintos términos predictivos deben aparecer en diferentes columnas de.X

es un vector de-por-1 de los coeficientes estimados para todos los términos en.bpX La función calcula los valores de estimación de coeficiente de la siguiente manera:stepwisefitb

  • Si un término no está en el modelo final, entonces la estimación de coeficiente correspondiente en los resultados de agregar sólo ese término a los predictores en el modelo final.b

  • Si un término está en el modelo final, entonces la estimación del coeficiente en para ese término es el resultado del modelo final, es decir, no tiene en cuenta los términos que excluyó del modelo al calcular estos valores.bstepwise

Nota

incluye automáticamente un término constante en todos los modelos.stepwisefit No introduzca una columna de 1s directamente en.X

trata los valores en o como valores faltantes y los omite.stepwisefitNaNXy

[b,se,pval,inmodel,stats,nextstep,history] = stepwisefit(...) Devuelve la siguiente información adicional:

  • — Un vector de errores estándar paraseb

  • — Un vector de-valores para probar si los elementos de son 0pvalpb

  • — Un vector lógico, con una longitud igual al número de columnas, especificando qué términos se encuentran en el modelo finalinmodelX

  • — Una estructura de estadísticas adicionales con los siguientes campos.stats Todas las estadísticas corresponden al modelo final, excepto donde se indique.

    • — El vector de caracteressource'stepwisefit'

    • — Grados de libertad de errordfe

    • — Grados de libertad para la regresióndf0

    • — Suma total de los cuadrados de la respuestaSStotal

    • — Suma de los cuadrados de los residuosSSresid

    • —-estadística para probar el modelo final frente a ningún modelo (media solamente)fstatF

    • — el valor de la estadísticapvalpF

    • — Error cuadrado medio raízrmse

    • — Residuales para los predictores que no están en el modelo final, después de eliminar la parte de ellos explicada por los predictores en el modeloxr

    • — Residuales para la respuesta utilizando predictores en el modelo finalyr

    • — Coeficientes para los términos en el modelo final, con valores para un término que no están en el modelo establecido en el valor que se obtendría agregando dicho término al modeloB

    • — Errores estándar para las estimaciones de coeficienteSE

    • — estadísticas de las estimaciones de coeficienteTSTATt

    • —-valores para estimaciones de coeficientePVALp

    • — La interceptación estimadaintercept

    • : Indica qué filas de los datos contienen valoreswasnanNaN

  • — El siguiente paso recomendado, ya sea el índice del siguiente término para entrar o salir del modelo, o si no se recomiendan otros pasosnextstep0

  • — Estructura que contiene información sobre los pasos tomados, con los siguientes campos:history

    • — Matriz de coeficientes de regresión, donde cada columna es un paso, y cada fila es un coeficiente.B

    • : Raíz de los errores de cuadratura media para el modelo en cada paso.rmse

    • — Grados de libertad para la regresión en cada paso.df0

    • : Matriz lógica que indica qué predictores están en el modelo en cada paso, donde cada fila es un paso y cada columna es un predictor.in

[...] = stepwisefit(X,y,param1,val1,param2,val2,...) especifica uno o varios de los pares de nombre/valor descritos en la tabla siguiente.

ParámetroValor
'inmodel'

Vector lógico que especifica los términos que se incluirán en el ajuste inicial. El valor predeterminado es especificar ningún términos.

'penter'

El valor máximo de un término que se agregará.p El valor predeterminado es.0,05

'premove'

El valor mínimo de un término que se eliminará.p El valor predeterminado es el máximo de y.'penter'0.10

'display'

muestra información sobre cada paso en la ventana de comandos.'on' Este es el valor predeterminado.

omite la pantalla.'off'

'maxiter'

El número máximo de pasos en la regresión. El valor predeterminado es.Inf

'keep'

Un vector lógico que especifica términos para mantener en su estado inicial. El valor predeterminado es especificar ningún términos.

'scale'

centra y escala cada columna de (calcula-puntuaciones) antes de ajustar.'on'Xz

no escala los términos.'off' Este es el valor predeterminado.

Ejemplos

Cargar los datos en, que contiene observaciones del calor de reacción de varias mezclas de cemento:hald.mat

load hald whos   Name          Size    Bytes   Class   Attributes    Description   22x58   2552    char   hald          13x5     520    double   heat          13x1     104    double   ingredients   13x4     416    double

La respuesta () depende de las cantidades de los cuatro predictores (las columnas de).heatingredients

Se utiliza para llevar a cabo el algoritmo de regresión escalonada, comenzando sin términos en el modelo y utilizando tolerancias de entrada/salida de 0.05/0.10 en los-valores:stepwisefitp

stepwisefit(ingredients,heat,...             'penter',0.05,'premove',0.10); Initial columns included:  none Step 1, added column 4, p=0.000576232 Step 2, added column 1, p=1.10528e-006 Final columns included:  1 4      'Coeff'      'Std.Err.'    'Status'    'P'               [ 1.4400]    [  0.1384]    'In'        [1.1053e-006]     [ 0.4161]    [  0.1856]    'Out'       [     0.0517]     [-0.4100]    [  0.1992]    'Out'       [     0.0697]     [-0.6140]    [  0.0486]    'In'        [1.8149e-007]

incluye automáticamente un término de intercepción en el modelo, por lo que no se agrega explícitamente a como lo haría.stepwisefitingredientsregress Para los términos que no están en el modelo, las estimaciones de coeficiente y sus errores estándar son las que resultan añadiendo el término correspondiente al modelo final.

El parámetro se utiliza para especificar términos en un modelo inicial:inmodel

initialModel = ...            [false true false false]; % Force in 2nd term stepwisefit(ingredients,heat,...             'inmodel',initialModel,...             'penter',.05,'premove',0.10); Initial columns included:  2  Step 1, added column 1, p=2.69221e-007 Final columns included:  1 2      'Coeff'      'Std.Err.'    'Status'    'P'               [ 1.4683]    [  0.1213]    'In'        [2.6922e-007]     [ 0.6623]    [  0.0459]    'In'        [5.0290e-008]     [ 0.2500]    [  0.1847]    'Out'       [     0.2089]     [-0.2365]    [  0.1733]    'Out'       [     0.2054]

Los dos modelos anteriores, creados a partir de diferentes modelos iniciales, utilizan diferentes subconjuntos de los términos predictivos. Los términos 2 y 4, intercambiados en los dos modelos, están altamente correlacionados:

term2 = ingredients(:,2); term4 = ingredients(:,4); R = corrcoef(term2,term4) R =     1.0000   -0.9730    -0.9730    1.0000

Para comparar los modelos, utilice la salida de:statsstepwisefit

[betahat1,se1,pval1,inmodel1,stats1] = ...           stepwisefit(ingredients,heat,...           'penter',.05,'premove',0.10,...           'display','off'); [betahat2,se2,pval2,inmodel2,stats2] = ...           stepwisefit(ingredients,heat,...                       'inmodel',initialModel,...                       'penter',.05,'premove',0.10,...                       'display','off'); RMSE1 = stats1.rmse RMSE1 =     2.7343 RMSE2 = stats2.rmse RMSE2 =     2.4063

El segundo modelo tiene un error cuadrado medio de raíz inferior (RMSE).

Algoritmos

es un método sistemático para agregar y eliminar términos de un modelo multilineal basado en su significancia estadística en una regresión.Regresión stepwise El método comienza con un modelo inicial y luego compara la potencia explicativa de los modelos incrementalmente más grandes y más pequeños. En cada paso, el valor de una estadística se calcula para probar modelos con y sin un término potencial.pF Si un término no está actualmente en el modelo, la hipótesis nula es que el término tendría un coeficiente cero si se agrega al modelo. Si hay pruebas suficientes para rechazar la hipótesis nula, el término se agrega al modelo. Por el contrario, si un término está actualmente en el modelo, la hipótesis nula es que el término tiene un coeficiente cero. Si no hay pruebas suficientes para rechazar la hipótesis nula, el término se elimina del modelo. El método procede de la siguiente manera:

  1. Ajuste el modelo inicial.

  2. Si los términos que no están en el modelo tienen valores menores que una tolerancia de entrada (es decir, si es improbable que tengan un coeficiente cero si se agregan al modelo), agregue el valor más pequeño y repita este paso; de lo contrario, vaya al paso 3.pp

  3. Si los términos del modelo tienen valores mayores que una tolerancia de salida (es decir, si es improbable que la hipótesis de un coeficiente cero pueda rechazarse), quite la que tenga el valor más grande y vaya al paso 2; Si no, fin.pp

Dependiendo de los términos incluidos en el modelo inicial y el orden en que los términos se mueven hacia adentro y hacia fuera, el método puede construir diversos modelos del mismo conjunto de términos potenciales. El método finaliza cuando ningún paso único mejora el modelo. No hay garantía, sin embargo, de que un modelo inicial diferente o una secuencia diferente de pasos no dará lugar a un mejor ajuste. En este sentido, los modelos escalonado son localmente óptimos, pero pueden no ser globalmente óptimos.

Referencias

[1] Draper, N. R., and H. Smith. Applied Regression Analysis. Hoboken, NJ: Wiley-Interscience, 1998. pp. 307–312.

Consulte también

| |

Introducido antes de R2006a