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.

Regresión lineal

Preparar datos

Para comenzar a ajustar una regresión, coloque los datos en un formulario que las funciones de ajuste esperan. Todas las técnicas de regresión comienzan con datos de entrada en una matriz y datos de respuesta en un vector independiente, o datos de entrada en una tabla o conjunto de DataSet y datos de respuesta como una columna en.Xytbltbl Cada fila de los datos de entrada representa una observación. Cada columna representa un predictor (variable).

Para una matriz de tabla o DataSet, indique la variable de respuesta con el par nombre-valor:tbl'ResponseVar'

mdl = fitlm(tbl,'ResponseVar','BloodPressure');

La variable de respuesta es la última columna de forma predeterminada.

Puede utilizar predictores numéricos.Categórico Un predictor categórico es aquel que toma valores de un conjunto fijo de posibilidades.

  • Para una matriz numérica, indique los predictores categóricos utilizando el par nombre-valor.X'Categorical' Por ejemplo, para indicar que los predictores y de seis son categóricos:23

    mdl = fitlm(X,y,'Categorical',[2,3]); % or equivalently mdl = fitlm(X,y,'Categorical',logical([0 1 1 0 0 0]));
  • Para una matriz de tabla o DataSet, las funciones de empalme suponen que estos tipos de datos son categóricos:tbl

    • Vector lógico

    • Vector categórico

    • La matriz de caracteres

    • Matriz de cadenas

    Si desea indicar que un predictor numérico es categórico, utilice el par nombre-valor.'Categorical'

Representar los datos numéricos faltantes como.NaN Para representar los datos que faltan para otros tipos de datos, consulte.Los valores de grupo faltantes

Matriz de DataSet para datos de entrada y respuesta

Para crear una matriz de DataSet a partir de una hoja de cálculo:Excel®

ds = dataset('XLSFile','hospital.xls', ...     'ReadObsNames',true);

Para crear una matriz de DataSet a partir de variables de espacio de trabajo:

load carsmall ds = dataset(MPG,Weight); ds.Year = categorical(Model_Year);

Tabla para datos de entrada y respuesta

Para crear una tabla a partir de una hoja de cálculo:Excel

tbl = readtable('hospital.xls', ...     'ReadRowNames',true);

Para crear una tabla a partir de variables de espacio de trabajo:

load carsmall tbl = table(MPG,Weight); tbl.Year = categorical(Model_Year);

Matriz numérica para datos de entrada, Vector numérico para respuesta

Por ejemplo, para crear matrices numéricas a partir de variables de espacio de trabajo:

load carsmall X = [Weight Horsepower Cylinders Model_Year]; y = MPG;

Para crear matrices numéricas a partir de una hoja de cálculo:Excel

[X, Xnames] = xlsread('hospital.xls'); y = X(:,4); % response y is systolic pressure X(:,4) = []; % remove y from the X matrix

Tenga en cuenta que las entradas no numéricas, como, no aparecen en.sexX

Elija un método de empalme

Hay tres formas de ajustar un modelo a los datos:

Ajuste de mínimos cuadrados

Se utiliza para construir un ajuste de mínimos cuadrados de un modelo a los datos.fitlm Este método es mejor cuando usted está razonablemente seguro de la forma del modelo, y principalmente necesita encontrar sus parámetros. Este método también es útil cuando se desea explorar algunos modelos. El método requiere que examine los datos manualmente para descartar los valores atípicos, aunque hay técnicas para ayudar (consulte).Examine la calidad y ajuste el modelo ajustado

Ajuste robusto

Utilízarlo con el par nombre-valor para crear un modelo que se vea poco afectado por los valores atípicos.fitlmRobustOpts El ajuste robusto le ahorra la molestia de descartar manualmente los valores atípicos. Sin embargo, no funciona con un ajuste robusto.step Esto significa que cuando se utiliza un ajuste robusto, no se puede buscar paso por pasos para un buen modelo.

Stepwise Fit

Utilíce para buscar un modelo y ajustar los parámetros al modelo. comienza a partir de un modelo, como una constante, y agrega o resta términos uno a la vez, eligiendo un término óptimo cada vez de una manera codiciosa, hasta que no pueda mejorar aún más.stepwiselmstepwiselm Utilice el ajuste escalonado para encontrar un buen modelo, que es uno que sólo tiene términos relevantes.

