Quando si adatta una curva, come posso calcolare l'intervallo di confidenza al 95% per i miei parametri adattati?


12

Sto adattando le curve ai miei dati per estrarre un parametro. Tuttavia, non sono sicuro di quale sia la certezza di quel parametro e di come calcolare / esprimere il suo intervallo di confidenza al %.95

Supponiamo che per un set di dati contenente dati che decadono in modo esponenziale, io adatti una curva a ciascun set di dati. Quindi l'informazione che voglio estrarre è l'esponente . So che i valori di e il valore di io non sono interessato a (che è una variabile che viene dalla popolazione, non il processo Im che prova a modello).t abta

Uso la regressione non lineare per adattare questi parametri. Tuttavia non so come calcolare l' intervallo di confidenza al % per qualsiasi metodo, quindi sono gradite anche risposte più ampie.95

f=aebt
dati di esempio e adattamento

Una volta che ho il mio valore per , come posso calcolare il suo intervallo di confidenza al %? Grazie in anticipo!95b95


Come si adattano i dati? La tua funzione è stata trasformata in modo da adattarsi a un OLS?
johnny,

Dai tuoi commenti sulle risposte vedo che stai effettivamente realizzando minimi quadrati non lineari. Avresti avuto buone risposte più rapidamente se avessi iniziato con quelle informazioni. Ho almeno aggiunto un tag pertinente.
Glen_b -Restate Monica

@Glen_b Ah In futuro sarò più completo e aggiungilo alla domanda. Ci ho pensato comunque. Con alcuni set di dati utilizzo la distanza L1 assoluta e altre volte utilizzo ancora la regressione lineare. Quindi speravo di ottenere una risposta ampia.
Leone,

Se vuoi risposte per minimi quadrati, regressione L1 e minimi quadrati non lineari, sarebbe meglio essere espliciti a riguardo.
Glen_b -Restate Monica

Risposte:


10

Il problema della linearizzazione e quindi dell'uso della regressione lineare è che l'ipotesi di una distribuzione gaussiana dei residui non è verosimilmente vera per i dati trasformati.

Di solito è meglio usare la regressione non lineare. La maggior parte dei programmi di regressione non lineare riporta l'errore standard e l'intervallo di confidenza dei parametri più adatti. In caso contrario, queste equazioni possono aiutare.

Ogni errore standard viene calcolato usando questa equazione:

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

  • Pi: i-esimo parametro regolabile (non costante)
  • SS: somma dei residui quadrati
  • DF: gradi di libertà (il numero di punti dati meno il numero di parametri adattati dalla regressione)
  • Cov (i, i): i-esimo elemento diagonale della matrice di covarianza
  • sqrt (): radice quadrata

Ed ecco l'equazione per calcolare l'intervallo di confidenza per ciascun parametro dal valore più adatto, dal suo errore standard e dal numero di gradi di libertà.

From [BestFit(Pi)- t(95%,DF)*SE(Pi)]  TO  [BestFit(Pi)+
 t(95%,DF)*SE(Pi)] 
  • BestFit (Pi) è il valore di adattamento migliore per l'i-esimo parametro
  • t è il valore della distribuzione t per il 95% di confidenza per il numero specificato di DF.
  • DF è gradi di libertà.

    Esempio con Excel per il 95% di confidenza (quindi alfa = 0,05) e 23 gradi di libertà: = TINV (0,05,23) DF è uguale a gradi di libertà (il numero di punti dati meno il numero di parametri adattati dalla regressione)


Questo è esattamente ciò di cui avevo bisogno, grazie! Ho usato lsqcurvefit in Matlab , non genera l'intervallo di confidenza o l'errore standard. Fornisce i moltiplicatori di Lagrange (?), I residui e la 2 norma quadrata dei residui. Ora con quello e la tua risposta posso calcolare ciò di cui ho bisogno!
Leo,

3

Se ritieni che un modello appropriato per i tuoi dati sia:

f=aebt

Quindi puoi prendere un registro per trasformare i tuoi dati di risposta in modo tale che un modello appropriato sia:

f=abt

con e . I dati trasformati possono essere adattati utilizzando una semplice regressione lineare e una stima dell'intercettazione e della pendenza insieme agli errori standard ottenuti. Se il valore t critico e l'errore standard vengono applicati alla stima del parametro, è possibile formare un intervallo di confidenza per tale stima del parametro. In 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

Se si utilizza il modello per la previsione, assicurarsi di aver verificato che le ipotesi di SLR siano state soddisfatte - iid . N(0,σ2)


Ah grazie! Una risposta molto bella e completa! Questo lo posso usare se faccio una misura linearizzata, cosa che a volte faccio anche. Spero non ti dispiaccia che accetto la risposta di Harveys, poiché in questo caso la mia domanda non riguardava l'adattamento linearizzato. Comunque una risposta utile però!
Leo,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.