Adattamento di un modello esponenziale ai dati


21

Ho 2 variabili, entrambe della classe "numerico":

> head(y)
[1] 0.4651804 0.6185849 0.3766175 0.5489810 0.3695258 0.4002567

> head(x)
[1] 59.32820 68.46436 80.76974 132.90824 216.75995 153.25551

Li ho tracciati e ora vorrei adattare un modello esponenziale ai dati (e aggiungerlo alla trama) ma non riesco a trovare alcuna informazione su come adattare i modelli ai dati multivariati in R! Solo per univariato dei dati, qualcuno può aiutare? Non so nemmeno da dove cominciare ... Grazie!


6
Questo è un po 'confuso. Dici di avere due variabili "indipendenti" (preferisco "predittore", ma non è importante). Hai delle variabili "dipendenti" / "risposta"? Se queste fossero entrambe variabili di risposta, posso immaginare di adattare una distribuzione parametrica della probabilità bivariata (con o senza variabili predittive da cui dipendevano i parametri della distribuzione) - o una stima della densità del kernel 2D. Forse potresti spiegare un po 'di più il contesto. (PS, chiunque abbia sollevato la domanda deve sapere cosa significa ... qualcuno si preoccupa di intervenire?)
Ben Bolker,

In ogni caso, è meglio andare su crossvalidated.com per tali domande. o su un oscuro sito Web chiamato Google. Ha trovato informazioni su come adattare i modelli a dati multivariati. Abbastanza (4 milioni duecentotrentamila per l'esattezza)
Joris Meys,

Consiglierei bing - dopo tutto è un motore decisionale, i motori di ricerca sono così del 20 ° secolo ... basta guardare Yahoo e Ask Jeeves, quanto sono irrilevanti oggi?!?
Chase,

@Ben Bolker - Grazie per l'aiuto, ho tolto l'indipendente, perché non era corretto. Quello che ho è la distanza tra le posizioni (x) e le correlazioni delle precipitazioni tra le posizioni (y)

nota che dovrai usare metodi speciali se vuoi fare inferenze statistiche su questi dati, perché se le distanze sono state calcolate su un insieme comune di posizioni, non sono indipendenti - cerca ad esempio "Test di Mantel"
Ben Bolker

Risposte:


20

Non sono del tutto sicuro di ciò che stai chiedendo, perché il tuo gergo è spento. Ma supponendo che le tue variabili non siano indipendenti l' una dall'altra (se lo fossero, non ci sarebbero relazioni da trovare) Ci proverò. Se xè la tua variabile indipendente (o predittore) ed yè la tua variabile dipendente (o di risposta), allora dovrebbe funzionare.

# generate data
beta <- 0.05
n <- 100
temp <- data.frame(y = exp(beta * seq(n)) + rnorm(n), x = seq(n))

# plot data
plot(temp$x, temp$y)

# fit non-linear model
mod <- nls(y ~ exp(a + b * x), data = temp, start = list(a = 0, b = 0))

# add fitted curve
lines(temp$x, predict(mod, list(x = temp$x)))

grazie per la tua risposta, ho tolto la parola "indipendente", come hai sottolineato, non aveva senso. Utilizzando il tuo codice per i miei dati posso adattare il modello, ma il risultato sono dozzine di linee nel grafico anziché solo una. Qualche idea sul perché?

@sbg - No, scusa, non riesco a pensare a un motivo per cui. Si nls()adatta a un modello?
Richard Herron,

Penso di sì, ottengo: Modello di modello di regressione non lineare: y ~ exp (a + b * x) dati: DF ab -0.535834 -0.002024 somma dei quadrati residua: 18.62 Numero di iterazioni alla convergenza: 6 Tolleranza convergenza raggiunta: 8.08 e-06

3
@sbg prova a ordinare la tua xvariabile:lines(sort(temp$x),predict(mod, list(x=sort(temp$x)))
Ben Bolker,
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.