El resultado depende del modelo de inicio. Por lo general, a partir de un modelo constante conduce a un modelo pequeño. Comenzando con más términos puede conducir a un modelo más complejo, pero uno que tiene menor error cuadrado medio. Ver.Compare modelos grandes y pequeños escalonado

No puede utilizar opciones robustas junto con el ajuste escalonado. Así que después de un ajuste escalonado, examine su modelo para ver los valores atípicos (consulte).Examine la calidad y ajuste el modelo ajustado

Elija un modelo o un rango de modelos

Hay varias formas de especificar un modelo para la regresión lineal. Usa lo que encuentres más conveniente.

Para, la especificación del modelo que se da es el modelo que está en forma.fitlm Si no se da una especificación de modelo, el valor predeterminado es.'linear'

Para, la especificación del modelo que se da es el modelo de inicio, que el procedimiento escalonado intenta mejorar.stepwiselm Si no se da una especificación de modelo, el modelo inicial predeterminado es, y el modelo de delimitación superior predeterminado es.'constant''interactions' Cambie el modelo de delimitación superior utilizando el par nombre-valor.Upper

Nota

Hay otras formas de seleccionar modelos, como usar, o.lassolassoglmsequentialfsplsregress

Nombre breve

NombreTipo de modelo
'constant'El modelo solo contiene un término constante (intercepción).
'linear'El modelo contiene una intersección y términos lineales para cada predictor.
'interactions'El modelo contiene una intercepción, términos lineales y todos los productos de pares de predictores distintos (sin términos cuadrados).
'purequadratic'El modelo contiene una intersección, términos lineales y términos cuadrados.
'quadratic'El modelo contiene una intersección, términos lineales, interacciones y términos cuadrados.
'polyijk'El modelo es un polinomio con todos los términos hasta el grado i en el primer predictor, grado j en el segundo predictor, etc. Utilice los numerales.09 Por ejemplo, tiene una constante más todos los términos lineales y de producto, y también contiene términos con predictor 1 al cuadrado.'poly2111'

Por ejemplo, para especificar un modelo de interacción con predictores de matriz:fitlm

mdl = fitlm(X,y,'interactions');

Para especificar un modelo mediante una matriz de predictores de tabla o DataSet, supongamos que desea empezar desde una constante y tener un límite superior del modelo lineal.stepwiselmtbl Supongamos que la variable de respuesta está en la tercera columna.tbl

mdl2 = stepwiselm(tbl,'constant', ...     'Upper','linear','ResponseVar',3);

Términos matriz

Una matriz de términos es a-por-(+ 1) matriz especificando términos en un modelo, donde es el número de términos, es el número de variables predictoras y + 1 cuentas para la variable de respuesta.Ttptp El valor de es el exponente de la variable en el término.T(i,j)ji

Por ejemplo, supongamos que una entrada incluye tres variables predictoras, y la variable de respuesta en el orden, y.ABCYABCY Cada fila de representa un término:T

  • — Término constante o intercepción[0 0 0 0]

  • — ; Equivalente[0 1 0 0]BA^0 * B^1 * C^0

  • [1 0 1 0]A*C

  • [2 0 0 0]A^2

  • [0 1 2 0]B*(C^2)

Al final de cada término representa la variable de respuesta.0 En general, un vector de columna de ceros en una matriz de términos representa la posición de la variable de respuesta. Si tiene las variables de predictor y respuesta en un vector de matriz y columna, debe incluir para la variable de respuesta en la última columna de cada fila.0

Fórmula

Una fórmula para una especificación de modelo es un vector de caracteres o un escalar de cadena del formulario

'Y ~ terms',

  • Y es el nombre de la respuesta.

  • terms Contiene

    • Los nombres de variable

    • para incluir la siguiente variable+

    • para excluir la siguiente variable-

    • para definir una interacción, un producto de términos:

    • para definir una interacción y todos los términos de orden inferior*

    • para elevar el predictor a una potencia, exactamente como se repite, por lo que incluye términos de orden inferior, así^*^

    • a los términos de grupo()

Sugerencia

Las fórmulas incluyen un término constante (intercepción) de forma predeterminada. Para excluir un término constante del modelo, incluya en la fórmula.-1

Ejemplos:

