Ligningen til en eksponentiell funksjon er $ y = ae ^ {bx} $

Dataene er tegnet som vist nedenfor: Utransformert eksponentiell plot

Transformering av dette for lineær regresjon: $ ln (y) = ln (a) + bx $

Denne transformasjonen vises i plottet nedenfor: Transformasjon

Da er den lineære regresjonsligningen: $ ln (y) = -369.9778 + 0.187693x $

Hvordan forvandler jeg den tilbake i form av $ y = ae ^ { bx} $ ??

Problemet mitt er i $ ln (a) = -369.9778 $. Av hvordan du får $ a $ -verdien.

Selv Excel kan ikke få ligningen riktig, men det er en trendlinje? Jeg forstår ikke hvordan den er avledet. Trendlinjen representerer ikke det faktiske scenariet basert på dataene i det hele tatt: Feil oppførsel

Men det er noe nøyaktig når jeg bruker de nyere datapunktene: Det er mer nøyaktig når jeg får de siste dataene

Dataene er som nedenfor:

Year Asymptomatic AIDS Total 1984 0 2 2 1985 6 4 10 1986 18 11 29 1987 25 13 38 1988 21 11 32 1989 29 10 39 1990 48 18 66 1991 68 17 85 1992 51 21 72 1993 64 38 102 1994 61 57 118 1995 65 51 116 1996 104 50 154 1997 94 23 117 1998 144 45 189 1999 80 78 158 2000 83 40 123 2001 117 57 174 2002 140 44 184 2003 139 54 193 2004 160 39 199 2005 171 39 210 2006 273 36 309 2007 311 31 342 2008 505 23 528 2009 804 31 835 2010 1562 29 1591 2011 2239 110 2349 2012 3151 187 3338 2013 4477 337 4814 2014 5468 543 6011 2015 7328 503 7831 2016 8151 1113 9264 

Kommentarer

  • Jeg bruker ikke ‘ t bruker Excel rutinemessig og vet ikke ‘ hva linjen er lagt til i ditt første plot. Det ‘ er absolutt ikke en eksponentiell, da det ikke er monotont. Jeg anbefaler studenter og kolleger å aldri gi en kurve hvis de kan ‘ t forklarer hvordan den ble produsert. Det ‘ er sannsynligvis et polynom eller en spline.
  • Jeg trykket bare eksponentielt i excel. Du ‘ rett, jeg klikket bare tilfeldig på det jeg følte det å være. Jeg prøver å finne ut hvordan jeg kan passe alle slags linjer, jeg er bare kjent med lineær regresjon.
  • Takk for at du har levert en Excel-fil på et annet nettsted. Jeg ‘ har tatt dataene og oppført dem i spørsmålet ditt. At ‘ er en bedre måte å gi eksempler på, kutte ut ett eller to andre programmer, uten å bruke Excel, som mange ikke gjør ‘ t eller ikke ‘ ikke har det, og bare gi folk noe de kan kopiere og lime inn i favorittprogramvaren.

Svar

Disse to regresjonene vil ikke gi parameterverdier som kan transformeres til hverandre nøyaktig:

$ ln (y) ~ vs. ~ A + B ~ x $

$ y ~ vs. ~ a ~ exp (b ~ x) $

fordi de minimerer forskjellige kvadratsummer, nemlig følgende henholdsvis:

$ \ Sigma_i (ln (y_i) – (A + B ~ x_i)) ^ 2 $

$ \ Sigma_i (y_i – a ~ exp (b ~ x_i)) ^ 2 $

og disse er ikke like minimale problemer.

Den første regresjonen kan løses for $ A $ og $ B $ ved hjelp av lineær regresjon.

For å løse den andre regresjonen, begynn med å løse den første. Bruk deretter $ a = exp (A) $ og $ b = B $ som startverdier for å løse det andre regresjonsproblemet ved hjelp av en ikke-lineær regresjonsløser (dvs. i Excel som ville være Solver). Hvis den ikke-lineære regresjonsmodellen er tilstrekkelig langt fra den lineære regresjonsmodellen, er det mulig at disse startverdiene ikke vil være tilstrekkelige. I så fall må du prøve andre startverdier.

Lagt til

Dataene er lagt til spørsmålet, slik at vi nå kan utføre den foreslåtte handlingen diskutert i avsnittet ovenfor. Nedenfor viser vi R-koden for å gjøre dette. Hvis du installerer R på maskinen, er det bare å kopiere og lime inn koden i R-konsollen.

Først leser vi dataene inn i DF og kjører deretter en lineær modell, dvs. regresjon, av log(Total) vs. Year. Merk at log i R er loggbase e. Vi ser at regresjonskoeffisientene som produseres er A = -369.977814 og B = 0.187693 for skjæringspunktet og hellingen. Deretter trekker vi ut skråningen ut i variabel b for å bruke som startverdi i den ikke-lineære regresjonen. Vi trenger ikke skjæringspunktet som startverdi, siden den ikke-lineære regresjonsalgoritmen, linjær, bare krever startverdier for ikke-lineære parametere. Deretter kjører vi den ikke-lineære regresjonen av Total vs. a * exp(b * Year). Koeffisientene den produserer er b = 2.838264e-01 og a = 3.117445e-245. Vi plotter deretter resultatet og vi ser at det virker rimelig nær dataene.

Generelt, når man utfører ikke-lineær optimalisering, betyr numeriske betraktninger at vi vil at parametrene skal være omtrent av samme størrelse som ikke er tilfelle. Dette antyder at parameteren omparameteres til å være:

$ y ~ vs. ~ exp (a ~ + ~ b ~ x_i) $ [omparameterert ikke-lineær modell]

og på slutten av koden nedenfor gjør vi det. Vi ser at nå er parameterne er a = -562.9959733 og b = 0.2838263 der nå a er som definert i definisjonen av den re-paramateriserte ikke-lineære modellen. Disse parametrene er mye mer sammenlignbare verdier, så vår omparameteriserte ikke-lineære modell virker å foretrekke.

Grafen ser ut som den som er vist for den første ikke-lineære regresjonsmodellen.

Lines <- "Year Asymptomatic AIDS Total 1984 0 2 2 1985 6 4 10 1986 18 11 29 1987 25 13 38 1988 21 11 32 1989 29 10 39 1990 48 18 66 1991 68 17 85 1992 51 21 72 1993 64 38 102 1994 61 57 118 1995 65 51 116 1996 104 50 154 1997 94 23 117 1998 144 45 189 1999 80 78 158 2000 83 40 123 2001 117 57 174 2002 140 44 184 2003 139 54 193 2004 160 39 199 2005 171 39 210 2006 273 36 309 2007 311 31 342 2008 505 23 528 2009 804 31 835 2010 1562 29 1591 2011 2239 110 2349 2012 3151 187 3338 2013 4477 337 4814 2014 5468 543 6011 2015 7328 503 7831 2016 8151 1113 9264" DF <- read.table(text = Lines, header = TRUE) 

Kjør nå dette:

# run linear regression model fit.lm <- lm(log(Total) ~ Year, DF) coef(fit.lm) ## (Intercept) Year ## -369.977814 0.187693 b <- coef(fm.lm)[[2]] b ## [1] 0.187693 # run nonlinear regresion model fit.nls <- nls(Total ~ exp(b * Year), DF, start = list(b = b), alg = "plinear") coef(fit.nls) ## b .lin ## 2.838264e-01 3.117445e-245 plot(Total ~ Year, DF) lines(fitted(fit.nls) ~ Year, DF, col = "red") a <- coef(fit.lm)[[1]] a ## [1] -369.9778 # run reparameterized nonlinear regression model fit2.nls <- nls(Total ~ exp(a + b * Year), DF, start = list(a = a, b = b)) coef(fit2.nls) ## a b ## -562.9959733 0.2838263 

skjermbilde

Kommentarer

  • At ‘ er riktig. I praksis er det ikke bare enklere å implementere linearisering først fordi det ‘ bare er et spørsmål om regresjon deretter; for data som disse virker det rimelig med tanke på feilstrukturen som er underforstått av grafen for log $ y $ i forhold til år, spesielt at spredning vises omtrent til og med på logaritmisk skala. Vi har ikke ‘ rådataene å sjekke, men i eksempler som denne lineariseringen virker det først usannsynlig å være problematisk eller dårligere.
  • Lineær regresjon klarte ikke å gi ønsket svar. Det er hovedpoenget i spørsmålet.
  • Jeg leser ‘ t det i det hele tatt. OP forsto ‘ t alt som ble gjort (a) generelt (b) av Excel. (Det er foruroligende at OP har revidert tråden, men ikke svarer på noen av de lengre svarene så langt.)
  • Diskusjonen i spørsmålet helt til slutt og de medfølgende grafene peker på at det som var oppnådd fra den lineære regresjonen var ikke det man ønsket.
  • Det ‘ så mye som er forvirret og til og med motstridende i spørsmålet. Hvis dataene var nøyaktig eksponentielle, ville det ikke ‘ uansett hvordan modellen ble montert. Det ‘ er muligens et valg mellom en mellomlang passform som understøtter høye verdier; en middels passform som tar mer hensyn til dem; og tenke på en ganske annen modell. OP er autoriteten til det som plager dem, men har (som sagt) ikke ‘ ennå avklart noen viktig detalj. Uansett løfter svarene forskjellige punkter som kan være til nytte eller interesse for andre i dette territoriet.

Svar

Du bruker kalenderåret som $ x $, så den uunngåelige konsekvensen er at $ a $ i $ y = a \ exp (bx) $ er, eller var, verdien av $ y $ i året $ x = 0 $. Å sette av det pedantiske punktet om at det ikke var noe år null, det var året før $ 1 $ e.Kr. (CE), og mental projeksjon av kurven din bakover, bør understreke at den tilpassede verdien vil være (ville ha vært!) Veldig liten faktisk i år $ 0 $ (men fortsatt positiv, da den eksponensielle funksjonen garanterer det).

Du gir ikke originaldataene for oss å sjekke, men jeg ser ingen grunn til å tvile på hva du viser. Jeg får $ \ exp (-369.9778) $ til å være $ 2,09 \ ganger 10 ^ {- 161 } $, veldig lite. Så Excel er riktig med to desimaler det viser. Videre må du vise resultatet ditt i strømnotasjon.

Hvis dette var mitt problem, ville jeg passet mht. si $ a \ exp [b (x – 2000)] $; da vil $ a $ ha den enklere tolkningen av $ y $ når $ x = 2000 $ og kan sammenlignes med data lettere. (Numerisk presisjon blir ikke skadet enten, og kan bli hjulpet.)

JW Tukey argumenterte for at vi skulle passe «centercepts», ikke interceptes, og dette eksemplet understreker poenget. Autoritet: Roger Koenker på denne siden av hans .

Planlegging på loggskala antyder at det eksponentielle bare er en grov passform, men det er ikke «t spørsmålet.

Beslektet diskusjon om valg av opprinnelse ved Er det fornuftig å bruke en datovariabel i en regresjon?

EDIT Gitt dataene, leste jeg dem inn i Stata.

Jeg monterte $ \ text {total} = a \ exp [b (\ text {år} – 2000)] $ ved å regressere $ \ ln (\ text {total}) $ på $ \ text {år} – 2000 $.

Det gir en lineær ligning på $ 5,40827 + 0,187693 (\ text {år} – 2000) $.

«Centercept» for $ 2000 $ forvandles altså tilbake til $ 223 $ eller så. Dataverdien var $ 123 $. En viktig detalj her er at $ 0.187693 $ samsvarer med Excel-resultatet.

I monterte deretter den samme ligningen direkte ved hjelp av ikke-lineære minste kvadrater og fikk midtpunktet på $ 105,2718 $ og koeffisienten på $ 0,2838264 $. Det er veldig annerledes og ikke overraskende, da de ikke-lineære minste kvadratene ikke rabatterer t han har høye verdier som det gjør linearisering av logaritmer. Din egen graf på loggskala viser at de høyeste verdiene i senere år er under-forutsagt ved å tilpasse på logaritmisk skala. Omvendt lener ikke-lineære minste kvadrater den andre veien.

Selv om en eksponentiell synes å være en veldig god passform, ville jeg ikke prøve å ekstrapolere den veldig langt inn i fremtiden.Med disse dataene, hvor en eksponentiell er best en grov null tilnærming, og med en mer beskjeden ekstrapolering enn du ba om, er usikkerheten alvorlig:

skriv inn bildebeskrivelse her

Kommentarer

  • Takk for referansene i ‘ Les opp om dem. Jeg er ikke så god med det grunnleggende angående opprinnelsen til ligningene og hvordan de fungerer, så jeg bruker verktøyene feil. Vel, jeg antar at ‘ er hvorfor folk flest synes matematikk er vanskelig

Svar

Til å begynne med vil jeg på det sterkeste foreslå at du ser etter Khan Academy-videoer om logg- og eksponensialfunksjoner.

Du bør være ok ved ganske enkelt å lage a = e^(-369.9778).

Kommentarer

  • Jeg forstår ikke ‘ hvordan du kom til den verdien. Er ikke ‘ t log(a) = -369.9778 det samme som 10^(-369.9778) = a?
  • Vent lei meg du ‘ har rett i det ‘ s e^(-369.9778). Selv om det ikke forklarer oppførselen til trendlinjene og regresjonsligningen. Kanskje det ‘ er noe jeg ‘ mangler
  • Da du først skrev spørsmålet, syntes jeg det var enkelt matematisk problem. Nå forstår jeg poenget ditt.
  • Beklager det villedende spørsmålet. Da jeg først stilte spørsmålet, trodde jeg også at det var min mangelfulle algebra som forårsaket problemet. Jeg ‘ Jeg er bare ikke så bra med det grunnleggende i matematikk, jeg har mange hull å fylle opp.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *