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.

nlpredci

Intervalos de confianza de predicción de regresión no lineal

Descripción

ejemplo

[Ypred,delta] = nlpredci(modelfun,X,beta,R,'Covar',CovB) Devuelve predicciones y un 95% de anchos de intervalo de confianza, para el modelo de regresión no lineal en los valores de entrada.YpreddeltamodelfunX Antes de llamar, utilícelas para ajustar y obtener los coeficientes estimados, los residuales y la matriz de varianza-covarianza.nlpredcinlinfitmodelfunbetaRCovB

ejemplo

[Ypred,delta] = nlpredci(modelfun,X,beta,R,'Covar',CovB,Name,Value) utiliza opciones adicionales especificadas por uno o más argumentos de par nombre-valor.

ejemplo

[Ypred,delta] = nlpredci(modelfun,X,beta,R,'Jacobian',J) Devuelve predicciones y un 95% de anchos de intervalo de confianza, para el modelo de regresión no lineal en los valores de entrada.YpreddeltamodelfunX Antes de llamar, use para ajustar y obtener los coeficientes estimados, los residuales, y Jacobianos,.nlpredcinlinfitmodelfunbetaRJ

Si utiliza una opción robusta con, a continuación, debe utilizar la sintaxis en lugar de la sintaxis.nlinfitCovarJacobian La matriz de varianzas-covarianzas, es necesaria para tener en cuenta correctamente el ajuste robusto.CovB

ejemplo

[Ypred,delta] = nlpredci(modelfun,X,beta,R,'Jacobian',J,Name,Value) utiliza opciones adicionales especificadas por uno o más argumentos de par nombre-valor.

Ejemplos

contraer todo

Cargue datos de muestra.

S = load('reaction'); X = S.reactants; y = S.rate; beta0 = S.beta;

Ajuste el modelo Hougen-Watson a los datos de velocidad utilizando los valores iniciales en.beta0

[beta,R,J] = nlinfit(X,y,@hougen,beta0);

Obtener la respuesta pronosticada y 95% intervalo de confianza de medio ancho para el valor de la curva en los niveles de reactivo promedio.

[ypred,delta] = nlpredci(@hougen,mean(X),beta,R,'Jacobian',J)
ypred = 5.4622 
delta = 0.1921 

Calcule el intervalo de confianza del 95% para el valor de la curva.

[ypred-delta,ypred+delta]
ans = 1×2

    5.2702    5.6543

Cargue datos de muestra.

S = load('reaction'); X = S.reactants; y = S.rate; beta0 = S.beta;

Ajuste el modelo Hougen-Watson a los datos de velocidad utilizando los valores iniciales en.beta0

[beta,R,J] = nlinfit(X,y,@hougen,beta0);

Obtenga la respuesta pronosticada y el 95% de intervalo de predicción de medio ancho para una nueva observación con niveles de reactivo.[100,100,100]

[ypred,delta] = nlpredci(@hougen,[100,100,100],beta,R,'Jacobian',J,...                          'PredOpt','observation')
ypred = 1.8346 
delta = 0.5101 

Calcule el intervalo de predicción del 95% para la nueva observación.

[ypred-delta,ypred+delta]
ans = 1×2

    1.3245    2.3447

Genere datos de ejemplo del modelo de regresión no lineal

<math display="block">
<mrow>
<mi>y</mi>
<mo>=</mo>
<msub>
<mrow>
<mi>b</mi>
</mrow>
<mrow>
<mn>1</mn>
</mrow>
</msub>
<mo>+</mo>
<msub>
<mrow>
<mi>b</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msub>
<mo></mo>
<mi>e</mi>
<mi>x</mi>
<mi>p</mi>
<mo stretchy="false">{</mo>
<msub>
<mrow>
<mi>b</mi>
</mrow>
<mrow>
<mn>3</mn>
</mrow>
</msub>
<mi>x</mi>
<mo stretchy="false">}</mo>
<mo>+</mo>
<mi>ϵ</mi>
</mrow>
</math>
Dónde
<math display="block">
<mrow>
<msub>
<mrow>
<mi>b</mi>
</mrow>
<mrow>
<mn>1</mn>
</mrow>
</msub>
</mrow>
</math>
,
<math display="block">
<mrow>
<msub>
<mrow>
<mi>b</mi>
</mrow>
<mrow>
<mn>2</mn>
</mrow>
</msub>
</mrow>
</math>
Y
<math display="block">
<mrow>
<msub>
<mrow>
<mi>b</mi>
</mrow>
<mrow>
<mn>3</mn>
</mrow>
</msub>
</mrow>
</math>
son coeficientes, y el término de error se distribuye normalmente con la media 0 y la 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);