es un modelo lineal de tres variables con intercepción. es un modelo lineal de tres variables sin intercepción. es un modelo de tres variables con intercepción y un término. es el mismo que el ejemplo anterior, ya que incluye un término. incluye un término. es el mismo que el ejemplo anterior, ya que. tiene todas las interacciones entre, y, excepto la interacción de tres vías. tiene todos los términos lineales, además de los productos de con cada una de las otras variables.'Y ~ A + B + C'
'Y ~ A + B + C - 1'
'Y ~ A + B + C + B^2'B^2
'Y ~ A + B^2 + C'B^2B
'Y ~ A + B + C + A:B'A*B
'Y ~ A*B + C'A*B = A + B + A:B
'Y ~ A*B*C - A:B:C'ABC
'Y ~ A*(B + C + D)'A

Por ejemplo, para especificar un modelo de interacción con predictores de matriz:fitlm

mdl = fitlm(X,y,'y ~ x1*x2*x3 - x1:x2:x3');

Para especificar un modelo mediante una matriz de predictores de tabla o DataSet, supongamos que desea empezar desde una constante y tener un límite superior del modelo lineal.stepwiselmtbl Suponga que la variable de respuesta in se denomina y las variables predictoras se denominan, y.tbl'y''x1''x2''x3'

mdl2 = stepwiselm(tbl,'y ~ 1','Upper','y ~ x1 + x2 + x3');

Ajustar modelo a datos

Los argumentos opcionales más comunes para el ajuste:

  • Para una regresión robusta, establezca el par nombre-valor.fitlm'RobustOpts''on'

  • Especifique un modelo de límite superior adecuado, como, por ejemplo, establecido en.stepwiselm'Upper''linear'

  • Indique qué variables son categóricas utilizando el par nombre-valor.'CategoricalVars' Proporcione un vector con números de columna, como para especificar que los predictores y son categóricos.[1 6]16 Como alternativa, dé a un vector lógico la misma longitud que las columnas de datos, con una entrada que indica que la variable es categórica.1 Si hay siete predictores y predictores y son categóricos, especifique.16logical([1,0,0,0,0,1,0])

  • Para una matriz de tabla o DataSet, especifique la variable de respuesta utilizando el par nombre-valor.'ResponseVar' El valor predeterminado es la última columna de la matriz.

Por ejemplo,

mdl = fitlm(X,y,'linear', ...     'RobustOpts','on','CategoricalVars',3); mdl2 = stepwiselm(tbl,'constant', ...     'ResponseVar','MPG','Upper','quadratic');

Examine la calidad y ajuste el modelo ajustado

Después de ajustar un modelo, examine el resultado y realice los ajustes.

Visualización del modelo

Un modelo de regresión lineal muestra varios diagnósticos cuando ingresa su nombre o ingresa.disp(mdl) Esta pantalla proporciona parte de la información básica para comprobar si el modelo ajustado representa los datos adecuadamente.

Por ejemplo, ajuste un modelo lineal a los datos construidos con dos de cinco predictores no presentes y sin término de intercepción:

X = randn(100,5); y = X*[1;0;3;0;-1] + randn(100,1); mdl = fitlm(X,y)
mdl =  Linear regression model:     y ~ 1 + x1 + x2 + x3 + x4 + x5  Estimated Coefficients:                    Estimate        SE        tStat        pValue                      _________    ________    ________    __________      (Intercept)     0.038164    0.099458     0.38372       0.70205     x1               0.92794    0.087307      10.628    8.5494e-18     x2             -0.075593     0.10044    -0.75264       0.45355     x3                2.8965    0.099879          29    1.1117e-48     x4              0.045311     0.10832     0.41831       0.67667     x5              -0.99708     0.11799     -8.4504     3.593e-13   Number of observations: 100, Error degrees of freedom: 94 Root Mean Squared Error: 0.972 R-squared: 0.93,  Adjusted R-Squared: 0.926 F-statistic vs. constant model: 248, p-value = 1.5e-52 

Observe que:

  • La pantalla contiene los valores estimados de cada coeficiente en la columna.Estimate Estos valores están razonablemente cerca de los valores verdaderos.[0;1;0;3;0;-1]

  • Hay una columna de error estándar para las estimaciones de coeficiente.

  • Los notificados (que se derivan de las estadísticas () bajo la suposición de errores normales) para los predictores 1, 3 y 5 son extremadamente pequeños.pValuettStat Estos son los tres predictores que se utilizaron para crear los datos de respuesta.y

  • El for, y son mucho más grandes que 0,01.pValue(Intercept)x2x4 Estos tres predictores no se utilizaron para crear los datos de respuesta.y

  • La pantalla contiene

    <math display="inline">
    <mrow>
    <msup>
    <mrow>
    <mi mathvariant="italic">R</mi>
    </mrow>
    <mrow>
    <mn>2</mn>
    </mrow>
    </msup>
    </mrow>
    </math>
    Ajustado
    <math>
    <msup>
    <mrow>
    <mi mathvariant="italic">R</mi>
    </mrow>
    <mrow>
    <mn>2</mn>
    </mrow>
    </msup>
    </math>
    , y las estadísticas.F

Anova

Para examinar la calidad del modelo ajustado, consulte una tabla ANOVA. Por ejemplo, se utiliza en un modelo lineal con cinco predictores:anova

tbl = anova(mdl)
tbl=6×5 table
              SumSq     DF    MeanSq        F         pValue  
             _______    __    _______    _______    __________

    x1        106.62     1     106.62     112.96    8.5494e-18
    x2       0.53464     1    0.53464    0.56646       0.45355
    x3        793.74     1     793.74     840.98    1.1117e-48
    x4       0.16515     1    0.16515    0.17498       0.67667
    x5        67.398     1     67.398      71.41     3.593e-13
    Error     88.719    94    0.94382                         

Esta tabla da resultados algo diferentes a la visualización del modelo. La tabla muestra claramente que los efectos y no son significativos.x2x4 Dependiendo de sus objetivos, considere la posibilidad de quitar y del modelo.x2x4

Diagramas de diagnóstico

Los diagramas de diagnóstico le ayudan a identificar los valores atípicos y a ver otros problemas en el modelo o en el ajuste. Por ejemplo, cargue los datos y haga un modelo como función de (categórico) y:carsmallMPGCylindersWeight

load carsmall tbl = table(Weight,MPG,Cylinders); tbl.Cylinders = categorical(tbl.Cylinders); mdl = fitlm(tbl,'MPG ~ Cylinders*Weight + Weight^2');

Haga una gráfica de apalancamiento de los datos y el modelo.

plotDiagnostics(mdl)

Hay algunos puntos con alto apalancamiento. Pero esta trama no revela si los puntos de alto apalancamiento son valores atípicos.

Busque puntos con gran distancia de Cook.

plotDiagnostics(mdl,'cookd')

Hay un punto con gran distancia de Cook. Identifíquese y quítese del modelo. Puede utilizar el cursor de datos para hacer clic en el valor atípico e identificarlo o identificarlo mediante programación:

[~,larg] = max(mdl.Diagnostics.CooksDistance); mdl2 = fitlm(tbl,'MPG ~ Cylinders*Weight + Weight^2','Exclude',larg);

Residuos: calidad de modelo para datos de entrenamiento

Hay varias parcelas residuales para ayudarle a detectar errores, valores atípicos o correlaciones en el modelo o los datos. Las parcelas residuales más simples son la gráfica de histograma predeterminada, que muestra el rango de los residuos y sus frecuencias, y la gráfica de probabilidad, que muestra cómo la distribución de los residuos se compara con una distribución normal con varianza coincidente.

Examine los residuos:

plotResiduals(mdl)

Las observaciones anteriores a 12 son valores atípicos potenciales.

plotResiduals(mdl,'probability')

Los dos posibles valores atípicos también aparecen en esta gráfica. De lo contrario, la gráfica de probabilidad parece razonablemente recta, lo que significa un ajuste razonable a los residuos normalmente distribuidos.

Puede identificar los dos valores atípicos y eliminarlos de los datos:

outl = find(mdl.Residuals.Raw > 12)
outl = 2×1

    90
    97

Para eliminar los valores atípicos, utilice el par nombre-valor:Exclude

mdl3 = fitlm(tbl,'MPG ~ Cylinders*Weight + Weight^2','Exclude',outl);

Examine una gráfica de residuos de mdl2:

plotResiduals(mdl3)

La nueva gráfica de residuos se ve bastante simétrica, sin problemas obvios. Sin embargo, puede haber alguna correlación serial entre los residuos. Cree un nuevo trazado para ver si existe tal efecto.

