Ligningen for en eksponentiel funktion er $ y = ae ^ {bx} $

Dataene er plottet som vist nedenfor: Utransformeret eksponentielt plot

Transformering af dette til lineær regression: $ ln (y) = ln (a) + bx $

Denne transformation vises i nedenstående plot: Transformation

Så er den lineære regressionsligning: $ ln (y) = -369.9778 + 0.187693x $

Hvordan omdanner jeg den tilbage i form af $ y = ae ^ { bx} $ ??

Mit problem er i $ ln (a) = -369.9778 $. Hvordan man får $ a $ -værdien.

Selv Excel kan ikke få ligningen korrekt, men der er en trendlinje? Jeg forstår ikke, hvordan det er afledt. Trendlinjen repræsenterer overhovedet ikke det faktiske scenario baseret på dataene: Forkert opførsel

Men det er noget nøjagtigt, når jeg bruger de nyere datapunkter: Det er mere nøjagtigt når jeg får de seneste data

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 bruger ikke ‘ t bruger Excel rutinemæssigt og ved ikke ‘ hvad den tilføjede linje er i dit første plot. Det ‘ er bestemt ikke en eksponentiel, da det ikke er monotont. Jeg råder studerende og kolleger til aldrig at give en kurve, hvis de kan ‘ t forklarer, hvordan den blev produceret. Det ‘ er sandsynligvis et polynom eller en spline.
  • Jeg trykkede bare eksponentielt i excel. Du ‘ rigtigt. Jeg har bare tilfældigt klikket på hvad jeg følte det være. Jeg prøver at finde ud af, hvordan jeg korrekt passer til enhver form for linje, jeg kender kun lineær regression.
  • Tak fordi du leverede en Excel-fil på et andet sted. Jeg ‘ har taget dataene og opført dem i dit spørgsmål. At ‘ er en bedre måde at give eksempler på, skære et eller to andre programmer ud uden at bruge Excel, hvilket mange mennesker ikke ‘ ikke gør eller har ikke ‘, og bare giver folk noget, de kan kopiere og indsætte i deres yndlingssoftware.

Svar

Disse to regressioner giver ikke parameterværdier, der kan omdannes til hinanden nøjagtigt:

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

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

fordi de minimerer forskellige sum af kvadrater, nemlig henholdsvis følgende:

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

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

og det er ikke tilsvarende minimeringsproblemer.

Den første regression kan løses for $ A $ og $ B $ ved hjælp af lineær regression.

For at løse den anden regression skal du begynde med at løse den første. Brug derefter $ a = exp (A) $ og $ b = B $ som startværdier til at løse det andet regressionsproblem ved hjælp af en ikke-lineær regressionsopløsning (dvs. i Excel, der ville være Solver). Hvis den ikke-lineære regressionsmodel er tilstrækkelig langt fra den lineære regressionsmodel, er det også muligt, at disse startværdier ikke vil være tilstrækkelige, i hvilket tilfælde du bliver nødt til at prøve andre startværdier.

Tilføjet

Dataene er føjet til spørgsmålet, så vi nu kan udføre den foreslåede handling, der er diskuteret i ovenstående afsnit. Nedenfor viser vi R-koden for at gøre dette. Hvis du installerer R på din maskine, skal du bare kopiere og indsætte den kode i R-konsollen.

Først læser vi dataene ind i DF og kører derefter en lineær model, dvs. regression af log(Total) vs. Year. Bemærk, at log i R er logbase e. Vi ser, at de producerede regressionskoefficienter er A = -369.977814 og B = 0.187693 for skæringspunktet og hældningen. Derefter udtrækker vi hældningen ud i variablen b til brug som startværdi i den ikke-lineære regression. Vi har ikke brug for skæringspunktet som en startværdi, da den ikke-lineære regressionsalgoritme, lineær, kun kræver startværdier for ikke-lineære parametre. Derefter kører vi den ikke-lineære regression af Total vs. a * exp(b * Year). De koefficienter, det producerer, er b = 2.838264e-01 og a = 3.117445e-245. Vi plotter derefter resultatet, og vi ser, at det synes rimeligt tæt på dataene.

Generelt indebærer numeriske overvejelser, når vi udfører ikke-lineær optimering, at vi ønsker, at parametrene skal være omtrent af samme størrelse, hvilket ikke er tilfældet. Dette antyder, at modellen skal parametriseres igen, så den er:

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

og i slutningen af koden nedenfor gør vi det. Vi ser, at nu er parametrene er a = -562.9959733 og b = 0.2838263 hvor nu a er som defineret i definitionen af den re-paramateriserede ikke-lineære model. Disse parametre er meget mere sammenlignelige værdier, så vores omparameteriserede ikke-lineære model synes at være at foretrække.

Grafen ligner den, der er vist for den første ikke-lineære regressionsmodel.

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) 

Kør dette nu:

# 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 

screenshot