Ajuste el modelo no lineal con opciones de ajuste sólidas.

opts = statset('nlinfit'); opts.RobustWgtFun = 'bisquare'; beta0 = [2;2;2]; [beta,R,J,CovB,MSE] = nlinfit(x,y,modelfun,beta0,opts);

Trace el modelo de regresión ajustada y los límites de confianza simultáneos del 95%.

xrange = min(x):.01:max(x); [ypred,delta] = nlpredci(modelfun,xrange,beta,R,'Covar',CovB,...                          'MSE',MSE,'SimOpt','on'); lower = ypred - delta; upper = ypred + delta;  figure() plot(x,y,'ko') % observed data hold on plot(xrange,ypred,'k','LineWidth',2) plot(xrange,[lower;upper],'r--','LineWidth',1.5)

Cargue datos de muestra.

S = load('reaction'); X = S.reactants; y = S.rate; beta0 = S.beta;

Especifique un manejador de funciones para ponderaciones de observación y, a continuación, ajuste el modelo Hougen-Watson a los datos de velocidad utilizando la función de ponderaciones de observación especificada.

a = 1; b = 1; weights = @(yhat) 1./((a + b*abs(yhat)).^2); [beta,R,J,CovB] = nlinfit(X,y,@hougen,beta0,'Weights',weights);

Calcule el intervalo de predicción del 95% para una nueva observación con niveles de reactivo utilizando la función de peso de observación.[100,100,100]

[ypred,delta] = nlpredci(@hougen,[100,100,100],beta,R,'Jacobian',J,...                          'PredOpt','observation','Weights',weights); [ypred-delta,ypred+delta]
ans = 1×2

    1.5264    2.1033

Cargue datos de muestra.

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 combinado de desviación de error.

[beta,R,J,CovB,MSE,S] = nlinfit(X,y,@hougen,beta0,'ErrorModel','combined');

Calcule el intervalo de predicción del 95% para una nueva observación con niveles de reactivo utilizando el modelo de desviación de error ajustado.[100,100,100]

[ypred,delta] = nlpredci(@hougen,[100,100,100],beta,R,'Jacobian',J,...                          'PredOpt','observation','ErrorModelInfo',S); [ypred-delta,ypred+delta]
ans = 1×2

    1.3245    2.3447

Argumentos de entrada

contraer todo

Función de modelo de regresión no lineal, especificada como un identificador de función. debe aceptar dos argumentos de entrada, un vector de coeficiente y una matriz (en ese orden) y devolver un vector de valores de respuesta ajustados.modelfunX

Por ejemplo, para especificar la función de regresión no lineal, utilice el manejador de funciones.hougen@hougen

Tipos de datos: function_handle

Valores de entrada para las predicciones, especificadas como una matriz. hace una predicción para las covariables en cada fila de.nlpredciX Debe haber una columna para cada coeficiente en el modelo.X

Tipos de datos: single | double

Coeficientes de regresión estimados, especificados como el vector de los coeficientes ajustados devueltos por una llamada anterior a.nlinfit

Tipos de datos: single | double

Residuales para el ajustado, especificado como el vector de los residuos devueltos por una llamada anterior a.modelfunnlinfit

Varianza estimada-matriz de covarianza para los coeficientes ajustados, especificada como la matriz de varianza-covarianza devuelta por una llamada anterior a.betanlinfit

El jacobiano estimado del modelo de regresión no lineal, especificado como la matriz jacobiana devuelta por una llamada anterior a.modelfunnlinfit

Argumentos de par nombre-valor