plotResiduals(mdl3,'lagged')

El gráfico de dispersión muestra muchas más cruces en los cuadrantes superior derecho e inferior izquierdo que en los otros dos cuadrantes, lo que indica una correlación serial positiva entre los residuos.

Otro problema potencial es cuando los residuos son grandes para las observaciones grandes. Vea si el modelo actual tiene este problema.

plotResiduals(mdl3,'fitted')

Existe cierta tendencia a que los valores ajustados más grandes tengan residuos más grandes. Quizás los errores del modelo sean proporcionales a los valores medidos.

Parcelas para entender los efectos predictores

En este ejemplo se muestra cómo comprender el efecto que tiene cada predictor en un modelo de regresión utilizando una variedad de trazados disponibles.

Examine un gráfico de sectores de las respuestas. Esto muestra el efecto de cada predictor por separado.

plotSlice(mdl)

Puede arrastrar los valores predictores individuales, que se representan mediante líneas verticales azules discontinuas. También puede elegir entre límites de confianza simultáneos y no simultáneos, que se representan mediante curvas rojas discontinuas.

Utilice una gráfica de efectos para mostrar otra vista del efecto de los predictores en la respuesta.

plotEffects(mdl)

Esta gráfica muestra que el cambio de aproximadamente 2500 a 4732 disminuye en aproximadamente 30 (la ubicación del círculo azul superior).WeightMPG También muestra que cambiar el número de cilindros de 8 a 4 aumenta alrededor de 10 (el círculo azul inferior).MPG Las líneas azules horizontales representan intervalos de confianza para estas predicciones. Las predicciones provienen de promediar sobre un predictor mientras que el otro se cambia. En casos como este, donde los dos predictores están correlacionados, tenga cuidado al interpretar los resultados.

En lugar de ver el efecto de promediar sobre un predictor mientras se cambia el otro, examine la interacción de la articulación en una gráfica de interacción.

plotInteraction(mdl,'Weight','Cylinders')

La gráfica de interacción muestra el efecto de cambiar un predictor con el otro mantenido fijo. En este caso, la trama es mucho más informativa. Muestra, por ejemplo, que bajar el número de cilindros en un coche relativamente ligero (= 1795) conduce a un aumento en el kilometraje, pero bajando el número de cilindros en un coche relativamente pesado (= 4732) conduce a una disminución en el kilometraje.WeightWeight

Para obtener una mirada aún más detallada de las interacciones, mire una gráfica de interacción con predicciones. Esta gráfica mantiene un predictor fijo mientras varía el otro, y traza el efecto como una curva. Mira las interacciones para varios números fijos de cilindros.

plotInteraction(mdl,'Cylinders','Weight','predictions')

Ahora mira las interacciones con varios niveles fijos de peso.

plotInteraction(mdl,'Weight','Cylinders','predictions')

Parcelas para entender los efectos de los términos

En este ejemplo se muestra cómo comprender el efecto de cada término en un modelo de regresión utilizando una variedad de trazados disponibles.

Cree una gráfica de variable añadida con la variable añadida.Weight^2

plotAdded(mdl,'Weight^2')

Esta gráfica muestra los resultados de la adaptación de ambos y a los términos que no sean.Weight^2MPGWeight^2 La razón para usar es entender qué mejora adicional en el modelo se obtiene agregando.plotAddedWeight^2 El coeficiente de una línea que se ajusta a estos puntos es el coeficiente del modelo completo.Weight^2 El predictor está justo por encima del borde de significancia (< 0,05) como se puede ver en la visualización de la tabla de coeficientes.Weight^2pValue Se puede ver que en la trama, así. Los límites de confianza se ven como si no pudieran contener una línea horizontal (constante), por lo que un modelo de pendiente cero no es coherente con los datos.y

Cree una gráfica de variable añadida para el modelo como un todo.

plotAdded(mdl)

El modelo como un todo es muy significativo, por lo que los límites no se acercan a contener una línea horizontal. La pendiente de la línea es la pendiente de un ajuste a los predictores proyectados en su dirección de mejor ajuste, o en otras palabras, la norma del vector de coeficiente.

Cambiar modelos

Hay dos formas de cambiar un modelo:

Si ha creado un modelo utilizando, sólo puede tener un efecto si se dan diferentes modelos superiores o inferiores. no funciona cuando se ajusta un modelo mediante.stepwiselmstepstepRobustOpts

