Ajustar modelo de regresión no lineal
se ajusta a un modelo de regresión no lineal con opciones adicionales especificadas por uno o más argumentos de par.mdl
= fitnlm(___,modelfun
,beta0
,Name,Value
)Name,Value
Cree un modelo no lineal para el kilometraje automático basado en los datos.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
Cree un modelo no lineal para el kilometraje automático basado en los datos.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
Cree un modelo no lineal para el kilometraje automático basado en los datos.carbig
Esfuércese por obtener más precisión reduciendo la opción y observe las iteraciones estableciendo la opción.TolFun
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 e informar de la visualización iterativa y cree un modelo con las opciones.TolFun
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.97114 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.452 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.6529 2.48947 88 6069.01 77.7821 2.43338 89 6068.99 75.0327 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.879 4.56032 109 6068.53 132.084 4.06194 110 6068.52 96.2341 3.63254 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.4 14.0164 117 6068.48 544.038 5.31368 118 6068.48 94.057 2.86663 119 6068.48 113.636 3.73502 120 6068.48 0.518548 1.37049 121 6068.48 4.59432 0.91283 122 6068.48 1.56363 0.629281 123 6068.48 1.13811 0.432539 124 6068.48 0.295961 0.297507 Iterations terminated: relative change in SSE less than OPTIONS.TolFun
Especifique un modelo de regresión no lineal para la estimación mediante un identificador de función o una sintaxis de modelo.
Cargar datos de ejemplo.
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 velocidad.
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
Como alternativa, puede utilizar una expresión para especificar el modelo Hougen-Watson para los datos de velocidad.
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
Generar datos de muestra a partir del modelo de regresión no lineal
Dónde
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 opciones de ajuste robustas.
opts = statset('nlinfit'); opts.RobustWgtFun = 'bisquare';
Ajuste el modelo no lineal utilizando las opciones de ajuste robusto. Aquí, utilice 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
Cargar datos de ejemplo.
S = load('reaction'); X = S.reactants; y = S.rate; beta0 = S.beta;
Especifique un identificador de función para las ponderaciones de observación. 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 velocidad utilizando la función de ponderaciones de observación especificada.
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
Cargar datos de ejemplo.
S = load('reaction'); X = S.reactants; y = S.rate; beta0 = S.beta;
Ajuste el modelo Hougen-Watson a los datos de velocidad 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
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 y la variable de respuesta deben ser numéricas.
Si especifica mediante una fórmula, la especificación del modelo en la fórmula especifica las variables predictor y de respuesta.modelfun
Si especifica mediante un identificador de función, la última variable es la variable de respuesta y las demás son las variables predictoras, de forma predeterminada.modelfun
Puede establecer una columna diferente como variable de respuesta mediante el argumento de par nombre-valor.ResponseVar
Para seleccionar un subconjunto de las columnas como predictores, utilice el argumento de par nombre-valor.PredictorVars
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 especificar mediante una fórmula.modelfun
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);
Tipos de datos: table
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
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
modelfun
— Forma funcional del modelo'y
~
f
(b1,b2,...,bj,x1,x2,...,xk)'
Forma funcional del modelo, especificada como cualquiera de las siguientes.
Mango de función @
O
modelfun
@(b,x)
Dónde modelfun
es un vector de coeficiente con el mismo número de elementos que .b
beta0
es una matriz con el mismo número de columnas o el número de columnas de variables predictoras de .x
X
tbl
modelfun
devuelve un vector de columna que contiene el mismo número de filas que .(b,x)
x
Cada fila del vector es el resultado de evaluar modelfun
en la fila correspondiente de .x
En otras palabras,
modelfun
es una función vectorizada, que funciona en todas las filas de datos y devuelve todas las evaluaciones en una llamada de función.
modelfun
deben devolver números reales para obtener coeficientes significativos.
Vector de caracteres o escalar de cadena que representa una fórmula en el formulario
'
Dónde
y
~
f
(b1,b2,...,bj,x1,x2,...,xk)'f
representa una función escalar de las variables de coeficiente escalar ,..., y las variables de datos escalares ,..., .b1
bj
x1
xk
Los nombres de variable de la fórmula deben ser identificadores válidos.MATLAB
Tipos de datos: function_handle
| char
| string
beta0
— CoeficientesCoeficientes para el modelo no lineal, especificados como un vector numérico. inicia su búsqueda de coeficientes óptimos desde .NonLinearModel
beta0
Tipos de datos: single
| double
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
'ErrorModel','combined','Exclude',2,'Options',opt
opt
'CoefficientNames'
— Nombres de los coeficientes del modelo{'b1','b2',...,'bk
'}
(predeterminado) | matriz de cadenas | matriz celular de vectores de caracteresNombres de los coeficientes del modelo, especificados como una matriz de cadenas o una matriz de celdas de vectores de caracteres.
Tipos de datos: string
| cell
'ErrorModel'
— Forma del modelo de varianza de error'constant'
(predeterminado) | 'proportional'
| 'combined'
Forma del modelo de varianza de error, especificado como uno de los siguientes. Cada modelo define el error utilizando una variable media-cero estándar y unidad-varianza en combinación con componentes independientes: el valor de función , y uno o dos parámetros yefab
(predeterminado)'constant' | |
'proportional' | |
'combined' |
El único modelo de error permitido cuando se utiliza es .Weights
'constant'
Nota
debe tener valor cuando se utiliza un modelo de error distinto de .options.RobustWgtFun
[]
'constant'
Ejemplo: 'ErrorModel','proportional'
'ErrorParameters'
— Estimaciones iniciales de los parámetros del modelo de errorEstimaciones iniciales de los parámetros del modelo de error para el , especificado como una matriz numérica.ErrorModel
Modelo de error | Parámetros | Valores predeterminados |
---|---|---|
'constant' | a | 1 |
'proportional' | b | 1 |
'combined' | a, b | [1,1] |
Sólo puede utilizar el modelo de error cuando utilice .'constant'
Weights
Nota
debe tener valor cuando se utiliza un modelo de error distinto de .options.RobustWgtFun
[]
'constant'
Por ejemplo, si tiene el valor , puede especificar el valor inicial 1 para y el valor inicial 2 para como se indica a continuación.'ErrorModel'
'combined'
ab
Ejemplo: 'ErrorParameters',[1,2]
Tipos de datos: single
| double
'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
'Options'
— Opciones para controlar el procedimiento de ajuste iterativoOpciones para controlar el procedimiento de ajuste iterativo, especificado como una estructura creada por .statset
Los campos relevantes son los campos no vacíos de la estructura devuelta por la llamada.statset('fitnlm')
Opción | Significado | Predeterminado |
---|---|---|
DerivStep | Diferencia relativa utilizada en cálculos de derivados de diferencias finitas. Un escalar positivo, o un vector de escalares positivos del mismo tamaño que el vector de parámetros estimados por la función mediante la estructura de opciones.Statistics and Machine Learning Toolbox™ | eps^(1/3) |
Display |
Cantidad de información mostrada por el algoritmo de ajuste.
| 'off' |
FunValCheck | Vector de caracteres o escalar de cadena que indica que hay valores no válidos, como o , desde la función de modelo.NaN Inf | 'on' |
MaxIter | Número máximo de iteraciones permitidas. Entero positivo. | 200 |
RobustWgtFun | Función de peso para un ajuste robusto. También puede ser un identificador de función que acepta un residual normalizado como entrada y devuelve las ponderaciones robustas como salida. Si utiliza un identificador de función, proporcione una constante.Tune VerOpciones robustas | [] |
Tune | Constante de ajuste utilizada en el ajuste robusto para normalizar los residuos antes de aplicar la función de peso. Un escalar positivo. Necesario si la función de peso se especifica como un identificador de función. | Busque el valor predeterminado, que depende de .Opciones robustasRobustWgtFun |
TolFun | Tolerancia de terminación para el valor de función objetivo. Escalar positivo. | 1e-8 |
TolX | Tolerancia de terminación para los parámetros. Escalar positivo. | 1e-8 |
Tipos de datos: struct
'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) | nombre de la variable | vector de índice lógico o numéricoVariable de respuesta que se va a utilizar en el ajuste, especificado como el par separado por comas que consta de y un nombre de variable en la tabla o matriz de conjunto de datos, o un vector de índice lógico o numérico que indica qué columna es la variable de respuesta.'ResponseVar'
tbl
Si especifica un modelo, especifica la variable de respuesta. De lo contrario, al ajustar una tabla o matriz de conjunto de datos, indica qué variable debe utilizarse como respuesta.'ResponseVar'
fitnlm
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
'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'
Ejemplo: 'VarNames',{'Horsepower','Acceleration','Model_Year','MPG'}
Tipos de datos: string
| cell
'Weights'
— Pesos de observaciónones(n,1)
(predeterminado) | vector de valores escalares no negativos | manija de la funciónPesos de observación, especificados como un vector de valores escalares no negativos o identificador de función.
Si especifica un vector, debe tener elementos, donde está el número de filas en o .nntbl
y
Si especifica un identificador de función, la función debe aceptar un vector de valores de respuesta predichos como entrada y devolver un vector de pesos positivos reales como salida.
Dadas las ponderaciones, , estima la varianza del error en la observación por , donde el MSE es el error cuadrado medio.W
NonLinearModel
i
MSE*(1/W(i))
Tipos de datos: single
| double
| function_handle
mdl
— Modelo no linealNonLinearModel
Modelo no lineal que representa un ajuste de mínimos cuadrados de la respuesta a los datos, devuelto como un objeto.NonLinearModel
Si la estructura contiene un campo no vacío, el modelo no es un ajuste de mínimos cuadrados, sino que utiliza la función de ajuste robusto.Options
RobustWgtFun
RobustWgtFun
Para conocer las propiedades y métodos del objeto de modelo no lineal, consulte la página de clases.mdl
NonLinearModel
Función de peso | Ecuación | Constante de ajuste predeterminada |
---|---|---|
'andrews' | w = (abs(r)<pi) .* sin(r) ./ r | 1.339 |
(predeterminado)'bisquare' | 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 | — |
utiliza el mismo algoritmo de ajuste que .fitnlm
nlinfit
[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.
Tiene una versión modificada de este ejemplo. ¿Desea abrir este ejemplo con sus modificaciones?
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.