Especifique pares de argumentos separados por comas opcionales. es el nombre del argumento y es el valor correspondiente. deben aparecer dentro de las cotizaciones.Name,ValueNameValueName Puede especificar varios argumentos de par de nombre y valor en cualquier orden como.Name1,Value1,...,NameN,ValueN

Ejemplo: especifica un 90% de intervalos de predicción para nuevas observaciones.'Alpha',0.1,'PredOpt','observation'

Nivel de significancia para el intervalo de confianza, especificado como el par separado por comas que consta de y un valor escalar en el rango (0,1).'Alpha' Si tiene valor, a continuación, devuelve intervalos con 100 × (1 –)% nivel de confianza.Alphaαnlpredciα

El nivel de confianza predeterminado es 95% (= 0,05).α

Ejemplo: 'Alpha',0.1

Tipos de datos: single | double

Información sobre el ajuste del modelo de error, especificado como el par separado por comas que consta de una estructura devuelta por una llamada anterior a.'ErrorModelInfo'nlinfit

solo tiene un efecto en el intervalo de predicción devuelto cuando tiene el valor.ErrorModelInfoPredOpt'observation' Si no lo utiliza, asume el modelo de desviación de error.ErrorModelInfonlpredci'constant'

La estructura de modelo de error devuelta por tiene los siguientes campos:nlinfit

ErrorModelModelo de error elegido
ErrorParametersLos parámetros de error estimados
ErrorVarianceIdentificador de función que acepta una-por-matriz, y devuelve un vector-by-1 de varianzas de error utilizando el modelo de error EstimadoNpXN
MSEError cuadrado medio
ScheffeSimPredParámetro de Scheffé para intervalos de predicción simultáneos cuando se utiliza el modelo de error Estimado
WeightFunctionLógico con valor si ha utilizado una función de ponderación personalizada anteriormente entruenlinfit
FixedWeightsLógico con valor si ha utilizado pesos fijos previamente entruenlinfit
RobustWeightFunctionLógico con valor si ha utilizado un ajuste robusto anteriormente entruenlinfit

Error cuadrado medio (MSE) para el modelo de regresión no lineal ajustada, especificado como el par separado por comas que consiste en y el valor MSE devuelto por una llamada anterior a.'MSE'nlinfit

Si usted utiliza una opción robusta con, después usted debe especificar el MSE al predecir las nuevas observaciones para tomar correctamente el ajuste robusto en la cuenta.nlinfit Si usted no especifica el MSE, después computa el MSE de los residuales, y no toma el ajuste robusto en la cuenta.nlpredciR

Por ejemplo, si es el valor MSE devuelto por, después usted puede especificar.msenlinfit'MSE',mse

Tipos de datos: single | double

Intervalo de predicción para calcular, especificado como el par separado por comas que consta de y cualquiera o.'PredOpt''curve''observation'

  • Si especifica el valor, a continuación, devuelve los intervalos de confianza para la curva estimada (valor de función) en las observaciones.'curve'nlpredciX

  • Si especifica el valor, a continuación, devuelve los intervalos de predicción para las nuevas observaciones.'observation'nlpredciX

Si especifica después de usar una opción robusta con, a continuación, también debe especificar un valor para proporcionar la estimación robusta del error cuadrado medio.'observation'nlinfitMSE

Ejemplo: 'PredOpt','observation'

Indicador para especificar los límites simultáneos, especificado como el par separado por comas que consta de y cualquiera o.'SimOpt''off''on' Utilice el valor para calcular los límites no simultáneos y para los límites simultáneos.'off''on'

Ponderaciones de observación, especificadas como el par separado por comas que consta de un vector de valores escalares positivos o un identificador de función.'Weights' El valor predeterminado es sin pesos.

  • Si especifica un vector de ponderaciones, debe tener el mismo número de elementos que el número de observaciones (filas) en.X

  • Si especifica un identificador de función para las ponderaciones, debe aceptar un vector de los valores de respuesta pronosticados como entrada y devolver un vector de pesos positivos reales como salida.

Pesos dados,, estima la varianza de error en la observación por, donde es el valor de error cuadrado medio especificado usando.Wnlpredciimse*(1/W(i))mseMSE