Por ejemplo, empiece con un modelo lineal de kilometraje a partir de los datos:carbig

load carbig tbl = table(Acceleration,Displacement,Horsepower,Weight,MPG); mdl = fitlm(tbl,'linear','ResponseVar','MPG')
mdl =  Linear regression model:     MPG ~ 1 + Acceleration + Displacement + Horsepower + Weight  Estimated Coefficients:                      Estimate         SE         tStat        pValue                       __________    __________    ________    __________      (Intercept)         45.251         2.456      18.424    7.0721e-55     Acceleration     -0.023148        0.1256     -0.1843       0.85388     Displacement    -0.0060009     0.0067093    -0.89441       0.37166     Horsepower       -0.043608      0.016573     -2.6312      0.008849     Weight          -0.0052805    0.00081085     -6.5123    2.3025e-10   Number of observations: 392, Error degrees of freedom: 387 Root Mean Squared Error: 4.25 R-squared: 0.707,  Adjusted R-Squared: 0.704 F-statistic vs. constant model: 233, p-value = 9.63e-102 

Intente mejorar el modelo con un paso de hasta 10 pasos:

mdl1 = step(mdl,'NSteps',10)
1. Adding Displacement:Horsepower, FStat = 87.4802, pValue = 7.05273e-19 
mdl1 =  Linear regression model:     MPG ~ 1 + Acceleration + Weight + Displacement*Horsepower  Estimated Coefficients:                                 Estimate         SE         tStat       pValue                                  __________    __________    _______    __________      (Intercept)                    61.285        2.8052     21.847    1.8593e-69     Acceleration                 -0.34401       0.11862       -2.9     0.0039445     Displacement                -0.081198      0.010071    -8.0623    9.5014e-15     Horsepower                   -0.24313      0.026068    -9.3265    8.6556e-19     Weight                     -0.0014367    0.00084041    -1.7095      0.088166     Displacement:Horsepower    0.00054236    5.7987e-05     9.3531    7.0527e-19   Number of observations: 392, Error degrees of freedom: 386 Root Mean Squared Error: 3.84 R-squared: 0.761,  Adjusted R-Squared: 0.758 F-statistic vs. constant model: 246, p-value = 1.32e-117 

detenido después de un solo cambio.step

Para intentar simplificar el modelo, elimine los términos y condiciones de:AccelerationWeightmdl1

mdl2 = removeTerms(mdl1,'Acceleration + Weight')
mdl2 =  Linear regression model:     MPG ~ 1 + Displacement*Horsepower  Estimated Coefficients:                                 Estimate        SE         tStat       pValue                                   __________    _________    _______    ___________      (Intercept)                    53.051        1.526     34.765    3.0201e-121     Displacement                -0.098046    0.0066817    -14.674     4.3203e-39     Horsepower                   -0.23434     0.019593     -11.96     2.8024e-28     Displacement:Horsepower    0.00058278    5.193e-05     11.222     1.6816e-25   Number of observations: 392, Error degrees of freedom: 388 Root Mean Squared Error: 3.94 R-squared: 0.747,  Adjusted R-Squared: 0.745 F-statistic vs. constant model: 381, p-value = 3e-115 

utiliza justo y, y tiene casi tan buen ajuste a los datos como en la métrica.mdl2DisplacementHorsepowermdl1Adjusted R-Squared

Predecir o simular respuestas a nuevos datos

Un objeto ofrece tres funciones para predecir o simular la respuesta a nuevos datos:, y.LinearModelpredictfevalrandom

Predecir

Utilice la función para predecir y obtener intervalos de confianza en las predicciones.predict

Cargue los datos y cree un modelo lineal predeterminado de la respuesta a los, y predictores.carbigMPGAccelerationDisplacementHorsepowerWeight

load carbig X = [Acceleration,Displacement,Horsepower,Weight]; mdl = fitlm(X,MPG);

Cree una matriz de tres filas de predictores a partir de los valores mínimo, medio y máximo. contiene algunos valores, por lo que utilice funciones que ignoran valores.XNaNNaN

Xnew = [nanmin(X);nanmean(X);nanmax(X)];

Busque las respuestas del modelo pronosticadas y los intervalos de confianza en las predicciones.

[NewMPG, NewMPGCI] = predict(mdl,Xnew)
NewMPG = 3×1

   34.1345
   23.4078
    4.7751

