Al ajustar una curva, ¿cómo calculo el intervalo de confianza del 95% para mis parámetros ajustados?

12

Estoy ajustando curvas a mis datos para extraer un parámetro. Sin embargo, no estoy seguro de cuál es la certeza de ese parámetro y cómo calcularía / expresaría su intervalo de confianza del %.95

Digamos que para un conjunto de datos que contiene datos que decae exponencialmente, ajusto una curva a cada conjunto de datos. Entonces la información que quiero extraer es el exponente . Sé los valores de y el valor de que no me interesa (esa es una variable que proviene de la población, no del proceso que estoy tratando de modelar).t abta

Yo uso la regresión no lineal para ajustar estos parámetros. Sin embargo, no sé cómo calcular el intervalo de confianza del % para ningún método, por lo que las respuestas más amplias también son bienvenidas.95

f=aebt
datos de ejemplo y ajuste

Una vez que tengo mi valor para , ¿cómo calculo su intervalo de confianza del %? ¡Gracias por adelantado!95b95

León
fuente
¿Cómo se ajustan los datos? ¿Se transforma su función para adaptarse a un OLS?
Johnny
Veo por sus comentarios sobre las respuestas que en realidad está haciendo mínimos cuadrados no lineales. Hubiera tenido buenas respuestas más rápidamente si hubiera comenzado con esa información. Al menos he agregado una etiqueta relevante.
Glen_b -Reinstalar Monica
@Glen_b Ah, estaré más completo en el futuro y lo agregaré a la pregunta. Sin embargo, pensé en ello. Con algunos conjuntos de datos uso la distancia L1 absoluta y otras veces sigo usando la regresión lineal. Así que esperaba obtener una respuesta amplia.
Leo
Si desea respuestas para mínimos cuadrados, regresión L1 y mínimos cuadrados no lineales, sería mejor ser explícito al respecto.
Glen_b -Reinstate Monica

Respuestas:

10

El problema con la linealización y luego con la regresión lineal es que la suposición de una distribución gaussiana de residuos no es probable que sea cierta para los datos transformados.

Por lo general, es mejor usar regresión no lineal. La mayoría de los programas de regresión no lineal informan el error estándar y el intervalo de confianza de los parámetros de mejor ajuste. Si la suya no lo hace, estas ecuaciones pueden ayudar.

Cada error estándar se calcula utilizando esta ecuación:

SE(Pi) = sqrt[ (SS/DF) * Cov(i,i) ]

  • Pi: parámetro ajustable i-ésimo (no constante)
  • SS: suma de residuos al cuadrado
  • DF: grados de libertad (el número de puntos de datos menos el número de parámetros ajustados por regresión)
  • Cov (i, i): i-ésimo elemento diagonal de la matriz de covarianza
  • sqrt (): raíz cuadrada

Y aquí está la ecuación para calcular el intervalo de confianza para cada parámetro a partir del valor de mejor ajuste, su error estándar y el número de grados de libertad.

From [BestFit(Pi)- t(95%,DF)*SE(Pi)]  TO  [BestFit(Pi)+
 t(95%,DF)*SE(Pi)] 
  • BestFit (Pi) es el mejor valor de ajuste para el parámetro i-ésimo
  • t es el valor de la distribución t para un 95% de confianza para el número especificado de DF.
  • DF es grados de libertad.

    Ejemplo con Excel para un 95% de confianza (alfa = 0.05) y 23 grados de libertad: = TINV (0.05,23) DF es igual a grados de libertad (el número de puntos de datos menos el número de parámetros ajustados por regresión)

Harvey Motulsky
fuente
Esto es exactamente lo que necesitaba, ¡gracias! Utilicé lsqcurvefit en Matlab , no genera el intervalo de confianza ni el error estándar. Da los multiplicadores de Lagrange (?), Los residuos y la norma 2 al cuadrado de los residuos. ¡Ahora con eso y tu respuesta puedo calcular lo que necesito!
Leo
3

Si cree que un modelo apropiado para sus datos es:

f=aebt

Luego puede tomar un registro para transformar sus datos de respuesta de modo que un modelo apropiado sea:

f=abt

con y . Los datos transformados pueden ajustarse utilizando una regresión lineal simple y una estimación de la intersección y la pendiente junto con los errores estándar obtenidos. Si el valor t crítico y el error estándar se aplican a la estimación del parámetro, se puede formar un intervalo de confianza para esa estimación del parámetro. En R:a = l n ( a )f=ln(f)a=ln(a)

# Rough simulated data set.
set.seed(1)
a <- 50; b <- 0.2; n <- 25
x <- 1:n
y <- a*(exp(-b * x))
y <- y + rnorm(n, sd=0.25)
y <- ifelse(y>0, y, 0.1)
plot(x,y)

# Linearise:
y2 <- log(y)
plot(x,y2)

# Fit model to transformed data
model <- lm(y2 ~ x)
summary(model)
confint(model)

# Or:
param <- summary(model)$coefficients[, 1]; se <- summary(model)$coefficients[, 2]
param + qt(0.975, 23) * se
param - qt(0.975, 23) * se

Si está utilizando el modelo para predecir, debe asegurarse de verificar que se hayan cumplido los supuestos de SLR: iid . N(0,σ2)

t-student
fuente
¡Ah gracias! ¡Una respuesta muy agradable y completa! Esto lo puedo usar si hago un ajuste linealizado, lo que a veces también hago. Espero que no le importe que acepto la respuesta de Harvey, ya que en este caso mi pregunta no era sobre el ajuste linealizado. Sin embargo, sigue siendo una respuesta útil.
Leo