Lors de l'ajustement d'une courbe, comment puis-je calculer l'intervalle de confiance à 95% pour mes paramètres ajustés?

12

J'ajuste des courbes à mes données pour extraire un paramètre. Cependant, je ne sais pas quelle est la certitude de ce paramètre et comment je calculerais / exprimerais son intervalle de confiance à %.95

Disons que pour un ensemble de données contenant des données qui décroissent exponentiellement, j'adapte une courbe à chaque ensemble de données. Ensuite, l'information que je veux extraire est l'exposant . Je connais les valeurs de et la valeur de a qui ne m'intéresse pas (c'est une variable qui vient de la population, pas le processus que j'essaie de modéliser).tbta

J'utilise une régression non linéaire pour ajuster ces paramètres. Cependant, je ne sais pas comment calculer l' intervalle de confiance à 95 % pour n'importe quelle méthode, donc des réponses plus larges sont également les bienvenues.

f=aebt
exemples de données et ajustement

Une fois que j'ai ma valeur pour b , comment calculer son intervalle de confiance à 95 %? Merci d'avance!

Leo
la source
Comment ajustez-vous les données? Votre fonction est-elle transformée pour s'adapter à un OLS?
johnny
Je vois dans vos commentaires sur les réponses que vous faites en fait des moindres carrés non linéaires. Vous auriez eu de bonnes réponses plus rapidement si vous aviez commencé avec ces informations. J'ai au moins ajouté une balise pertinente.
Glen_b -Reinstate Monica
@Glen_b Ah je serai plus complet à l'avenir et l'ajouterai à la question. J'y ai pensé cependant. Avec certains jeux de données, j'utilise la distance absolue L1 et d'autres fois, j'utilise toujours la régression linéaire. J'espérais donc obtenir une réponse large.
Leo
Si vous voulez des réponses pour les moindres carrés, la régression L1 et les moindres carrés non linéaires, il serait préférable d'être explicite à ce sujet.
Glen_b -Reinstate Monica

Réponses:

10

Le problème de la linéarisation puis de l'utilisation de la régression linéaire est que l'hypothèse d'une distribution gaussienne des résidus n'est probablement pas vraie pour les données transformées.

Il est généralement préférable d'utiliser une régression non linéaire. La plupart des programmes de régression non linéaire signalent l'erreur standard et l'intervalle de confiance des paramètres les mieux adaptés. Si ce n'est pas le cas, ces équations peuvent vous aider.

Chaque erreur standard est calculée à l'aide de cette équation:

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

  • Pi: i-ème paramètre réglable (non constant)
  • SS: somme des résidus au carré
  • DF: degrés de liberté (le nombre de points de données moins le nombre de paramètres ajustés par régression)
  • Cov (i, i): i-ème élément diagonal de la matrice de covariance
  • sqrt (): racine carrée

Et voici l'équation pour calculer l'intervalle de confiance pour chaque paramètre à partir de la valeur la mieux ajustée, de son erreur standard et du nombre de degrés de liberté.

From [BestFit(Pi)- t(95%,DF)*SE(Pi)]  TO  [BestFit(Pi)+
 t(95%,DF)*SE(Pi)] 
  • BestFit (Pi) est la meilleure valeur d'ajustement pour le i-ème paramètre
  • t est la valeur de la distribution t pour une confiance de 95% pour le nombre spécifié de DF.
  • DF est le degré de liberté.

    Exemple avec Excel pour une confiance de 95% (donc alpha = 0,05) et 23 degrés de liberté: = TINV (0,05,23) DF est égal aux degrés de liberté (le nombre de points de données moins le nombre de paramètres ajustés par régression)

Harvey Motulsky
la source
C'est exactement ce dont j'avais besoin, merci! J'ai utilisé lsqcurvefit dans Matlab , il ne génère pas d'intervalle de confiance ni d'erreur standard. Il donne les multiplicateurs de Lagrange (?), Les résidus et la norme quadratique des résidus. Maintenant, avec cela et votre réponse, je peux calculer ce dont j'ai besoin!
Leo
3

Si vous pensez qu'un modèle approprié pour vos données est:

f=aebt

Ensuite, vous pouvez prendre un journal pour transformer vos données de réponse de sorte qu'un modèle approprié soit:

f=abt

avec et . Les données transformées peuvent être ajustées en utilisant une régression linéaire simple et une estimation de l'ordonnée à l'origine et de la pente avec les erreurs standard obtenues. Si la valeur t critique et l'erreur standard sont appliquées à l'estimation de paramètre, un intervalle de confiance pour cette estimation de paramètre peut être formé. Dans 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 vous utilisez le modèle de prévision, vous devez vous assurer de vérifier que les hypothèses de SLR ont été respectées - iid . N(0,σ2)

t-étudiant
la source
Ah merci! Une réponse très agréable et complète! Je peux l'utiliser si je fais un ajustement linéarisé, ce que je fais aussi parfois. J'espère que cela ne vous dérange pas que j'accepte la réponse de Harveys, car dans ce cas, ma question ne portait pas sur l'ajustement linéarisé. Encore une réponse utile!
Leo