NewMPGCI = 3×2

   31.6115   36.6575
   22.9859   23.8298
    0.6134    8.9367

La confianza vinculada a la respuesta media es más estrecha que la de las respuestas mínimas o máximas.

FEVAL

Utilice la función para predecir las respuestas.feval Cuando se crea un modelo a partir de una tabla o matriz de DataSet, a menudo es más conveniente que para predecir las respuestas.FEVALPredecir Cuando tenga nuevos Datos predictores, puede pasarlos sin crear una tabla o matriz.FEVAL Sin embargo, no proporciona límites de confianza.FEVAL

Cargue el conjunto de datos y cree un modelo lineal predeterminado de la respuesta a los predictores, y.carbigMPGAccelerationDisplacementHorsepowerWeight

load carbig tbl = table(Acceleration,Displacement,Horsepower,Weight,MPG); mdl = fitlm(tbl,'linear','ResponseVar','MPG');

Predecir la respuesta del modelo para los valores medio de los predictores.

NewMPG = feval(mdl,nanmean(Acceleration),nanmean(Displacement),nanmean(Horsepower),nanmean(Weight))
NewMPG = 23.4078 

Aleatorio

Utilice la función para simular respuestas.random La función simula nuevos valores de respuesta aleatoria, igual a la predicción media más una perturbación aleatoria con la misma varianza que los datos de entrenamiento.Aleatorio

Cargue los datos y cree un modelo lineal predeterminado de la respuesta a los, y predictores.carbigMPGAccelerationDisplacementHorsepowerWeight

load carbig X = [Acceleration,Displacement,Horsepower,Weight]; mdl = fitlm(X,MPG);

Cree una matriz de tres filas de predictores a partir de los valores mínimo, medio y máximo.

Xnew = [nanmin(X);nanmean(X);nanmax(X)];

Genere nuevas respuestas de modelo previstas, incluida cierta aleatoriedad.

rng('default') % for reproducibility NewMPG = random(mdl,Xnew)
NewMPG = 3×1

   36.4178
   31.1958
   -4.8176

Debido a que un valor negativo de no parece sensato, intente predecir dos veces más.MPG

NewMPG = random(mdl,Xnew)
NewMPG = 3×1

   37.7959
   24.7615
   -0.7783

NewMPG = random(mdl,Xnew)
NewMPG = 3×1

   32.2931
   24.8628
   19.9715

Claramente, las predicciones para la tercera fila (máxima) de no son confiables.Xnew

Compartir modelos ajustados

Supongamos que tiene un modelo de regresión lineal, por ejemplo, de los siguientes comandos.mdl

load carbig tbl = table(Acceleration,Displacement,Horsepower,Weight,MPG); mdl = fitlm(tbl,'linear','ResponseVar','MPG');

Para compartir el modelo con otras personas, puede:

  • Proporcione la visualización del modelo.

mdl
mdl =  Linear regression model:     MPG ~ 1 + Acceleration + Displacement + Horsepower + Weight  Estimated Coefficients:                      Estimate         SE         tStat        pValue                       __________    __________    ________    __________      (Intercept)         45.251         2.456      18.424    7.0721e-55     Acceleration     -0.023148        0.1256     -0.1843       0.85388     Displacement    -0.0060009     0.0067093    -0.89441       0.37166     Horsepower       -0.043608      0.016573     -2.6312      0.008849     Weight          -0.0052805    0.00081085     -6.5123    2.3025e-10   Number of observations: 392, Error degrees of freedom: 387 Root Mean Squared Error: 4.25 R-squared: 0.707,  Adjusted R-Squared: 0.704 F-statistic vs. constant model: 233, p-value = 9.63e-102 
  • Proporcione la definición y los coeficientes del modelo.

mdl.Formula
ans =  MPG ~ 1 + Acceleration + Displacement + Horsepower + Weight 
mdl.CoefficientNames
ans = 1x5 cell array
  Columns 1 through 4

    {'(Intercept)'}    {'Acceleration'}    {'Displacement'}    {'Horsepower'}

  Column 5

    {'Weight'}

mdl.Coefficients.Estimate
ans = 5×1

   45.2511
   -0.0231
   -0.0060
   -0.0436
   -0.0053

Consulte también

| | | | | | |

Temas relacionados