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.

Regularizar la regresión logística

Este ejemplo muestra cómo regularizar la regresión binomial. La función de enlace por defecto (canónico) para la regresión binomial es la función logística.

Paso 1. Prepare los datos.

Cargue los datos.ionosphere La respuesta es una matriz de celdas o caracteres.Y'g''b' Convierta las celdas en valores lógicos, con representación.true'g' Quite las dos primeras columnas de porque tienen algunas propiedades estadísticas incómodas, que están fuera del alcance de esta discusión.X

load ionosphere Ybool = strcmp(Y,'g'); X = X(:,3:end); 

Paso 2. Cree un ajuste con validación cruzada.

Construya una regresión binomial regularizada utilizando 25 valores y una validación cruzada de 10 veces.Lambda Este proceso puede tardar unos minutos.

rng('default') % for reproducibility [B,FitInfo] = lassoglm(X,Ybool,'binomial',...     'NumLambda',25,'CV',10); 

Paso 3. Examine las parcelas para encontrar la regularización adecuada.

puede proporcionar una gráfica de traza estándar y una gráfica de desviación con validación cruzada.lassoPlot Examine ambas parcelas.

lassoPlot(B,FitInfo,'PlotType','CV'); legend('show','Location','best') % show legend 

La gráfica identifica el punto de desviación mínima con un círculo verde y una línea discontinua como una función del parámetro de regularización.Lambda El punto de círculo azul tiene desviación mínima y no más de un desvío estándar.

lassoPlot(B,FitInfo,'PlotType','Lambda','XScale','log'); 

La gráfica de traza muestra coeficientes de modelo distintos de cero como una función del parámetro de regularización.Lambda Debido a que hay 32 predictores y un modelo lineal, hay 32 curvas. Como aumenta a la izquierda, establece varios coeficientes a cero, quitándolos del modelo.Lambdalassoglm

El trazado de traza está ligeramente comprimido. Amplíe para ver más detalles.

xlim([.01 .1]) ylim([-3 3]) 

A medida que aumenta hacia el lado izquierdo de la trama, quedan menos coeficientes distintos de cero.Lambda

Encuentre el número de coeficientes de modelo distintos de cero en el valor con desviación mínima más un punto de desviación estándar.Lambda Los coeficientes del modelo regularizado están en la columna de la matriz.FitInfo.Index1SEB

indx = FitInfo.Index1SE; B0 = B(:,indx); nonzeros = sum(B0 ~= 0) 
 nonzeros =      14  

Cuando se establece en, quita más de la mitad de los 32 predictores originales.LambdaFitInfo.Index1SElassoglm

Paso 4. Cree un modelo regularizado.

El término constante está en la entrada del vector.FitInfo.Index1SEFitInfo.Intercept Llame a ese valor.cnst

El modelo es logit (MU) = log (MU/(1-MU)) =.X*B0 + cnst Por lo tanto, para las predicciones, MU =.exp(X*B0 + cnst)/(1+exp(x*B0 + cnst))

La función evalúa las predicciones del modelo.glmval Asume que el primer coeficiente de modelo se relaciona con el término constante. Por lo tanto, cree un vector de coeficiente con el término constante primero.

cnst = FitInfo.Intercept(indx); B1 = [cnst;B0]; 

Paso 5. Examine los residuos.

Trace los datos de entrenamiento en las predicciones del modelo para el modelo regularizado.lassoglm

preds = glmval(B1,X,'logit'); histogram(Ybool - preds) % plot residuals title('Residuals from lassoglm model') 

Paso 6. Alternativa: Utilice los predictores identificados en un modelo lineal generalizado de mínimos cuadrados.

En lugar de usar las predicciones sesgadas del modelo, puede crear un modelo imparcial utilizando solo los predictores identificados.

predictors = find(B0); % indices of nonzero predictors mdl = fitglm(X,Ybool,'linear',...     'Distribution','binomial','PredictorVars',predictors) 
 mdl =    Generalized linear regression model:     y ~ [Linear formula with 15 terms in 14 predictors]     Distribution = Binomial  Estimated Coefficients:                    Estimate       SE        tStat        pValue                      _________    _______    ________    __________      (Intercept)      -2.9367    0.50926     -5.7666    8.0893e-09     x1                 2.492    0.60795       4.099    4.1502e-05     x3                2.5501    0.63304      4.0284     5.616e-05     x4               0.48816    0.50336      0.9698       0.33215     x5                0.6158    0.62192     0.99015        0.3221     x6                 2.294     0.5421      4.2317    2.3198e-05     x7               0.77842    0.57765      1.3476        0.1778     x12               1.7808    0.54316      3.2786     0.0010432     x16            -0.070993    0.50515    -0.14054       0.88823     x20              -2.7767    0.55131     -5.0365    4.7402e-07     x24               2.0212    0.57639      3.5067    0.00045372     x25              -2.3796    0.58274     -4.0835    4.4363e-05     x27              0.79564    0.55904      1.4232       0.15467     x29               1.2689    0.55468      2.2876      0.022162     x32              -1.5681    0.54336     -2.8859     0.0039035   351 observations, 336 error degrees of freedom Dispersion: 1 Chi^2-statistic vs. constant model: 262, p-value = 1e-47 

Trace los residuos del modelo.

plotResiduals(mdl) 

Como era de esperar, los residuos del modelo de mínimos cuadrados son ligeramente más pequeños que los del modelo regularizado. Sin embargo, esto no significa que es un mejor predictor de nuevos datos.mdl