fitnlm
Ajustar un modelo de regresión no lineal
Sintaxis
Descripción
ajusta el modelo especificado por mdl
= fitnlm(tbl
,modelfun
,beta0
)modelfun
a las variables de la tabla o al arreglo de conjuntos de datos tbl
y devuelve el modelo no lineal mdl
.
fitnlm
estima los coeficientes del modelo utilizando un procedimiento iterativo a partir de los valores iniciales en beta0
.
ajusta un modelo de regresión no lineal con más opciones especificadas por uno o varios argumentos de par mdl
= fitnlm(___,modelfun
,beta0
,Name,Value
)Name,Value
.
Ejemplos
Modelo no lineal a partir de una tabla
Cree un modelo no lineal para el consumo de combustible a partir de los datos de carbig
.
Cargue los datos y cree un modelo no lineal.
load carbig tbl = table(Horsepower,Weight,MPG); modelfun = @(b,x)b(1) + b(2)*x(:,1).^b(3) + ... b(4)*x(:,2).^b(5); beta0 = [-50 500 -1 500 -1]; mdl = fitnlm(tbl,modelfun,beta0)
mdl = Nonlinear regression model: MPG ~ b1 + b2*Horsepower^b3 + b4*Weight^b5 Estimated Coefficients: Estimate SE tStat pValue ________ _______ ________ ________ b1 -49.383 119.97 -0.41164 0.68083 b2 376.43 567.05 0.66384 0.50719 b3 -0.78193 0.47168 -1.6578 0.098177 b4 422.37 776.02 0.54428 0.58656 b5 -0.24127 0.48325 -0.49926 0.61788 Number of observations: 392, Error degrees of freedom: 387 Root Mean Squared Error: 3.96 R-Squared: 0.745, Adjusted R-Squared 0.743 F-statistic vs. constant model: 283, p-value = 1.79e-113
Modelo no lineal a partir de datos de matriz
Cree un modelo no lineal para el consumo de combustible a partir de los datos de carbig
.
Cargue los datos y cree un modelo no lineal.
load carbig X = [Horsepower,Weight]; y = MPG; modelfun = @(b,x)b(1) + b(2)*x(:,1).^b(3) + ... b(4)*x(:,2).^b(5); beta0 = [-50 500 -1 500 -1]; mdl = fitnlm(X,y,modelfun,beta0)
mdl = Nonlinear regression model: y ~ b1 + b2*x1^b3 + b4*x2^b5 Estimated Coefficients: Estimate SE tStat pValue ________ _______ ________ ________ b1 -49.383 119.97 -0.41164 0.68083 b2 376.43 567.05 0.66384 0.50719 b3 -0.78193 0.47168 -1.6578 0.098177 b4 422.37 776.02 0.54428 0.58656 b5 -0.24127 0.48325 -0.49926 0.61788 Number of observations: 392, Error degrees of freedom: 387 Root Mean Squared Error: 3.96 R-Squared: 0.745, Adjusted R-Squared 0.743 F-statistic vs. constant model: 283, p-value = 1.79e-113
Ajustar las opciones de ajuste en un modelo no lineal
Cree un modelo no lineal para el consumo de combustible a partir de los datos de carbig
. Mejore la precisión reduciendo la opción TolFun
, y observe las iteraciones estableciendo la opción Display
.
Cargue los datos y cree un modelo no lineal.
load carbig X = [Horsepower,Weight]; y = MPG; modelfun = @(b,x)b(1) + b(2)*x(:,1).^b(3) + ... b(4)*x(:,2).^b(5); beta0 = [-50 500 -1 500 -1];
Cree opciones para reducir TolFun
y mostrar el proceso iterativo, y cree un modelo utilizando esas opciones.
opts = statset('Display','iter','TolFun',1e-10); mdl = fitnlm(X,y,modelfun,beta0,'Options',opts);
Norm of Norm of Iteration SSE Gradient Step ----------------------------------------------------------- 0 1.82248e+06 1 678600 788810 1691.07 2 616716 6.12739e+06 45.4738 3 249831 3.9532e+06 293.557 4 17675 361544 369.284 5 11746.6 69670.5 169.079 6 7242.22 343738 394.822 7 6250.32 159719 452.941 8 6172.87 91622.9 268.674 9 6077 6957.44 100.208 10 6076.34 6370.39 88.1905 11 6075.75 5199.08 77.9694 12 6075.3 4646.61 69.764 13 6074.91 4235.96 62.9114 14 6074.55 3885.28 57.0647 15 6074.23 3571.1 52.0036 16 6073.93 3286.48 47.5795 17 6073.66 3028.34 43.6844 18 6073.4 2794.31 40.2352 19 6073.17 2582.15 37.1663 20 6072.95 2389.68 34.4243 21 6072.74 2214.84 31.9651 22 6072.55 2055.78 29.7516 23 6072.37 1910.83 27.753 24 6072.21 1778.51 25.9428 25 6072.05 1657.5 24.2986 26 6071.9 1546.65 22.8011 27 6071.76 1444.93 21.4338 28 6071.63 1351.44 20.1822 29 6071.51 1265.39 19.0339 30 6071.39 1186.06 17.978 31 6071.28 1112.83 17.0052 32 6071.17 1045.13 16.107 33 6071.07 982.465 15.2762 34 6070.98 924.389 14.5063 35 6070.89 870.498 13.7916 36 6070.8 820.434 13.127 37 6070.72 773.872 12.5081 38 6070.64 730.521 11.9307 39 6070.57 690.117 11.3914 40 6070.5 652.422 10.887 41 6070.43 617.219 10.4144 42 6070.37 584.315 9.97115 43 6070.31 553.53 9.55489 44 6070.25 524.703 9.1635 45 6070.19 497.686 8.79506 46 6070.14 472.345 8.44785 47 6070.08 448.557 8.12028 48 6070.03 426.21 7.81092 49 6069.99 405.201 7.51845 50 6069.94 385.435 7.2417 51 6069.9 366.825 6.97956 52 6069.85 349.293 6.73104 53 6069.81 332.764 6.49523 54 6069.77 317.171 6.27127 55 6069.74 302.453 6.0584 56 6069.7 288.55 5.85591 57 6069.66 275.411 5.66315 58 6069.63 262.986 5.47949 59 6069.6 251.23 5.3044 60 6069.57 240.1 5.13734 61 6069.54 229.558 4.97784 62 6069.51 219.567 4.82545 63 6069.48 210.094 4.67977 64 6069.45 201.108 4.5404 65 6069.43 192.578 4.407 66 6069.4 184.479 4.27923 67 6069.38 176.785 4.15677 68 6069.35 169.472 4.03935 69 6069.33 162.518 3.9267 70 6069.31 155.903 3.81855 71 6069.29 149.608 3.71468 72 6069.26 143.615 3.61486 73 6069.24 137.907 3.5189 74 6069.22 132.468 3.42658 75 6069.21 127.283 3.33774 76 6069.19 122.339 3.25221 77 6069.17 117.623 3.16981 78 6069.15 113.123 3.09041 79 6069.14 108.827 3.01386 80 6069.12 104.725 2.94002 81 6069.1 100.806 2.86877 82 6069.09 97.0611 2.8 83 6069.07 93.4814 2.73358 84 6069.06 90.0583 2.66942 85 6069.05 86.7842 2.60741 86 6069.03 83.6513 2.54745 87 6069.02 80.6528 2.48947 88 6069.01 77.7821 2.43338 89 6068.99 75.0328 2.37908 90 6068.98 72.399 2.32652 91 6068.97 69.8752 2.27561 92 6068.96 67.4561 2.22629 93 6068.95 65.1367 2.17849 94 6068.94 62.9122 2.13216 95 6068.93 60.7784 2.08723 96 6068.92 58.7308 2.04364 97 6068.91 56.7655 2.00135 98 6068.9 54.8787 1.9603 99 6068.89 4349.28 18.1917 100 6068.77 2416.27 14.4439 101 6068.71 1721.26 12.1305 102 6068.66 1228.78 10.289 103 6068.63 884.002 8.82019 104 6068.6 639.615 7.62745 105 6068.58 464.84 6.64627 106 6068.56 338.878 5.82964 107 6068.55 247.508 5.14297 108 6068.54 180.878 4.56032 109 6068.53 132.084 4.06194 110 6068.52 96.2342 3.63255 111 6068.51 69.8362 3.26019 112 6068.51 50.3734 2.93541 113 6068.5 36.0205 2.65062 114 6068.5 25.4451 2.39969 115 6068.49 17.6693 2.17764 116 6068.49 1027.39 14.0164 117 6068.48 544.039 5.3137 118 6068.48 94.0569 2.86662 119 6068.48 113.637 3.73503 120 6068.48 0.51834 1.37051 121 6068.48 4.59439 0.912827 122 6068.48 1.56359 0.629276 123 6068.48 1.13825 0.432567 124 6068.48 0.296021 0.297532 Iterations terminated: relative change in SSE less than OPTIONS.TolFun
Especificar una regresión no lineal mediante la sintaxis del nombre de modelo
Especifique un modelo de regresión no lineal para estimación mediante un identificador de función o una sintaxis de modelo.
Cargue los datos de muestra.
S = load('reaction');
X = S.reactants;
y = S.rate;
beta0 = S.beta;
Utilice un identificador de función para especificar el modelo Hougen-Watson para los datos de tasa.
mdl = fitnlm(X,y,@hougen,beta0)
mdl = Nonlinear regression model: y ~ hougen(b,X) Estimated Coefficients: Estimate SE tStat pValue ________ ________ ______ _______ b1 1.2526 0.86701 1.4447 0.18654 b2 0.062776 0.043561 1.4411 0.18753 b3 0.040048 0.030885 1.2967 0.23089 b4 0.11242 0.075157 1.4957 0.17309 b5 1.1914 0.83671 1.4239 0.1923 Number of observations: 13, Error degrees of freedom: 8 Root Mean Squared Error: 0.193 R-Squared: 0.999, Adjusted R-Squared 0.998 F-statistic vs. zero model: 3.91e+03, p-value = 2.54e-13
De forma alternativa, puede utilizar una expresión para especificar el modelo Hougen-Watson para los datos de tasa.
myfun = 'y~(b1*x2-x3/b5)/(1+b2*x1+b3*x2+b4*x3)';
mdl2 = fitnlm(X,y,myfun,beta0)
mdl2 = Nonlinear regression model: y ~ (b1*x2 - x3/b5)/(1 + b2*x1 + b3*x2 + b4*x3) Estimated Coefficients: Estimate SE tStat pValue ________ ________ ______ _______ b1 1.2526 0.86701 1.4447 0.18654 b2 0.062776 0.043561 1.4411 0.18753 b3 0.040048 0.030885 1.2967 0.23089 b4 0.11242 0.075157 1.4957 0.17309 b5 1.1914 0.83671 1.4239 0.1923 Number of observations: 13, Error degrees of freedom: 8 Root Mean Squared Error: 0.193 R-Squared: 0.999, Adjusted R-Squared 0.998 F-statistic vs. zero model: 3.91e+03, p-value = 2.54e-13
Estimar la regresión no lineal utilizando opciones de ajuste robusto
Genere datos de muestra a partir del modelo de regresión no lineal
donde , y son coeficientes y el término de error está distribuido normalmente con media 0 y desviación estándar 0,5.
modelfun = @(b,x)(b(1)+b(2)*exp(-b(3)*x)); rng('default') % for reproducibility b = [1;3;2]; x = exprnd(2,100,1); y = modelfun(b,x) + normrnd(0,0.5,100,1);
Establezca las opciones de ajuste robusto.
opts = statset('nlinfit'); opts.RobustWgtFun = 'bisquare';
Ajuste el modelo no lineal utilizando las opciones de ajuste robusto. Aquí, use una expresión para especificar el modelo.
b0 = [2;2;2]; modelstr = 'y ~ b1 + b2*exp(-b3*x)'; mdl = fitnlm(x,y,modelstr,b0,'Options',opts)
mdl = Nonlinear regression model (robust fit): y ~ b1 + b2*exp( - b3*x) Estimated Coefficients: Estimate SE tStat pValue ________ _______ ______ __________ b1 1.0218 0.07202 14.188 2.1344e-25 b2 3.6619 0.25429 14.401 7.974e-26 b3 2.9732 0.38496 7.7232 1.0346e-11 Number of observations: 100, Error degrees of freedom: 97 Root Mean Squared Error: 0.501 R-Squared: 0.807, Adjusted R-Squared 0.803 F-statistic vs. constant model: 203, p-value = 2.34e-35
Ajustar un modelo de regresión no lineal utilizando un identificador de función para ponderaciones
Cargue los datos de muestra.
S = load('reaction');
X = S.reactants;
y = S.rate;
beta0 = S.beta;
Especifique un identificador de función para ponderaciones de las observaciones. La función acepta los valores ajustados del modelo como entrada y devuelve un vector de ponderaciones.
a = 1; b = 1; weights = @(yhat) 1./((a + b*abs(yhat)).^2);
Ajuste el modelo Hougen-Watson a los datos de tasa utilizando la función de las ponderaciones de las observaciones especificados.
mdl = fitnlm(X,y,@hougen,beta0,'Weights',weights)
mdl = Nonlinear regression model: y ~ hougen(b,X) Estimated Coefficients: Estimate SE tStat pValue ________ ________ ______ _______ b1 0.83085 0.58224 1.427 0.19142 b2 0.04095 0.029663 1.3805 0.20477 b3 0.025063 0.019673 1.274 0.23842 b4 0.080053 0.057812 1.3847 0.20353 b5 1.8261 1.281 1.4256 0.19183 Number of observations: 13, Error degrees of freedom: 8 Root Mean Squared Error: 0.037 R-Squared: 0.998, Adjusted R-Squared 0.998 F-statistic vs. zero model: 1.14e+03, p-value = 3.49e-11
Modelo de regresión no lineal utilizando un modelo de error no constante
Cargue los datos de muestra.
S = load('reaction');
X = S.reactants;
y = S.rate;
beta0 = S.beta;
Ajuste el modelo Hougen-Watson a los datos de tasa utilizando el modelo de varianza de error combinado.
mdl = fitnlm(X,y,@hougen,beta0,'ErrorModel','combined')
mdl = Nonlinear regression model: y ~ hougen(b,X) Estimated Coefficients: Estimate SE tStat pValue ________ ________ ______ _______ b1 1.2526 0.86702 1.4447 0.18654 b2 0.062776 0.043561 1.4411 0.18753 b3 0.040048 0.030885 1.2967 0.23089 b4 0.11242 0.075158 1.4957 0.17309 b5 1.1914 0.83671 1.4239 0.1923 Number of observations: 13, Error degrees of freedom: 8 Root Mean Squared Error: 1.27 R-Squared: 0.999, Adjusted R-Squared 0.998 F-statistic vs. zero model: 3.91e+03, p-value = 2.54e-13
Argumentos de entrada
tbl
— Datos de entrada
tabla | arreglo de conjuntos de datos
Datos de entrada, incluidas las variables predictoras y de respuesta, especificados en forma de tabla o arreglo de conjuntos de datos. Las variables predictoras y la variable de respuesta deben ser numéricas.
Si especifica
modelfun
mediante una fórmula, la especificación del modelo en la fórmula determina las variables predictoras y de respuesta.De forma predeterminada, si especifica
modelfun
mediante un identificador de función, la última variable es la variable de respuesta y el resto son las variables predictoras. Puede establecer otra columna como la variable de respuesta mediante el argumento de par nombre-valorResponseVar
. Para seleccionar un subconjunto de las columnas como predictores, utilice el argumento de par nombre-valorPredictorVars
.
Los nombres de las variables de una tabla no tienen que ser identificadores válidos de MATLAB®, pero los nombres no deben contener espacios en blanco al principio ni al final. Si los nombres no son válidos, no puede especificar modelfun
mediante una fórmula.
Puede verificar los nombres de las variables en tbl
mediante la función isvarname
. Si los nombres de las variables no son válidos, puede convertirlos en válidos mediante la función matlab.lang.makeValidName
.
Tipos de datos: table
X
— Variables predictoras
matriz
Variables predictoras, especificadas como una matriz n por p, donde n es el número de observaciones y p es el número de variables predictoras. Cada columna de X
representa una variable y cada fila, una observación.
Tipos de datos: single
| double
y
— Variable de respuesta
vector
Variable de respuesta, especificada como vector n por 1, donde n es el número de observaciones. Cada entrada de y
es la respuesta de la fila correspondiente en X
.
Tipos de datos: single
| double
modelfun
— Formato funcional del modelo
identificador de función | vector de caracteres o fórmula de escalar de cadena con el formato 'y
~
f
(b1,b2,...,bj,x1,x2,...,xk)'
y
f
(b1,b2,...,bj,x1,x2,...,xk)'Formato funcional del modelo, especificado como uno de los siguientes:
Identificador de función
@
omodelfun
@(b,x)
, dondemodelfun
b
es un vector de coeficientes con el mismo número de elementos quebeta0
.x
es una matriz con el mismo número de columnas queX
o el número de columnas de variables predictoras detbl
.
modelfun
(b,x)
devuelve un vector columna que contiene el mismo número de filas quex
. Cada fila del vector es el resultado de evaluarmodelfun
en la fila correspondiente dex
. En otras palabras,modelfun
es una función vectorizada que opera en todas las filas de los datos y devuelve todas las evaluaciones en una sola llamada de función.modelfun
debe devolver números reales para obtener coeficientes significativos.Un vector de caracteres o una fórmula de escalar de cadena con el formato
'
, dondey
~f
(b1,b2,...,bj,x1,x2,...,xk)'f
representa una función escalar de las variables de coeficientes escalaresb1
,...,bj
y las variables de datos escalaresx1
,...,xk
. Los nombres de las variables de la fórmula deben ser identificadores válidos de MATLAB.
Tipos de datos: function_handle
| char
| string
beta0
— Coeficientes
vector numérico
Coeficientes del modelo no lineal, especificados como un vector numérico. NonLinearModel
empieza su búsqueda de los coeficientes óptimos a partir de beta0
.
Tipos de datos: single
| double
Argumentos de par nombre-valor
Especifique pares de argumentos opcionales Name1=Value1,...,NameN=ValueN
, donde Name
es el nombre del argumento y Value
es el valor correspondiente. Los argumentos nombre-valor deben aparecer después de otros argumentos, pero el orden de los pares no importa.
En versiones anteriores a R2021a, use comas para separar cada nombre y valor y encierre Name
entre comillas.
Ejemplo: 'ErrorModel','combined','Exclude',2,'Options',opt
especifica el modelo de error como el modelo combinado, excluye la segunda observación del ajuste y usa las opciones definidas en la estructura opt
para controlar el procedimiento iterativo de ajuste.
CoefficientNames
— Nombres de los coeficientes de modelos
{'b1','b2',...,'bk
'}
(predeterminado) | arreglo de cadenas | arreglo de celdas de vectores de caracteres
k
'}Nombres de los coeficientes de modelos, especificados como un arreglo de cadenas o un arreglo de celdas de vectores de caracteres.
Tipos de datos: string
| cell
ErrorModel
— Formato del modelo de varianza del error
'constant'
(predeterminado) | 'proportional'
| 'combined'
Formato del modelo de varianza del error, especificado como uno de los indicados a continuación. Cada modelo define el error usando una variable estándar media-cero y unidad-varianza e en combinación con componentes independientes: el valor de la función f y uno o dos parámetros a y b.
'constant' (valor predeterminado) | |
'proportional' | |
'combined' |
El único modelo de error permitido cuando se usa Weights
es 'constant'
.
Nota
options.RobustWgtFun
debe tener valor []
cuando use un modelo de error distinto de 'constant'
.
Ejemplo: 'ErrorModel','proportional'
ErrorParameters
— Estimaciones iniciales de parámetros de modelo de error
arreglo numérico
Estimaciones iniciales de parámetros de modelo de error en el ErrorModel
elegido, especificadas como un arreglo numérico.
Modelo de error | Parámetros | Valores predeterminados |
---|---|---|
'constant' | a | 1 |
'proportional' | b | 1 |
'combined' | a, b | [1,1] |
Solo puede usar el modelo de error 'constant'
cuando utilice Weights
.
Nota
options.RobustWgtFun
debe tener valor []
cuando use un modelo de error distinto de 'constant'
.
Por ejemplo, si 'ErrorModel'
tiene el valor 'combined'
, puede especificar el valor inicial 1 para a y el valor inicial 2 para b de la siguiente manera.
Ejemplo: 'ErrorParameters',[1,2]
Tipos de datos: single
| double
Exclude
— Observaciones que se van a excluir
vector índice lógico o numérico
Observaciones que se excluirán del ajuste, especificadas como el par separado por comas que consta de 'Exclude'
y un vector índice lógico o numérico que indica qué observaciones se excluirán del ajuste.
Por ejemplo, puede excluir las observaciones 2 y 3 de un total de 6 mediante cualquiera de los siguientes ejemplos.
Ejemplo: 'Exclude',[2,3]
Ejemplo: 'Exclude',logical([0 1 1 0 0 0])
Tipos de datos: single
| double
| logical
Options
— Opciones para controlar el procedimiento iterativo de ajuste
[ ] (predeterminado) | estructura
Opciones para controlar el procedimiento iterativo de ajuste, especificadas como una estructura creada por statset
. Los campos relevantes son los campos no vacíos de la estructura devueltos por la llamada statset('fitnlm')
.
Opción | Significado | Valor predeterminado |
---|---|---|
DerivStep | Diferencia relativa utilizada en los cálculos de derivadas mediante diferencias finitas. Escalar positivo o vector de escalares positivos del mismo tamaño que el vector de parámetros estimado por la función de Statistics and Machine Learning Toolbox™ utilizando la estructura de opciones. | eps^(1/3) |
Display | Cantidad de información que muestra el algoritmo de ajuste.
| 'off' |
FunValCheck | Vector de caracteres o cadena de texto que indica que se deben comprobar los valores no válidos, como NaN o Inf , de la función modelo. | 'on' |
MaxIter | Número máximo de iteraciones permitidas. Entero positivo. | 200 |
RobustWgtFun | Función de ponderación para un ajuste robusto. También puede ser un identificador de función que acepte un valor residual normalizado como entrada y que devuelva ponderaciones robustas como salida. Si utiliza un identificador de función, proporcione una constante Tune . Consulte Opciones robustas. | [] |
Tune | Constante de ajuste usada en el ajuste robusto para normalizar los valores residuales antes de aplicar la función de ponderación. Escalar positivo. Necesario si la función de ponderación está especificada como un identificador de función. | Consulte Opciones robustas para conocer el valor predeterminado, que depende de RobustWgtFun . |
TolFun | Tolerancia de terminación del valor de la función objetivo. Escalar positivo. | 1e-8 |
TolX | Tolerancia de terminación de los parámetros. Escalar positivo. | 1e-8 |
Tipos de datos: struct
PredictorVars
— Variables predictoras
arreglo de cadenas | arreglo de celdas de vectores de caracteres | vector índice lógico o numérico
Variables predictoras que se utilizarán en el ajuste, especificadas como el par separado por comas que consta de 'PredictorVars'
y un arreglo de cadenas o un arreglo de celdas de vectores de caracteres de los nombres de las variables en la tabla o el arreglo de conjuntos de datos tbl
, o un vector índice lógico o numérico que indica qué columnas son las variables predictoras.
Los valores de la cadena o los vectores de caracteres deben estar entre los nombres que figuran en tbl
o en los nombres que especifique mediante el argumento de par nombre-valor 'VarNames'
.
El valor predeterminado es todas las variables en X
o en tbl
excepto ResponseVar
.
Por ejemplo, puede especificar que la segunda y la tercera variables son las variables predictoras mediante cualquiera de los siguientes ejemplos.
Ejemplo: 'PredictorVars',[2,3]
Ejemplo: 'PredictorVars',logical([0 1 1 0 0 0])
Tipos de datos: single
| double
| logical
| string
| cell
ResponseVar
— Variable de respuesta
última columna de tbl
(predeterminado) | nombre de la variable | vector índice lógico o numérico
Variable de respuesta que se utilizará en el ajuste, especificada como el par separado por comas que consta de 'ResponseVar'
y un nombre de variable de la tabla o el arreglo de conjuntos de datos tbl
, o un vector de índices lógicos o numéricos que indica qué columna es la variable de respuesta.
Si especifica un modelo, este especifica la variable de respuesta. De lo contrario, al ajustar una tabla o un arreglo de conjuntos de datos, 'ResponseVar'
indica qué variable fitnlm
se debe utilizar como la respuesta.
Por ejemplo, puede especificar que la cuarta variable, es decir, yield
, es la respuesta de un total de seis variables de una de las siguientes maneras.
Ejemplo: 'ResponseVar','yield'
Ejemplo: 'ResponseVar',[4]
Ejemplo: 'ResponseVar',logical([0 0 0 1 0 0])
Tipos de datos: single
| double
| logical
| char
| string
VarNames
— Nombres de las variables
{'x1','x2',...,'xn','y'}
(predeterminado) | arreglo de cadenas | arreglo de celdas de vectores de caracteres
Nombres de las variables, especificados como el par separado por comas que consta de 'VarNames'
y un arreglo de cadenas o un arreglo de celdas de vectores de caracteres que incluye los nombres de las columnas de X
en primer lugar y el nombre de la variable de respuesta y
en último lugar.
'VarNames'
no se puede aplicar a las variables de una tabla o un arreglo de conjuntos de datos, puesto que dichas variables ya tienen nombres.
Ejemplo: 'VarNames',{'Horsepower','Acceleration','Model_Year','MPG'}
Tipos de datos: string
| cell
Weights
— Pesos de las observaciones
ones(n,1)
(predeterminado) | vector de valores de escalar no negativos | identificador de función
Ponderaciones de las observaciones, especificadas como un vector de valores de escalar no negativos o un identificador de función.
Si especifica un vector, este debe tener n elementos, donde n es el número de filas de
tbl
oy
.Si especifica un identificador de función, la función debe aceptar un vector de valores de respuesta pronosticados como entrada y devolver un vector de ponderaciones reales positivas como salida.
Dadas las ponderaciones, W
, NonLinearModel
estima la varianza del error en la observación i
mediante MSE*(1/W(i))
, donde MSE es el error cuadrático medio.
Tipos de datos: single
| double
| function_handle
Argumentos de salida
mdl
— Modelo no lineal
objeto NonLinearModel
Modelo no lineal que representa un ajuste de mínimos cuadrados de la respuesta a los datos, devuelto como objeto NonLinearModel
.
Si la estructura Options
contiene un campo RobustWgtFun
que no está vacío, el modelo no es un ajuste de mínimos cuadrados, sino que utiliza la función de ajuste robusto RobustWgtFun
.
Para ver las propiedades y los métodos del objeto de modelo no lineal, mdl
, consulte la página de la clase NonLinearModel
.
Más acerca de
Opciones robustas
Función de ponderación | Ecuación | Constante de ajuste predeterminada |
---|---|---|
'andrews' | w = (abs(r)<pi) .* sin(r) ./ r | 1.339 |
'bisquare' (valor predeterminado) | 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 |
'talwar' | w = 1 * (abs(r)<1) | 2.795 |
'welsch' | w = exp(-(r.^2)) | 2.985 |
[] | Sin ajuste robusto | — |
Algoritmos
fitnlm
usa el mismo algoritmo de ajuste quenlinfit
.fitnlm
considera los valoresNaN
detbl
,X
ey
como valores faltantes. Al ajustar un modelo,fitnlm
no usa observaciones con valores faltantes u observaciones en las quemodelfun
devuelve valoresNaN
. La propiedadObservationInfo
de un modelo ajustado contiene información acerca de sifitnlm
utiliza cada una de las observaciones del ajuste o no.
Referencias
[1] Seber, G. A. F., and C. J. Wild. Nonlinear Regression. Hoboken, NJ: Wiley-Interscience, 2003.
[2] 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.
[3] 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.
Historial de versiones
Introducido en R2013b
Comando de MATLAB
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.
Select a Web Site
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: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)