Kommentarer

  • At ‘ er korrekt. I praksis er linearisering først ikke kun nemmere at implementere, fordi det ‘ bare er et spørgsmål om regression derefter; for data som disse synes det rimeligt i betragtning af fejlstrukturen, der er underforstået af grafen for log $ y $ versus år, især at spredning vises omtrent ens på logaritmisk skala. Vi har ‘ ikke rådataene til at kontrollere, men i eksempler som denne linearisering synes det først usandsynligt at være problematisk eller ringere.
  • Lineær regression kunne ikke give ønsket svar. Det er det vigtigste punkt i spørgsmålet.
  • Jeg læser ikke ‘ t læser det overhovedet spørgsmålet på den måde. OPet forstod ‘ ikke alt, hvad der blev gjort (a) generelt (b) af Excel. (Det er foruroligende, at OP har revideret tråden, men ikke reagerer på nogen af de længerevarende svar hidtil.)
  • Diskussionen i spørgsmålet lige ved slutningen og de ledsagende grafer påpeger, at det, der var opnået fra den lineære regression var ikke det, der var ønsket.
  • Der ‘ en masse, der er forvirret og endda modstridende i spørgsmålet. Hvis dataene var nøjagtigt eksponentielle, ville det ikke ‘ ligegyldigt, hvordan modellen blev monteret. Det ‘ er muligvis et valg mellem en mellemlang pasform, der understreger høje værdier; en mellemlang pasform, der lægger mere vægt på dem; og tænker op på en helt anden model. OP er autoriteten til, hvad der generer dem, men har (som sagt) ikke ‘ endnu ikke afklaret vigtige detaljer. Uanset hvad rejser svarene forskellige punkter, der kan være til nytte eller interesse for andre i dette område.

Svar

Du bruger kalenderår som $ x $, så den uundgåelige konsekvens er, at $ a $ i $ y = a \ exp (bx) $ er eller var værdien af $ y $ i år $ x = 0 $. Ved at afsætte det pedantiske punkt, at der ikke var noget år nul, det var året før $ 1 $ e.Kr. (CE), og mental projektion af din kurve baglæns, skulle det understrege, at den monterede værdi vil være (ville have været!) Meget lille faktisk om året $ 0 $ (men stadig positiv, da den eksponentielle funktion garanterer det).

Du giver ikke de originale data, som vi kan kontrollere, men jeg ser ingen grund til at tvivle på, hvad du viser. Jeg får $ \ exp (-369.9778) $ til at være $ 2,09 \ gange 10 ^ {- 161 } $, meget lille. Så Excel er korrekt med de to decimaler, det viser. Desuden bliver du nødt til at vise dit resultat i strømnotation.

Hvis dette var mit problem, ville jeg passe med hensyn til sig $ a \ exp [b (x – 2000)] $; så vil $ a $ have den lettere fortolkning af $ y $ når $ x = 2000 $ og lettere kan sammenlignes med data. (Numerisk præcision skades ikke enten og kan blive hjulpet.)

JW Tukey argumenterede for, at vi skulle passe “centercepts”, ikke interceptes, og dette eksempel understreger pointen. Autoritet: Roger Koenker på denne side af hans .

Planlægning på logskala antyder, at det eksponentielle kun er en grov pasform, men det er ikke “t spørgsmålet.

Relateret diskussion om valg af oprindelse ved Er det fornuftigt at bruge en datovariabel i en regression?

EDIT I betragtning af dataene læste jeg dem ind i Stata.

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

Det giver en lineær ligning på $ 5.40827 + 0.187693 (\ text {år} – 2000) $.

“Centerceptet” for $ 2000 $ omdannes således tilbage til $ 223 $ eller deromkring. Dataværdien var $ 123 $. En vigtig detalje her er, at $ 0,187693 $ matcher dit Excel-resultat.

I monterede derefter den samme ligning direkte ved hjælp af ikke-lineære mindste kvadrater og fik centercept på $ 105,2718 $ og koefficient på $ 0,2838264 $. Det er meget anderledes og ikke overraskende, da de ikke-lineære mindste kvadrater ikke rabatter han har høje værdier som linearisering af logaritmer. Din egen graf på logskala viser, at de højeste værdier i senere år er under-forudsagt ved at tilpasse på logaritmisk skala. Omvendt læner ikke-lineære mindste kvadrater den anden vej.

Selvom en eksponentiel syntes at være en meget god pasform, ville jeg ikke prøve at ekstrapolere den meget langt ind i fremtiden.Med disse data, hvor en eksponentiel er bedst en grov nul tilnærmelse, og med en mere beskeden ekstrapolering end du bad om, er usikkerheden alvorlig:

indtast billedebeskrivelse her

Kommentarer

  • Tak for disse referencer i ‘ Læs dem op. Jeg er ikke så god med det grundlæggende med hensyn til ligningernes oprindelse og hvordan de fungerer, så jeg anvender værktøjerne forkert. Jeg antager, at ‘ hvorfor de fleste mennesker finder matematik hårdt

Svar

Til at begynde med vil jeg meget anbefale dig at kigge efter Khan Academy-videoer om log- og eksponentialfunktioner.

Du skal være ok ved blot at lave a = e^(-369.9778).

Kommentarer

  • Jeg forstår ikke ‘, hvordan du nåede den værdi. Er ikke ‘ t log(a) = -369.9778 det samme som 10^(-369.9778) = a?
  • Vent undskyld du ‘ retter det ‘ s e^(-369.9778). Selvom det ikke forklarer trendlinjernes opførsel og regressionsligningen. Måske er der ‘ noget jeg ‘ mangler
  • Da du først skrev spørgsmålet, troede jeg, det var simpelt matematik problem. Nu får jeg din mening.
  • Undskyld for det vildledende spørgsmål. Da jeg først stillede spørgsmålet, troede jeg også, at det var min mangelfulde algebra, der forårsagede problemet. Jeg ‘ Jeg er bare ikke så god med matematikens grundlæggende, jeg har mange huller at fylde op.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *