Jag har två variabler, båda från klass ”numeric”:
> 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
Jag plottade dem, och nu vill jag passa en exponentiell modell till data (och lägga till den i plot) men jag kan inte hitta någon information om anpassning av modeller till multivariata data i R! Kan bara någon hjälpa till med univariata data? Jag vet inte ens var jag ska börja … Tack!
Kommentarer
- Det här är lite förvirrande. Du säger att du har två " oberoende " variabler (jag föredrar " prediktor ", men att ' inte är viktigt). Har du någon " beroende " / " -svar " variabler? Om dessa båda var svarsvariabler kan jag tänka mig att passa en parametrisk, bivariat sannolikhetsfördelning (med eller utan prediktorvariabler som distributionens ' -parametrar berodde på) – eller en 2D-kärndensitetsuppskattning. Kanske skulle du kunna förklara sammanhanget lite mer. ”>
som röstar på frågan måste veta vad det betyder … någon som bryr sig om att ringa in?)
Svar
Jag är inte helt säker på vad du frågar, för din lingo är avstängd. Men förutsatt att dina variabler inte är oberoende av varandra (om de var, då de är ingen relation att hitta. Jag ska prova. Om x
är din oberoende (eller prediktor) variabel och y
är din beroende (eller svar) variabel, så ska detta fungera.
# 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
- tack för ditt svar, jag har tagit ordet " oberoende ", som du påpekade, gjorde det ' inte meningsfullt. Med din kod för mina data kan jag passa modellen men resultatet är dussintals rader i grafen istället för bara en. Någon aning varför?
- @sbg – Nej, förlåt, jag kan ' inte tänka på en anledning till varför. Passar
nls()
en modell? - Jag tror det, jag får: Olinjär regressionsmodellmodell: y ~ exp (a + b * x) data: DF ab -0.535834 -0.002024 återstående summa av kvadrater: 18.62 Antal iterationer till konvergens: 6 Uppnådd konvergentolerans: 8.08e-06
- @sbg försök att sortera din
x
variabel:lines(sort(temp$x),predict(mod, list(x=sort(temp$x)))