Jeg har to variabler, begge fra klasse «numerisk»:
> 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
Jeg plottet dem, og nå vil jeg passe en eksponentiell modell til dataene (og legge den til plot), men jeg finner ikke informasjon om montering av modeller til multivariate data i R! Bare for å univariate data, kan noen hjelpe? Jeg vet ikke engang hvor jeg skal begynne … Takk!
Kommentarer
- Dette er litt forvirrende. Du sier at du har to " uavhengig " variabler (jeg foretrekker " prediktor ", men det ' er ikke viktig). Har du noen " avhengige " / " respons " variabler? Hvis disse begge var responsvariabler, kan jeg forestille meg å passe en parametrisk, bivariat sannsynlighetsfordeling (med eller uten prediktorvariabler som fordelingen ' s parametere var avhengig av) – eller et 2D-kjernetetthetsestimat. Kanskje du kan forklare sammenhengen litt mer. «>
s oppstemning av spørsmålet må vite hva det betyr … noen bryr seg om å ringe inn?)
Svar
Jeg er ikke helt sikker på hva du spør, fordi lingo er av. Men forutsatt at variablene dine ikke er uavhengige av hverandre (hvis de var det, da de er ikke noe forhold å finne. Jeg vil prøve. Hvis x
er din uavhengige (eller prediktor) variabel og y
er din avhengige (eller respons) variabel, bør dette fungere.
# 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)))
Kommentarer
- takk for svaret ditt, jeg har tatt ordet " uavhengig " ut, som du påpekte, gjorde det ikke ' ikke fornuftig. Ved å bruke koden din for dataene mine kan jeg passe modellen, men resultatet er dusinvis av linjer i grafen i stedet for bare en. Noen anelse om hvorfor?
- @sbg – Nei, beklager, jeg kan ' ikke tenke på en grunn til det. Passer
nls()
til en modell? - Jeg tror det, jeg får: Ikke-lineær regresjonsmodellmodell: y ~ exp (a + b * x) data: DF ab -0.535834 -0.002024 gjenværende sum av kvadrater: 18.62 Antall iterasjoner til konvergens: 6 Oppnådd konvergentoleranse: 8.08e-06
- @sbg, prøv å sortere
x
variabel:lines(sort(temp$x),predict(mod, list(x=sort(temp$x)))