Ejemplo: 'Weights',@WFun

Tipos de datos: double | single | function_handle

Argumentos de salida

contraer todo

Las respuestas previstas, devueltas como un vector con el mismo número de filas que.X

Intervalo de confianza de medio ancho, devuelto como un vector con el mismo número de filas que.X De forma predeterminada, contiene los anchos de medio para intervalos de confianza de 95% no simultáneos para las observaciones en.deltamodelfunX Puede calcular los límites inferior y superior de los intervalos de confianza como y, respectivamente.Ypred-deltaYpred+delta

Si tiene valor, contiene los anchos de medio para los intervalos de predicción de las nuevas observaciones en los valores de.'PredOpt''observation'deltaX

Más acerca de

contraer todo

Intervalos de confianza para predicciones estimable

Cuando el modelo estimado jacobiano no es de rango completo, entonces podría no ser posible construir intervalos de confianza razonables en todos los puntos de predicción. En este caso, todavía intenta construir intervalos de confianza para cualquier punto de predicción.nlpredciEstimable

Por ejemplo, supongamos que ajusta la función lineal f(xi,β)=β1xi1+β2xi2+β3xi3 en los puntos de la matriz de diseño

X=(110110110101101101).

El jacobiano estimado en los valores en X es la propia matriz de diseño, J=X. Por lo tanto, el jacobiano no es de rango completo:

rng('default') % For reproducibility y = randn(6,1);  linfun = @(b,x) x*b; beta0 = [1;1;1]; X = [repmat([1 1 0],3,1); repmat([1 0 1],3,1)];     [beta,R,J]  = nlinfit(X,y,linfun,beta0);
Warning: The Jacobian at the solution is ill-conditioned, and some model parameters may not be estimated well (they are not identifiable).  Use caution in making predictions.  > In nlinfit at 283 

En este ejemplo, solo se pueden calcular los intervalos de predicción en puntos que satisfacen la relación linealnlpredci

xi1=xi2+xi3.

Si intenta calcular los intervalos de confianza para las predicciones en puntos no identificables, devuelve los anchos de medio de intervalo correspondientes: aquí, el primer elemento es porque la primera fila en no satisface la dependencia lineal requerida, y por lo tanto no es una n estimable contraste.nlpredciNaN

xpred = [1 1 1;0 1 -1;2 1 1]; [ypred,delta] = nlpredci(linfun,xpred,beta,R,'Jacobian',J)
ypred =     -0.0035     0.0798    -0.0047   delta =         NaN     3.8102     3.8102
deltaNaNxpred

Sugerencias

  • Para calcular los intervalos de confianza para los parámetros o datos complejos, debe dividir el problema en sus partes reales e imaginarias. Al llamar:nlinfit

    1. Defina el vector de parámetros como la concatenación de las partes reales e imaginarias del vector de parámetros original.beta

    2. Concatenar las partes reales e imaginarias del vector de respuesta como un solo vector.Y

    3. Modifique la función de modelo para aceptar y el vector de parámetro puramente real, y devuelva una concatenación de las partes reales e imaginarias de los valores ajustados.modelfunX

    Con el problema formulado de esta manera, calcula estimaciones reales, y los intervalos de confianza son factibles.nlinfit

Algoritmos

  • trata los valores de los residuales, o el jacobiano, como valores faltantes, y omite las observaciones correspondientes.nlpredciNaNRJ

  • Si el jacobiano,, no tiene rango de columna completa, entonces algunos de los parámetros del modelo podrían ser no identificables.J En este caso, intenta construir y devuelve para aquellos que no lo son.nlpredciintervalos de confianza para predicciones estimableNaN

Referencias

[1] Lane, T. P. and W. H. DuMouchel. “Simultaneous Confidence Intervals in Multiple Regression.” The American Statistician. Vol. 48, No. 4, 1994, pp. 315–321.

[2] Seber, G. A. F., and C. J. Wild. Nonlinear Regression. Hoboken, NJ: Wiley-Interscience, 2003.

Consulte también

| |

Introducido antes de R2006a