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.
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 matriz de tabla o conjunto de datos y datos de respuesta como una columna en .X
y
tbl
tbl
Cada fila de los datos de entrada representa una observación. Cada columna representa un predictor (variable).
Para una tabla o matriz de conjuntos de datos, 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:2
3
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 ajuste suponen que estos tipos de datos son categóricos:tbl
Vector lógico
Vector categórico
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 que faltan como .NaN
Para representar los datos que faltan para otros tipos de datos, consulte .Missing Group Values
Para crear una matriz de conjuntos de datos a partir de una hoja de cálculo:Excel®
ds = dataset('XLSFile','hospital.xls', ... 'ReadObsNames',true);
Para crear una matriz de conjuntos de datos a partir de variables de espacio de trabajo:
load carsmall ds = dataset(MPG,Weight); ds.Year = categorical(Model_Year);
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);
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
Observe que las entradas no numéricas, como , no aparecen en .sex
X
Hay tres formas de ajustar un modelo a los datos:
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 desea explorar algunos modelos. El método requiere que examine los datos manualmente para descartar valores atípicos, aunque hay técnicas para ayudar (ver ).Examine la calidad y ajuste el modelo ajustado
Utilícelo con el par nombre-valor para crear un modelo que se vea poco afectado por los valores atípicos.fitlm
RobustOpts
El ajuste robusto le ahorra el problema de desechar 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 a paso para un buen modelo.
Se utiliza para buscar un modelo y ajustar los parámetros al modelo. comienza de un modelo, como una constante, y suma o resta términos uno a la vez, eligiendo un término óptimo cada vez de una manera codiciosa, hasta que no puede mejorar aún más.stepwiselm
stepwiselm
Utilice el ajuste escalonado para encontrar un buen modelo, que es uno que sólo tiene términos relevantes.
El resultado depende del modelo inicial. Normalmente, comenzar con un modelo constante conduce a un modelo pequeño. Comenzar con más términos puede dar lugar a un modelo más complejo, pero uno que tiene un error cuadrado medio inferior. Ver.Compare large and small stepwise models
No se pueden utilizar opciones robustas junto con el ajuste escalonado. Por lo tanto, después de un ajuste escalonado, examine el modelo en busca de valores atípicos (consulte ).Examine la calidad y ajuste el modelo ajustado
Hay varias formas de especificar un modelo para la regresión lineal. Utilice lo que encuentre más conveniente.
Para , la especificación del modelo que proporcione es el modelo que se ajusta.fitlm
Si no proporciona una especificación de modelo, el valor predeterminado es .'linear'
Para , la especificación del modelo que se proporciona es el modelo inicial, que el procedimiento escalonado intenta mejorar.stepwiselm
Si no proporciona una especificación de modelo, el modelo inicial predeterminado es , y el modelo delimitador superior predeterminado es .'constant'
'interactions'
Cambie el modelo delimitador superior utilizando el par nombre-valor.Upper
Nota
Existen otras formas de seleccionar modelos, como usar , , , o .lasso
lassoglm
sequentialfs
plsregress
Nombre | Tipo de modelo |
---|---|
'constant' | El modelo contiene solo un término constante (intercept). |
'linear' | El modelo contiene una intercepción y términos lineales para cada predictor. |
'interactions' | El modelo contiene una interceptación, términos lineales y todos los productos de pares de predictores distintos (sin términos al cuadrado). |
'purequadratic' | El modelo contiene una interceptación, términos lineales y términos al cuadrado. |
'quadratic' | El modelo contiene una interceptación, términos lineales, interacciones y términos al cuadrado. |
'poly | 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 números a través de .0 9 Por ejemplo, tiene una constante más todos los términos lineales y del producto, y también contiene términos con predictor 1 al cuadrado.'poly2111' |
Por ejemplo, para especificar un modelo de interacción utilizando predictores de matriz:fitlm
mdl = fitlm(X,y,'interactions');
Para especificar un modelo mediante y una matriz de predictores de tabla o conjunto de datos, suponga que desea empezar desde una constante y tener un límite superior del modelo lineal.stepwiselm
tbl
Supongamos que la variable de respuesta está en la tercera columna.tbl
mdl2 = stepwiselm(tbl,'constant', ... 'Upper','linear','ResponseVar',3);
Una matriz de términos es una matriz -by-( + 1) que especifica términos en un modelo, donde es el número de términos, es el número de variables predictoras y +1 cuenta para la variable de respuesta.T
tptp El valor de es el exponente de variable en el término .T(i,j)
j
i
Por ejemplo, supongamos que una entrada incluye tres variables predictoras , , y la variable de respuesta en el orden , , , y .A
B
C
Y
A
B
C
Y
Cada fila de representa un término:T
— Término constante o interceptación[0 0 0 0]
— ; Equivalente[0 1 0 0]
B
A^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 predictor y de respuesta en una matriz y un vector de columna, debe incluir para la variable de respuesta en la última columna de cada fila.0
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
Nombres de variables
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 en repetida, 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 (interceptar) 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 interceptación. es un modelo lineal de tres variables sin interceptación. es un modelo de tres variables con interceptació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^2
B
'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'
A
B
C
'Y ~ A*(B + C + D)'
A
Por ejemplo, para especificar un modelo de interacción utilizando predictores de matriz:fitlm
mdl = fitlm(X,y,'y ~ x1*x2*x3 - x1:x2:x3');
Para especificar un modelo mediante y una matriz de predictores de tabla o conjunto de datos, suponga que desea empezar desde una constante y tener un límite superior del modelo lineal.stepwiselm
tbl
Supongamos que la variable de respuesta se denomina , y las variables predictoras se denominan , , y .tbl
'y'
'x1'
'x2'
'x3'
mdl2 = stepwiselm(tbl,'y ~ 1','Upper','y ~ x1 + x2 + x3');
Los argumentos opcionales más comunes para el ajuste:
Para una regresión robusta en , establezca el par nombre-valor en .fitlm
'RobustOpts'
'on'
Especifique un modelo de límite superior adecuado en , como establecer en .stepwiselm
'Upper'
'linear'
Indique qué variables son categóricas utilizando el par nombre-valor.'CategoricalVars'
Proporcione un vector con números de columna, por ejemplo, para especificar que los predictores y son categóricos.[1 6]
1
6
Como alternativa, asigne a un vector lógico la misma longitud que las columnas de datos, con una entrada que indique que la variable es categórica.1
Si hay siete predictores y predictores y son categóricos, especifique .1
6
logical([1,0,0,0,0,1,0])
Para una tabla o matriz de conjunto de datos, especifique la variable de respuesta mediante 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');
Después de ajustar un modelo, examine el resultado y realice ajustes.
Visualización del modelo
Un modelo de regresión lineal muestra varios diagnósticos al introducir su nombre o escribir .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 interceptació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
Tenga en cuenta que:
La visualización 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 informes (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.pValue
ttStat
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)
x2
x4
Estos tres predictores no se utilizaron para crear los datos de respuesta.y
La pantalla contiene
Anova
Para examinar la calidad del modelo ajustado, consulte una mesa ANOVA. Por ejemplo, utilice 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 proporciona resultados algo diferentes que la visualización del modelo. El cuadro muestra claramente que los efectos de y no son significativos.x2
x4
Dependiendo de sus objetivos, considere la posibilidad de quitar y del modelo.x2
x4
Gráficas de diagnóstico
Las gráficas de diagnóstico le ayudan a identificar valores atípicos y a ver otros problemas en el modelo o en el ajuste. Por ejemplo, cargue los datos y haga un modelo de como una función de (categórico) y :carsmall
MPG
Cylinders
Weight
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 un 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íquelo y elimínelo del modelo. Puede utilizar el cursor de datos para hacer clic en el atípico e identificarlo, o identificarlo mediante programación:
[~,larg] = max(mdl.Diagnostics.CooksDistance); mdl2 = fitlm(tbl,'MPG ~ Cylinders*Weight + Weight^2','Exclude',larg);
Residuales — Calidad del modelo para los datos de formación
Hay varias gráficas residuales para ayudarle a detectar errores, valores atípicos o correlaciones en el modelo o los datos. Las gráficas 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 superiores a 12 son posibles valores atípicos.
plotResiduals(mdl,'probability')
Los dos valores atípicos potenciales también aparecen en esta trama. De lo contrario, la gráfica de probabilidad parece razonablemente recta, lo que significa un ajuste razonable a los residuos distribuidos normalmente.
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 cierta correlación serial entre los residuos. Cree un nuevo trazado para ver si existe tal efecto.
plotResiduals(mdl3,'lagged')
La gráfica 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 observaciones grandes. Compruebe si el modelo actual tiene este problema.
plotResiduals(mdl3,'fitted')
Hay cierta tendencia a que los valores ajustados más grandes tengan residuos más grandes. Tal vez los errores del modelo son proporcionales a los valores medidos.
Gráficas para comprender los efectos predictores
En este ejemplo se muestra cómo comprender el efecto que tiene cada predictor en un modelo de regresión mediante 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 del predictor individual, 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 están representados por curvas rojas discontinuas.
Utilice un trazado de efectos para mostrar otra vista del efecto de los predictores en la respuesta.
plotEffects(mdl)
Esta gráfica muestra que cambiar de aproximadamente 2500 a 4732 baja por unos 30 (la ubicación del círculo azul superior).Weight
MPG
También muestra que cambiar el número de cilindros de 8 a 4 aumenta por 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 más de un predictor, ya que se cambia el otro. 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 a medida que se cambia el otro, examine la interacción conjunta 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 fijo. En este caso, la trama es mucho más informativa. Muestra, por ejemplo, que la reducción del número de cilindros en un coche relativamente ligero (1795) conduce a un aumento en el kilometraje, pero la reducción del número de cilindros en un coche relativamente pesado (4732) conduce a una disminución en el kilometraje.Weight
Weight
Para obtener una visión aún más detallada de las interacciones, mire una gráfica de interacción con las predicciones. Esta gráfica mantiene un predictor fijo mientras varía el otro, y traza el efecto como una curva. Observe las interacciones de 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 comprender 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 un trazado variable añadido con como variable añadida.Weight^2
plotAdded(mdl,'Weight^2')
Esta gráfica muestra los resultados de la adaptación tanto como a los términos distintos de .Weight^2
MPG
Weight^2
La razón para usar es entender qué mejora adicional en el modelo se obtiene mediante la adición de .plotAdded
Weight^2
El coeficiente de ajuste de una línea a estos puntos es el coeficiente de en el modelo completo.Weight^2
El predictor está justo sobre el borde de la significancia ( < 0.05) como se puede ver en la visualización de la tabla de coeficientes.Weight^2
pValue
Se puede ver que en la parcela también. Los límites de confianza parecen que no podían contener una línea horizontal (constante), por lo que un modelo de pendiente cero no es coherente con los datos.y
Cree un trazado variable añadido para el modelo en su conjunto.
plotAdded(mdl)
El modelo en su conjunto 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 ajuste más adecuado, o en otras palabras, la norma del vector de coeficiente.
Cambiar modelos
Hay dos maneras de cambiar un modelo:
— Añadir o restar términos de uno en uno, donde elige el término más importante para agregar o eliminar.step
step
y — Añadir o eliminar términos especificados.addTerms
removeTerms
Proporcione los términos en cualquiera de los formularios descritos en .Elija un modelo o una gama de modelos
Si ha creado un modelo utilizando , puede tener un efecto solo si proporciona diferentes modelos superiores o inferiores. no funciona cuando se ajusta un modelo mediante .stepwiselm
step
step
RobustOpts
Por ejemplo, comience 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 mediante el paso para un máximo de 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
se detuvo después de un solo cambio.step
Para intentar simplificar el modelo, elimine los términos y de:Acceleration
Weight
mdl1
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 just y , y tiene casi tan bueno como en los datos como en la métrica.mdl2
Displacement
Horsepower
mdl1
Adjusted R-Squared
Un objeto ofrece tres funciones para predecir o simular la respuesta a nuevos datos: , , y .LinearModel
predict
feval
random
predict
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 predictores , , , y .carbig
MPG
Acceleration
Displacement
Horsepower
Weight
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, así que utilice funciones que ignoren los valores.X
NaN
NaN
Xnew = [nanmin(X);nanmean(X);nanmax(X)];
Encuentre 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 limitada en 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 conjunto de datos, suele ser más conveniente que para predecir respuestas.feval
predict
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 .carbig
MPG
Acceleration
Displacement
Horsepower
Weight
load carbig tbl = table(Acceleration,Displacement,Horsepower,Weight,MPG); mdl = fitlm(tbl,'linear','ResponseVar','MPG');
Predecir la respuesta del modelo para los valores medios de los predictores.
NewMPG = feval(mdl,nanmean(Acceleration),nanmean(Displacement),nanmean(Horsepower),nanmean(Weight))
NewMPG = 23.4078
random
Utilice la función para simular respuestas.random
La función simula nuevos valores de respuesta aleatoria, igual es la predicción media más una perturbación aleatoria con la misma varianza que los datos de entrenamiento.random
Cargue los datos y cree un modelo lineal predeterminado de la respuesta a los predictores , , , y .carbig
MPG
Acceleration
Displacement
Horsepower
Weight
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 predichas, 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
Supongamos que tiene un modelo de regresión lineal, como 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
anova
| fitlm
| lasso
| LinearModel
| plotResiduals
| predict
| sequentialfs
| stepwiselm