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.
Ajustar modelo de regresión lineal
especifica opciones adicionales mediante uno o más argumentos de par nombre-valor. Por ejemplo, puede especificar qué variables son categóricas, realizar una regresión robusta o utilizar ponderaciones de observación.mdl
= fitlm(___,Name,Value
)
Ajuste un modelo de regresión lineal mediante un conjunto de datos de entrada de matriz.
Cargue el conjunto de datos, un conjunto de datos de entrada de matriz.carsmall
load carsmall X = [Weight,Horsepower,Acceleration];
Ajuste un modelo de regresión lineal utilizando .fitlm
mdl = fitlm(X,MPG)
mdl = Linear regression model: y ~ 1 + x1 + x2 + x3 Estimated Coefficients: Estimate SE tStat pValue __________ _________ _________ __________ (Intercept) 47.977 3.8785 12.37 4.8957e-21 x1 -0.0065416 0.0011274 -5.8023 9.8742e-08 x2 -0.042943 0.024313 -1.7663 0.08078 x3 -0.011583 0.19333 -0.059913 0.95236 Number of observations: 93, Error degrees of freedom: 89 Root Mean Squared Error: 4.09 R-squared: 0.752, Adjusted R-Squared: 0.744 F-statistic vs. constant model: 90, p-value = 7.38e-27
La visualización del modelo incluye la fórmula del modelo, los coeficientes estimados y las estadísticas de resumen del modelo.
La fórmula del modelo en la pantalla, , corresponde ay ~ 1 + x1 + x2 + x3
La visualización del modelo también muestra la información de coeficiente estimada, que se almacena en la propiedad.Coefficients
Muestre la propiedad.Coefficients
mdl.Coefficients
ans=4×4 table
Estimate SE tStat pValue
__________ _________ _________ __________
(Intercept) 47.977 3.8785 12.37 4.8957e-21
x1 -0.0065416 0.0011274 -5.8023 9.8742e-08
x2 -0.042943 0.024313 -1.7663 0.08078
x3 -0.011583 0.19333 -0.059913 0.95236
La propiedad incluye estas columnas:Coefficient
— Estimaciones de coeficiente para cada término correspondiente en el modelo.Estimate
Por ejemplo, la estimación del término constante ( ) es 47.977.intercept
— Error estándar de los coeficientes.SE
— -estadística para cada coeficiente para probar la hipótesis nula de que el coeficiente correspondiente es cero con respecto a la alternativa de que es diferente de cero, dados los otros predictores en el modelo.tStat
t Tenga en cuenta que .tStat = Estimate/SE
Por ejemplo, la estadística para la interceptación es 47.977/3.8785 a 12,37.t
— -valor para la estadística de la prueba de hipótesis de que el coeficiente correspondiente es igual a cero o no.pValue
pt Por ejemplo, el valor -value de la -statistic para es mayor que 0.05, por lo que este término no es significativo en el nivel de significancia del 5% dados los otros términos en el modelo.ptx2
Las estadísticas resumidos del modelo son:
— Número de filas sin valores.Number of observations
NaN
Por ejemplo, es 93 porque el vector de datos tiene seis valores y el vector de datos tiene un valor para una observación diferente, donde el número de filas en y es 100.Number of observations
MPG
NaN
Horsepower
NaN
X
MPG
— – , donde está el número de observaciones y está el número de coeficientes en el modelo, incluida la interceptación.Error degrees of freedom
n pnp Por ejemplo, el modelo tiene cuatro predictores, por lo que el es 93 – 4 x 89.Error degrees of freedom
— Raíz cuadrada del error cuadrado medio, que estima la desviación estándar de la distribución del error.Root mean squared error
y — Coeficiente de determinación y coeficiente de determinación ajustado, respectivamente.R-squared
Adjusted R-squared
Por ejemplo, el valor sugiere que el modelo explica aproximadamente el 75% de la variabilidad en la variable de respuesta.R-squared
MPG
— Estadística de prueba para la prueba -test en el modelo de regresión, que comprueba si el modelo se ajusta significativamente mejor que un modelo degenerado que consiste en sólo un término constante.F-statistic vs. constant model
F
— -value para la prueba en el modelo.p-value
pF Por ejemplo, el modelo es significativo con un valor de 7.3816e-27.p
Puede encontrar estas estadísticas en las propiedades del modelo ( , , , y ) y mediante la función.NumObservations
DFE
RMSE
Rsquared
anova
anova(mdl,'summary')
ans=3×5 table
SumSq DF MeanSq F pValue
______ __ ______ ______ __________
Total 6004.8 92 65.269
Model 4516 3 1505.3 89.987 7.3816e-27
Residual 1488.8 89 16.728
Cargue los datos de ejemplo.
load carsmall
Almacene las variables en una tabla.
tbl = table(Weight,Acceleration,MPG,'VariableNames',{'Weight','Acceleration','MPG'});
Muestre las primeras cinco filas de la tabla.
tbl(1:5,:)
ans=5×3 table
Weight Acceleration MPG
______ ____________ ___
3504 12 18
3693 11.5 15
3436 11 18
3433 12 16
3449 10.5 17
Ajuste un modelo de regresión lineal para millas por galón (MPG). Especifique la fórmula del modelo mediante la notación Wilkinson.
lm = fitlm(tbl,'MPG~Weight+Acceleration')
lm = Linear regression model: MPG ~ 1 + Weight + Acceleration Estimated Coefficients: Estimate SE tStat pValue __________ __________ _______ __________ (Intercept) 45.155 3.4659 13.028 1.6266e-22 Weight -0.0082475 0.00059836 -13.783 5.3165e-24 Acceleration 0.19694 0.14743 1.3359 0.18493 Number of observations: 94, Error degrees of freedom: 91 Root Mean Squared Error: 4.12 R-squared: 0.743, Adjusted R-Squared: 0.738 F-statistic vs. constant model: 132, p-value = 1.38e-27
El modelo de este ejemplo es equivalente a establecer la especificación del modelo como .'MPG~Weight+Acceleration'
'linear'
Por ejemplo,
lm2 = fitlm(tbl,'linear');
Si utiliza un vector de caracteres para la especificación del modelo y no especifica la variable de respuesta, acepta la última variable como la variable de respuesta y las otras variables como variables predictoras.fitlm
tbl
Ajuste un modelo de regresión lineal mediante una fórmula de modelo especificada por la notación Wilkinson.
Cargue los datos de ejemplo.
load carsmall
Almacene las variables en una tabla.
tbl = table(Weight,Acceleration,Model_Year,MPG,'VariableNames',{'Weight','Acceleration','Model_Year','MPG'});
Ajuste un modelo de regresión lineal para millas por galón (MPG) con peso y aceleración como variables predictoras.
lm = fitlm(tbl,'MPG~Weight+Acceleration')
lm = Linear regression model: MPG ~ 1 + Weight + Acceleration Estimated Coefficients: Estimate SE tStat pValue __________ __________ _______ __________ (Intercept) 45.155 3.4659 13.028 1.6266e-22 Weight -0.0082475 0.00059836 -13.783 5.3165e-24 Acceleration 0.19694 0.14743 1.3359 0.18493 Number of observations: 94, Error degrees of freedom: 91 Root Mean Squared Error: 4.12 R-squared: 0.743, Adjusted R-Squared: 0.738 F-statistic vs. constant model: 132, p-value = 1.38e-27
El valor -valor de 0.18493 indica que no tiene un impacto significativo en .pAcceleration
MPG
Quite del modelo e intente mejorar el modelo agregando la variable predictora .Acceleration
Model_Year
Primero defina como una variable categórica.Model_Year
tbl.Model_Year = categorical(tbl.Model_Year); lm = fitlm(tbl,'MPG~Weight+Model_Year')
lm = Linear regression model: MPG ~ 1 + Weight + Model_Year Estimated Coefficients: Estimate SE tStat pValue __________ __________ _______ __________ (Intercept) 40.11 1.5418 26.016 1.2024e-43 Weight -0.0066475 0.00042802 -15.531 3.3639e-27 Model_Year_76 1.9291 0.74761 2.5804 0.011488 Model_Year_82 7.9093 0.84975 9.3078 7.8681e-15 Number of observations: 94, Error degrees of freedom: 90 Root Mean Squared Error: 2.92 R-squared: 0.873, Adjusted R-Squared: 0.868 F-statistic vs. constant model: 206, p-value = 3.83e-40
Especificar mediante la notación Wilkinson le permite actualizar el modelo sin tener que cambiar la matriz de diseño. utiliza solo las variables que se especifican en la fórmula.modelspec
fitlm
También crea las dos variables de indicador ficticias necesarias para la variable categórica.Model_Year
Ajuste un modelo de regresión lineal utilizando una matriz de términos.
Matriz de términos para la entrada de tabla
Si las variables de modelo están en una tabla, una columna de s en una matriz de términos representa la posición de la variable de respuesta.0
Cargue el conjunto de datos.hospital
load hospital
Almacene las variables en una tabla.
t = table(hospital.Sex,hospital.BloodPressure(:,1),hospital.Age,hospital.Smoker, ... 'VariableNames',{'Sex','BloodPressure','Age','Smoker'});
Representar el modelo lineal mediante una matriz de términos.'BloodPressure ~ 1 + Sex + Age + Smoker'
La variable de respuesta está en la segunda columna de la tabla, por lo que la segunda columna de la matriz de términos debe ser una columna de s para la variable de respuesta.0
T = [0 0 0 0;1 0 0 0;0 0 1 0;0 0 0 1]
T = 4×4
0 0 0 0
1 0 0 0
0 0 1 0
0 0 0 1
Ajuste un modelo lineal.
mdl1 = fitlm(t,T)
mdl1 = Linear regression model: BloodPressure ~ 1 + Sex + Age + Smoker Estimated Coefficients: Estimate SE tStat pValue ________ ________ ________ __________ (Intercept) 116.14 2.6107 44.485 7.1287e-66 Sex_Male 0.050106 0.98364 0.050939 0.95948 Age 0.085276 0.066945 1.2738 0.2058 Smoker_1 9.87 1.0346 9.5395 1.4516e-15 Number of observations: 100, Error degrees of freedom: 96 Root Mean Squared Error: 4.78 R-squared: 0.507, Adjusted R-Squared: 0.492 F-statistic vs. constant model: 33, p-value = 9.91e-15
Matriz de términos para la entrada de matriz
Si las variables predictor y de respuesta están en una matriz y un vector de columna, debe incluir para la variable de respuesta al final de cada fila en una matriz de términos.0
Cargue el conjunto de datos y defina la matriz de predictores.carsmall
load carsmall X = [Acceleration,Weight];
Especifique el modelo mediante una matriz de términos.'MPG ~ Acceleration + Weight + Acceleration:Weight + Weight^2'
Este modelo incluye el efecto principal y los términos de interacción bidireccional para las variables y , y un término de segundo orden para la variable .Acceleration
Weight
Weight
T = [0 0 0;1 0 0;0 1 0;1 1 0;0 2 0]
T = 5×3
0 0 0
1 0 0
0 1 0
1 1 0
0 2 0
Ajuste un modelo lineal.
mdl2 = fitlm(X,MPG,T)
mdl2 = Linear regression model: y ~ 1 + x1*x2 + x2^2 Estimated Coefficients: Estimate SE tStat pValue ___________ __________ _______ __________ (Intercept) 48.906 12.589 3.8847 0.00019665 x1 0.54418 0.57125 0.95261 0.34337 x2 -0.012781 0.0060312 -2.1192 0.036857 x1:x2 -0.00010892 0.00017925 -0.6076 0.545 x2^2 9.7518e-07 7.5389e-07 1.2935 0.19917 Number of observations: 94, Error degrees of freedom: 89 Root Mean Squared Error: 4.1 R-squared: 0.751, Adjusted R-Squared: 0.739 F-statistic vs. constant model: 67, p-value = 4.99e-26
Sólo la interceptación y el término, que corresponde a la variable, son significativos en el nivel de significancia del 5%.x2
Weight
Ajuste un modelo de regresión lineal que contenga un predictor categórico. Reordene las categorías del predictor categórico para controlar el nivel de referencia en el modelo. A continuación, se utiliza para probar la importancia de la variable categórica.anova
Modelo con Predictor Categórico
Cargue el conjunto de datos y cree un modelo de regresión lineal en función de .carsmall
MPG
Model_Year
Para tratar el vector numérico como una variable categórica, identifique el predictor mediante el argumento de par nombre-valor.Model_Year
'CategoricalVars'
load carsmall mdl = fitlm(Model_Year,MPG,'CategoricalVars',1,'VarNames',{'Model_Year','MPG'})
mdl = Linear regression model: MPG ~ 1 + Model_Year Estimated Coefficients: Estimate SE tStat pValue ________ ______ ______ __________ (Intercept) 17.69 1.0328 17.127 3.2371e-30 Model_Year_76 3.8839 1.4059 2.7625 0.0069402 Model_Year_82 14.02 1.4369 9.7571 8.2164e-16 Number of observations: 94, Error degrees of freedom: 91 Root Mean Squared Error: 5.56 R-squared: 0.531, Adjusted R-Squared: 0.521 F-statistic vs. constant model: 51.6, p-value = 1.07e-15
La fórmula del modelo en la pantalla, , corresponde aMPG ~ 1 + Model_Year
Dónde Model_Year
La variable incluye tres valores distintos, que puede comprobar mediante la función.Model_Year
unique
unique(Model_Year)
ans = 3×1
70
76
82
elige el valor más pequeño como nivel de referencia ( ) y crea dos variables indicadorasfitlm
Model_Year
'70'
Modelo con variables indicadoras completas
Puede interpretar la fórmula del modelo como un modelo que tiene tres variables de indicador sin un término de interceptación:mdl
Como alternativa, puede crear un modelo que tenga tres variables de indicador sin un término de interceptación creando manualmente variables de indicador y especificando la fórmula del modelo.
temp_Year = dummyvar(categorical(Model_Year)); Model_Year_70 = temp_Year(:,1); Model_Year_76 = temp_Year(:,2); Model_Year_82 = temp_Year(:,3); tbl = table(Model_Year_70,Model_Year_76,Model_Year_82,MPG); mdl = fitlm(tbl,'MPG ~ Model_Year_70 + Model_Year_76 + Model_Year_82 - 1')
mdl = Linear regression model: MPG ~ Model_Year_70 + Model_Year_76 + Model_Year_82 Estimated Coefficients: Estimate SE tStat pValue ________ _______ ______ __________ Model_Year_70 17.69 1.0328 17.127 3.2371e-30 Model_Year_76 21.574 0.95387 22.617 4.0156e-39 Model_Year_82 31.71 0.99896 31.743 5.2234e-51 Number of observations: 94, Error degrees of freedom: 91 Root Mean Squared Error: 5.56
Elija Nivel de referencia en el modelo
Puede elegir un nivel de referencia modificando el orden de las categorías en una variable categórica. En primer lugar, cree una variable categórica .Year
Year = categorical(Model_Year);
Compruebe el orden de las categorías utilizando la función.categories
categories(Year)
ans = 3x1 cell array
{'70'}
{'76'}
{'82'}
Si utiliza como variable predictora, elija la primera categoría como nivel de referencia.Year
fitlm
'70'
Reordenar mediante la función.Year
reordercats
Year_reordered = reordercats(Year,{'76','70','82'}); categories(Year_reordered)
ans = 3x1 cell array
{'76'}
{'70'}
{'82'}
La primera categoría de es .Year_reordered
'76'
Cree un modelo de regresión lineal de como función de .MPG
Year_reordered
mdl2 = fitlm(Year_reordered,MPG,'VarNames',{'Model_Year','MPG'})
mdl2 = Linear regression model: MPG ~ 1 + Model_Year Estimated Coefficients: Estimate SE tStat pValue ________ _______ _______ __________ (Intercept) 21.574 0.95387 22.617 4.0156e-39 Model_Year_70 -3.8839 1.4059 -2.7625 0.0069402 Model_Year_82 10.136 1.3812 7.3385 8.7634e-11 Number of observations: 94, Error degrees of freedom: 91 Root Mean Squared Error: 5.56 R-squared: 0.531, Adjusted R-Squared: 0.521 F-statistic vs. constant model: 51.6, p-value = 1.07e-15
utiliza como nivel de referencia e incluye dos variables indicadorasmdl2
'76'
Evaluar el predictor categórico
La visualización del modelo de incluye un -valor de cada término para probar si el coeficiente correspondiente es igual a cero.mdl2
p Cada valor examina cada variable de indicador.p Para examinar la variable categórica como un grupo de variables indicadoras, utilice .Model_Year
anova
Utilice la opción (predeterminada) para devolver una tabla ANOVA de componente que incluya estadísticas de ANOVA para cada variable del modelo excepto el término constante.'components'
anova(mdl2,'components')
ans=2×5 table
SumSq DF MeanSq F pValue
______ __ ______ _____ __________
Model_Year 3190.1 2 1595.1 51.56 1.0694e-15
Error 2815.2 91 30.936
La tabla ANOVA del componente incluye el valor -valor de la variable, que es menor que los valores de las variables del indicador.pModel_Year
p
Ajuste un modelo de regresión lineal a los datos de muestra. Especifique las variables de respuesta y predictor e incluya solo términos de interacción por pares en el modelo.
Cargar datos de ejemplo.
load hospital
Ajuste un modelo lineal con términos de interacción a los datos. Especifique el peso como variable de respuesta y el sexo, la edad y el estado de tabaquismo como variables predictoras. Además, especifique que el sexo y el estado de fumar son variables categóricas.
mdl = fitlm(hospital,'interactions','ResponseVar','Weight',... 'PredictorVars',{'Sex','Age','Smoker'},... 'CategoricalVar',{'Sex','Smoker'})
mdl = Linear regression model: Weight ~ 1 + Sex*Age + Sex*Smoker + Age*Smoker Estimated Coefficients: Estimate SE tStat pValue ________ _______ ________ __________ (Intercept) 118.7 7.0718 16.785 6.821e-30 Sex_Male 68.336 9.7153 7.0339 3.3386e-10 Age 0.31068 0.18531 1.6765 0.096991 Smoker_1 3.0425 10.446 0.29127 0.77149 Sex_Male:Age -0.49094 0.24764 -1.9825 0.050377 Sex_Male:Smoker_1 0.9509 3.8031 0.25003 0.80312 Age:Smoker_1 -0.07288 0.26275 -0.27737 0.78211 Number of observations: 100, Error degrees of freedom: 93 Root Mean Squared Error: 8.75 R-squared: 0.898, Adjusted R-Squared: 0.892 F-statistic vs. constant model: 137, p-value = 6.91e-44
El peso de los pacientes no parece diferir significativamente según la edad, o el estado de tabaquismo, o la interacción de estos factores con el sexo del paciente en el nivel de significancia del 5%.
Cargue el conjunto de datos, que mide el efecto de la composición del cemento en su calor de endurecimiento.hald
load hald
Este conjunto de datos incluye las variables y .ingredients
heat
La matriz contiene el porcentaje de composición de cuatro productos químicos presentes en el cemento.ingredients
El vector contiene los valores para el endurecimiento térmico después de 180 días para cada muestra de cemento.heat
Ajuste un modelo de regresión lineal robusto a los datos.
mdl = fitlm(ingredients,heat,'RobustOpts','on')
mdl = Linear regression model (robust fit): y ~ 1 + x1 + x2 + x3 + x4 Estimated Coefficients: Estimate SE tStat pValue ________ _______ ________ ________ (Intercept) 60.09 75.818 0.79256 0.4509 x1 1.5753 0.80585 1.9548 0.086346 x2 0.5322 0.78315 0.67957 0.51596 x3 0.13346 0.8166 0.16343 0.87424 x4 -0.12052 0.7672 -0.15709 0.87906 Number of observations: 13, Error degrees of freedom: 8 Root Mean Squared Error: 2.65 R-squared: 0.979, Adjusted R-Squared: 0.969 F-statistic vs. constant model: 94.6, p-value = 9.03e-07
Para obtener más información, consulte el tema , que compara los resultados de un ajuste robusto con un ajuste estándar de mínimos cuadrados.Reduce Outlier Effects Using Robust Regression
tbl
— Datos de entradaDatos de entrada, incluidas las variables predictora y de respuesta, especificadas como una matriz de tabla o conjunto de datos. Las variables predictoras pueden ser numéricas, lógicas, categóricas, de carácter o de cadena. La variable de respuesta debe ser numérica o lógica.
De forma predeterminada, fitlm
toma la última variable como la variable de respuesta y las otras como variables predictoras.
Para establecer una columna diferente como variable de respuesta, utilice el argumento de par nombre-valor.ResponseVar
Para utilizar un subconjunto de las columnas como predictores, utilice el argumento de par nombre-valor.PredictorVars
Para definir una especificación de modelo, establezca el argumento mediante una matriz de fórmulas o términos.modelspec
La matriz de fórmulas o términos especifica qué columnas se van a utilizar como predictor o variables de respuesta.
Los nombres de variable de una tabla no tienen que ser identificadores válidos.MATLAB® Sin embargo, si los nombres no son válidos, no puede utilizar una fórmula al ajustar o ajustar un modelo; por ejemplo:
No se puede especificar mediante una fórmula.modelspec
No puede utilizar una fórmula para especificar los términos que se agregaron o quitaron cuando utilice la función o la función, respectivamente.addTerms
removeTerms
No puede utilizar una fórmula para especificar los límites inferior y superior del modelo cuando se utiliza la función o con los argumentos de par nombre-valor y , respectivamente.step
stepwiselm
'Lower'
'Upper'
Puede verificar los nombres de las variables mediante la función.tbl
isvarname
El código siguiente devuelve logical ( ) para cada variable que tiene un nombre de variable válido.1
true
Si los nombres de variable en no son válidos, a continuación, convertirlos mediante la función.
cellfun(@isvarname,tbl.Properties.VariableNames)
tbl
matlab.lang.makeValidName
tbl.Properties.VariableNames = matlab.lang.makeValidName(tbl.Properties.VariableNames);
X
— Variables predictorasVariables predictoras, especificadas como una matriz -por-, donde está el número de observaciones y es el número de variables predictoras.npnp Cada columna de representa una variable y cada fila representa una observación.X
De forma predeterminada, hay un término constante en el modelo, a menos que lo quite explícitamente, por lo que no incluya una columna de 1s en .X
Tipos de datos: single
| double
y
— Variable de respuestaVariable de respuesta, especificada como un vector -by-1, donde está el número de observaciones.nn Cada entrada es la respuesta para la fila correspondiente de .y
X
Tipos de datos: single
| double
| logical
modelspec
— Especificación del modelo'linear'
(predeterminado) | vector de caracteres o escalar de cadena nombrando el modelo | -por-( + 1) matriz de términostp | vector de caracteres o fórmula escalar de cadena en la forma'Y ~ terms'
Especificación del modelo, especificada como uno de estos valores.
Un vector de caracteres o un escalar de cadena que nombra el modelo.
Valor | Tipo de modelo |
---|---|
'constant' | El modelo contiene solo un término constante (intercept). |
'linear' | El modelo contiene una intercepción y un término lineal para cada predictor. |
'interactions' | El modelo contiene una interceptación, un término lineal para cada predictor y todos los productos de pares de predictores distintos (sin términos al cuadrado). |
'purequadratic' | El modelo contiene un término de interceptación y términos lineales y cuadrados para cada predictor. |
'quadratic' | El modelo contiene un término de interceptación, términos lineales y cuadrados para cada predictor, y todos los productos de pares de predictores distintos. |
'poly | Modelo es un polinomio con todos los términos hasta el grado i en el primer predictor, grado j en el segundo predictor, y así sucesivamente. Especifique el grado máximo para cada predictor utilizando los números 0 a 9. El modelo contiene términos de interacción, pero el grado de cada término de interacción no supera el valor máximo de los grados especificados. Por ejemplo, tiene una interceptación y'poly13' x1, x2, x22, x23, x1*x2Yx1*x22
términos, dondex1 Yx2 son el primer y segundo predictor, respectivamente. |
Una matriz -by-( + 1), o un , especificando términos en el modelo, donde está el número de términos y es el número de variables predictoras, y +1 cuenta para la variable de respuesta.tpMatriz de términostp Una matriz de términos es conveniente cuando el número de predictores es grande y desea generar los términos mediante programación.
Un vector de caracteres o un escalar de cadena que representa un en el formatoFórmula
'Y ~ terms'
,
donde están en .terms
Notación Wilkinson Los nombres de variable de la fórmula deben ser identificadores válidos.MATLAB
Ejemplo: 'quadratic'
Ejemplo: 'y ~ X1 + X2^2 + X1:X2'
Tipos de datos: single
| double
| char
| string
Especifique pares opcionales separados por comas de argumentos. es el nombre del argumento y es el valor correspondiente. deben aparecer entre comillas.Name,Value
Name
Value
Name
Puede especificar varios argumentos de par de nombre y valor en cualquier orden como .Name1,Value1,...,NameN,ValueN
'Intercept',false,'PredictorVars',[1,3],'ResponseVar',5,'RobustOpts','logistic'
'CategoricalVars'
— Lista de variables categóricasLista de variables categóricas, especificada como el par separado por comas que consta de y una matriz de cadenas o una matriz de celdas de vectores de caracteres que contienen nombres de variables categóricas en la tabla o matriz de conjuntos de datos, o un vector de índice lógico o numérico que indica qué las columnas son categóricas.'CategoricalVars'
tbl
Si los datos están en una tabla o matriz de conjunto de datos, entonces, de forma predeterminada,tbl
fitlm
trata todos los valores categóricos, valores lógicos, matrices de caracteres, matrices de cadenas y matrices de celdas de vectores de caracteres como variables categóricas.
Si los datos están en matriz , el valor predeterminado de es una matriz vacía .X
'CategoricalVars'
[]
Es decir, ninguna variable es categórica a menos que la especifique como categórica.
Por ejemplo, puede especificar las observaciones 2 y 3 de 6 como categóricas utilizando cualquiera de los ejemplos siguientes.
Ejemplo: 'CategoricalVars',[2,3]
Ejemplo: 'CategoricalVars',logical([0 1 1 0 0 0])
Tipos de datos: single
| double
| logical
| string
| cell
'Exclude'
— Observaciones para excluirObservaciones para excluir del ajuste, especificado como el par separado por comas que consta de y un vector de índice lógico o numérico que indica qué observaciones excluir del ajuste.'Exclude'
Por ejemplo, puede excluir las observaciones 2 y 3 de 6 utilizando cualquiera de los ejemplos siguientes.
Ejemplo: 'Exclude',[2,3]
Ejemplo: 'Exclude',logical([0 1 1 0 0 0])
Tipos de datos: single
| double
| logical
'Intercept'
— Indicador de término constantetrue
(predeterminado) | false
Indicador del término constante (intercept) en el ajuste, especificado como el par separado por comas que consta de y para incluir o quitar el término constante del modelo.'Intercept'
true
false
Utilícelo solo cuando especifique el modelo utilizando un vector de caracteres o un escalar de cadena, no una fórmula o matriz.'Intercept'
Ejemplo: 'Intercept',false
'PredictorVars'
— Variables predictorasVariables predictoras que se utilizarán en el ajuste, especificadas como el par separado por comas que consta de y una matriz de cadenas o una matriz de celdas de vectores de caracteres de los nombres de variable en la matriz de tabla o dataset, o un vector de índice lógico o numérico que indica qué columnas son variables predictoras.'PredictorVars'
tbl
Los valores de cadena o vectores de caracteres deben estar entre los nombres de , o los nombres que especifique mediante el argumento de par nombre-valor.tbl
'VarNames'
El valor predeterminado es todas las variables en , o todas las variables en excepto para .X
tbl
ResponseVar
Por ejemplo, puede especificar la segunda y la tercera variables como variables predictoras utilizando cualquiera de los ejemplos siguientes.
Ejemplo: 'PredictorVars',[2,3]
Ejemplo: 'PredictorVars',logical([0 1 1 0 0 0])
Tipos de datos: single
| double
| logical
| string
| cell
'ResponseVar'
— Variable de respuestatbl
(predeterminado) | vector de caracteres o escalar de cadena que contiene el nombre de la variable | vector de índice lógico o numéricoVariable de respuesta que se va a utilizar en el ajuste, especificada como el par separado por comas que consta de un vector de caracteres o un escalar de cadena que contiene el nombre de la variable en la matriz de tabla o dataset, o un vector de índice lógico o numérico que indica qué columna es la columna variable de respuesta.'ResponseVar'
tbl
Normalmente es necesario utilizar al ajustar una tabla o matriz de conjunto de datos.'ResponseVar'
tbl
Por ejemplo, puede especificar la cuarta variable, por ejemplo , como la respuesta de seis variables, de una de las siguientes maneras.yield
Ejemplo: 'ResponseVar','yield'
Ejemplo: 'ResponseVar',[4]
Ejemplo: 'ResponseVar',logical([0 0 0 1 0 0])
Tipos de datos: single
| double
| logical
| char
| string
'RobustOpts'
— Indicador de tipo de ajuste robusto'off'
(predeterminado) | 'on'
| vector de caracteres | cuerda escalar | EstructuraIndicador del tipo de empalme robusto a utilizar, especificado como el par separado por comas que consta de y uno de estos valores.'RobustOpts'
— No hay ajuste robusto.'off'
fitlm
utiliza mínimos cuadrados ordinarios.
— Ajuste robusto utilizando la función de peso con la constante de ajuste predeterminada.'on'
'bisquare'
Vector de caracteres o escalar de cadena — Nombre de una función de peso de ajuste robusto de la tabla siguiente. fitlm
utiliza la constante de ajuste predeterminada correspondiente especificada en la tabla.
Estructura con los dos campos y .RobustWgtFun
Tune
El campo contiene el nombre de una función de peso de ajuste robusto de la tabla siguiente o un identificador de función de una función de peso personalizada.RobustWgtFun
El campo contiene una constante de afinación.Tune
Si no establece el campo,Tune
fitlm
utiliza la constante de ajuste predeterminada correspondiente.
Función de peso | Descripción | Constante de ajuste predeterminada |
---|---|---|
'andrews' | w = (abs(r)<pi) .* sin(r) ./ r | 1.339 |
'bisquare' | (también llamado biweight)w = (abs(r)<1) .* (1 - r.^2).^2 | 4.685 |
'cauchy' | w = 1 ./ (1 + r.^2) | 2.385 |
'fair' | w = 1 ./ (1 + abs(r)) | 1.400 |
'huber' | w = 1 ./ max(1, abs(r)) | 1.345 |
'logistic' | w = tanh(r) ./ r | 1.205 |
'ols' | Mínimos cuadrados ordinarios (sin función de ponderación) | Ninguno |
'talwar' | w = 1 * (abs(r)<1) | 2.795 |
'welsch' | w = exp(-(r.^2)) | 2.985 |
manija de la función | Función de peso personalizada que acepta un vector de residuos escalados y devuelve un vector de pesos del mismo tamaño quer r | 1 |
Las constantes de ajuste predeterminadas de las funciones de peso integradas proporcionan estimaciones de coeficiente que son aproximadamente 95% tan eficientes estadísticamente como las estimaciones de mínimos cuadrados ordinarios, siempre que la respuesta tenga una distribución normal sin valores atípicos. La reducción de la constante de ajuste aumenta el peso hacia abajo asignado a residuos grandes; aumentar la constante de ajuste disminuye el peso a la baja asignado a residuos grandes.
El valor de las funciones de peso esr
r = resid/(tune*s*sqrt(1–h))
,
donde está el vector de los residuos de la iteración anterior, es la constante de ajuste, es el vector de los valores de apalancamiento de un ajuste de mínimos cuadrados, y es una estimación de la desviación estándar del término de error dado porresid
tune
h
s
s = MAD/0.6745
.
es la mediana de la desviación absoluta de los residuos de su mediana.MAD
La constante 0,6745 hace que la estimación sea imparcial para la distribución normal. Si tiene columnas, el software excluye las desviaciones absolutas más pequeñas al calcular la mediana.X
pp
Para un ajuste robusto, fitlm
utiliza la estimación M para formular ecuaciones de estimación y las resuelve utilizando el método de mínimos cuadrados iterativos reponderados (IRLS).
Ejemplo: 'RobustOpts','andrews'
'VarNames'
— Nombres de variables{'x1','x2',...,'xn','y'}
(predeterminado) | matriz de cadenas | matriz celular de vectores de caracteresNombres de variables, especificados como el par separado por comas que consta de y una matriz de cadenas o matriz de celdas de vectores de caracteres, incluidos los nombres de las columnas de first, y el nombre de la variable de respuesta last.'VarNames'
X
y
no es aplicable a las variables de una matriz de tabla o conjunto de datos, porque esas variables ya tienen nombres.'VarNames'
Los nombres de variable no tienen que ser identificadores válidos.MATLAB Sin embargo, si los nombres no son válidos, no puede utilizar una fórmula al ajustar o ajustar un modelo; por ejemplo:
No puede utilizar una fórmula para especificar los términos que se agregaron o quitaron cuando utilice la función o la función, respectivamente.addTerms
removeTerms
No puede utilizar una fórmula para especificar los límites inferior y superior del modelo cuando se utiliza la función o con los argumentos de par nombre-valor y , respectivamente.step
stepwiselm
'Lower'
'Upper'
Antes de especificar , puede comprobar los nombres de las variables mediante la función.'VarNames',varNames
varNames
isvarname
El código siguiente devuelve logical ( ) para cada variable que tiene un nombre de variable válido.1
true
Si los nombres de variable en no son válidos, a continuación, convertirlos mediante la función.
cellfun(@isvarname,varNames)
varNames
matlab.lang.makeValidName
varNames = matlab.lang.makeValidName(varNames);
Ejemplo: 'VarNames',{'Horsepower','Acceleration','Model_Year','MPG'}
Tipos de datos: string
| cell
'Weights'
— Pesos de observaciónones(n,1)
(predeterminado) | -por 1 vector de valores escalares no negativosnPesos de observación, especificados como el par separado por comas que consta de un vector -by-1 de valores escalares no negativos, donde está el número de observaciones.'Weights'
nn
Tipos de datos: single
| double
mdl
— Modelo linealLinearModel
Modelo lineal que representa un ajuste de mínimos cuadrados de la respuesta a los datos, devuelto como un objeto.LinearModel
Si el valor del par nombre-valor no es o , el modelo no es un ajuste de mínimos cuadrados, sino que utiliza la función de ajuste robusto.'RobustOpts'
[]
'ols'
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 la especificación del modelo es un vector de caracteres o un escalar de cadena del formulario '
.Y
~
terms
'
Y
es el nombre de la respuesta.
terms
representa los términos predictores en un modelo utilizando la notación Wilkinson.
Por ejemplo:
especifica un modelo lineal de tres variables con interceptación.'Y ~ A + B + C'
especifica un modelo lineal de tres variables sin interceptar.'Y ~ A + B + C – 1'
Tenga en cuenta que las fórmulas incluyen un término constante (interceptar) de forma predeterminada. Para excluir un término constante del modelo, debe incluirlo en la fórmula.–1
La notación Wilkinson describe los términos presentes en un modelo. La notación se refiere a los términos presentes en un modelo, no a los multiplicadores (coeficientes) de esos términos.
La notación Wilkinson utiliza estos símbolos:
medios incluyen la siguiente variable.+
no incluyen la siguiente variable.–
define una interacción, que es un producto de los términos.:
define una interacción y todos los términos de orden inferior.*
eleva el predictor a una potencia, exactamente como en repetida, por lo que incluye términos de orden inferior también.^
*
^
términos de grupos.()
Esta tabla muestra ejemplos típicos de notación Wilkinson.
Notación Wilkinson | Término en notación estándar |
---|---|
1 | Término constante (intercepción) |
, donde hay un entero positivoA^k k | A ,
A2 , ...,
Ak |
A + B | A , B |
A*B | A , B , A*B |
A:B | solamenteA*B |
–B | No incluyaB |
A*B + C | A , B , C , A*B |
A + B + C + A:B | A , B , C , A*B |
A*B*C – A:B:C | A , B , C , A*B , A*C , B*C |
A*(B + C) | A , B , C , A*B , A*C |
notación siempre incluye un término constante a menos que elimine explícitamente el término mediante .Statistics and Machine Learning Toolbox™–1
Para obtener más información, consulte .Wilkinson Notation
Para acceder a las propiedades del modelo del objeto, puede utilizar la notación de puntos.LinearModel
mdl
Por ejemplo, devuelve una tabla de los valores residuales sin procesar, Pearson, Studentized y estandarizados para el modelo.mdl.Residuals
Después de entrenar un modelo, puede generar código C/C++ que predice las respuestas para nuevos datos. La generación de código C/C++ requiere MATLAB Coder™. Para obtener más información, consulte .Introduction to Code Generation
El algoritmo de ajuste principal es la descomposición QR. Para un ajuste robusto, fitlm
utiliza la estimación M para formular ecuaciones de estimación y las resuelve utilizando el método de mínimos cuadrados iterativos reponderados (IRLS).
fitlm
trata a un predictor categórico de la siguiente manera:
Un modelo con un predictor categórico que tiene niveles (categorías) incluyeL L – 1 variables indicadoras. El modelo utiliza la primera categoría como nivel de referencia, por lo que no incluye la variable de indicador para el nivel de referencia. Si el tipo de datos del predictor categórico es , puede comprobar el orden de las categorías mediante el uso y reordenar las categorías mediante el uso para personalizar el nivel de referencia.Categórico
categories
reordercats
fitlm
trata al grupo de L – 1 variables indicadoras como una sola variable. Si desea tratar las variables del indicador como variables predictoras distintas, cree variables de indicador manualmente utilizando .dummyvar
A continuación, utilice las variables del indicador, excepto la correspondiente al nivel de referencia de la variable categórica, cuando se ajuste a un modelo. Para el predictor categórico , si especifica todas las columnas y un término de interceptación como predictores, la matriz de diseño se vuelve deficiente de rango.X
dummyvar(X)
Los términos de interacción entre un predictor continuo y un predictor categórico con niveles consisten en el productoL L – 1 variables indicadoras con el predictor continuo.
Los términos de interacción entre dos predictores categóricos con y los niveles consisten en laLM (L – 1)*(M – 1) variables indicadoras para incluir todas las combinaciones posibles de los dos niveles de predictor escategóricos.
No puede especificar términos de orden superior para un predictor categórico porque el cuadrado de un indicador es igual a sí mismo.
fitlm
considera , (vector de caracteres vacíos), (cadena vacía), y valores en , , y que faltan valores.NaN
''
""
<missing>
<undefined>
tbl
X
Y
fitlm
no utiliza observaciones con valores que faltan en el ajuste. La propiedad de un modelo ajustado indica siObservationInfo
fitlm
utiliza cada observación en el ajuste.
Para reducir el tiempo de cálculo en conjuntos de datos de alta dimensión, ajuste un modelo de regresión lineal mediante la función.fitrlinear
Para regularizar una regresión, utilice , , , o .fitrlinear
lasso
ridge
plsregress
regulariza una regresión para conjuntos de datos de alta dimensión mediante la regresión de lazo o cresta.fitrlinear
elimina los predictores redundantes en regresión lineal mediante lazo o red elástica.lasso
regulariza una regresión con términos correlacionados utilizando la regresión de cresta.ridge
regulariza una regresión con términos correlacionados utilizando mínimos cuadrados parciales.plsregress
[1] DuMouchel, W. H., and F. L. O'Brien. “Integrating a Robust Option into a Multiple Regression Computing Environment.” Computer Science and Statistics: Proceedings of the 21st Symposium on the Interface. Alexandria, VA: American Statistical Association, 1989.
[2] Holland, P. W., and R. E. Welsch. “Robust Regression Using Iteratively Reweighted Least-Squares.” Communications in Statistics: Theory and Methods, A6, 1977, pp. 813–827.
[3] Huber, P. J. Robust Statistics. Hoboken, NJ: John Wiley & Sons, Inc., 1981.
[4] Street, J. O., R. J. Carroll, and D. Ruppert. “A Note on Computing Robust Regression Estimates via Iteratively Reweighted Least Squares.” The American Statistician. Vol. 42, 1988, pp. 152–154.
Esta función admite matrices altas para datos de memoria insuficiente con algunas limitaciones.
Si cualquier argumento de entrada es una matriz alta, todas las demás entradas también deben ser matrices altas.fitlm
Esto incluye las variables no vacías proporcionadas con los pares nombre-valor.'Weights'
'Exclude'
El par nombre-valor no se admite con matrices altas.'RobustOpts'
Para los datos altos, devuelve un objeto que contiene la mayoría de las mismas propiedades que un objeto.fitlm
CompactLinearModel
LinearModel
La principal diferencia es que el objeto compacto es sensible a los requisitos de memoria. El objeto compacto no incluye propiedades que incluyan los datos o que incluyan una matriz del mismo tamaño que los datos. El objeto compacto no contiene estas propiedades:LinearModel
Diagnostics
Fitted
ObservationInfo
ObservationNames
Residuals
Steps
Variables
Puede calcular los residuos directamente desde el objeto compacto devuelto mediante el uso deLM = fitlm(X,Y)
RES = Y - predict(LM,X); S = LM.RMSE; histogram(RES,linspace(-3*S,3*S,51))
Si al objeto le faltan términos de orden inferior que incluyan factores categóricos:CompactLinearModel
No se admiten los métodos y.plotEffects
plotInteraction
No se admite el método con la opción.anova
'components'
Para obtener más información, consulte .Arreglos altos para datos con memoria insuficiente
fitrlinear
| LinearModel
| predict
| stepwiselm
Existe una versión modificada de este ejemplo en su sistema. ¿Prefiere abrir esta versión?
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
Select web siteYou can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.