Ekvationen för en exponentiell funktion är $ y = ae ^ {bx} $

Data plottas som visas nedan: Otransformerad exponentiell plot

Omvandlar detta för linjär regression: $ ln (y) = ln (a) + bx $

Denna omvandling visas i diagrammet nedan: Transformation

Då är den linjära regressionsekvationen: $ ln (y) = -369.9778 + 0.187693x $

Hur förvandlar jag tillbaka den i form av $ y = ae ^ { bx} $ ??

Mitt problem finns i $ ln (a) = -369.9778 $. Hur får man $ a $ -värdet.

Även Excel kan inte få ekvationen korrekt, men det finns en trendlinje? Jag förstår inte hur den härleds. Trendlinjen representerar inte det faktiska scenariot baserat på data alls: Fel beteende

Men det är något korrekt när jag använder de senaste datapunkterna: Det är mer exakt när jag får senaste data

Uppgifterna är som nedan:

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

  • Jag använder inte ’ t använder Excel rutinmässigt och vet ’ inte vad den tillagda raden är i din första plot. Det ’ är verkligen inte exponentiellt eftersom det inte är monotont. Jag råder elever och kollegor att aldrig ge en kurva om de kan ’ t förklara hur den producerades. Det ’ är förmodligen ett polynom eller en spline.
  • Jag tryckte bara på exponential i excel. Du ’ rätt, jag klickade bara slumpmässigt på vad jag kände att det var. Jag försöker ta reda på hur jag kan passa alla typer av linjer, jag känner bara till linjär regression.
  • Tack för att du tillhandahåller en Excel-fil på en annan webbplats. Jag ’ har tagit in uppgifterna och listat dem i din fråga. Att ’ är ett bättre sätt att ge exempel genom att klippa ut ett eller två andra program, utan att använda Excel, vilket många inte gör ’ eller har ’ inte, och bara ge människor något de kan kopiera och klistra in i sin favoritprogramvara.

Svara

Dessa två regressioner ger inte parametervärden som kan omvandlas till varandra exakt:

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

$ y ~ mot ~ a ~ exp (b ~ x) $

eftersom de minimerar olika summor av kvadrater, nämligen följande:

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

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

och de är inte likvärdiga minimeringsproblem.

Den första regressionen kan lösas för $ A $ och $ B $ med linjär regression.

För att lösa den andra regressionen, börja med att lösa den första. Använd sedan $ a = exp (A) $ och $ b = B $ som startvärden för att lösa det andra regressionsproblemet med en icke-linjär regressionslösare (dvs. i Excel som skulle vara Solver). Om den icke-linjära regressionsmodellen är tillräckligt långt ifrån den linjära regressionsmodellen är det möjligt att dessa startvärden inte kommer att vara adekvata, i vilket fall du måste testa andra startvärden.

Tillagt

Uppgifterna har lagts till i frågan så att vi nu kan utföra den föreslagna åtgärden som diskuteras i avsnittet ovan. Nedan visar vi R-koden för att göra detta. Om du installerar R på din maskin kopierar du bara och klistrar in den koden i R-konsolen.

Först läser vi data i DF och kör sedan en linjär modell, dvs regression av log(Total) vs. Year. Observera att log i R är logbas e. Vi ser att regressionskoefficienterna som produceras är A = -369.977814 och B = 0.187693 för avlyssningen och lutningen. Sedan extraherar vi lutningen till variabel b för att använda som startvärde i den icke-linjära regressionen. Vi behöver inte avlyssningen som startvärde eftersom den icke-linjära regressionsalgoritmen, linjär, bara kräver startvärden för icke-linjära parametrar. Sedan kör vi den icke-linjära regressionen av Total vs. a * exp(b * Year). De koefficienter som den producerar är b = 2.838264e-01 och a = 3.117445e-245. Vi plottar sedan resultatet och vi ser att det verkar rimligt nära data.

Generellt, när man utför icke-linjär optimering antyder numeriska överväganden att vi vill att parametrarna ska vara ungefär av samma storlek som inte är fallet. Detta föreslår att parametreringen av modellen ska vara:

$ y ~ mot ~ exp (a ~ + ~ b ~ x_i) $ [omparameteriserad icke-linjär modell]

och i slutet av koden nedan gör vi det. Vi ser att nu är parametrarna är a = -562.9959733 och b = 0.2838263 där nu a är som definierat i definitionen av den omparameteriserade icke-linjära modellen. Dessa parametrar är mycket mer jämförbara värden så vår omparameteriserade icke-linjära modell verkar vara att föredra.

Grafen skulle se ut som den som visas för den första icke-linjära regressionsmodellen.

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 nu detta:

# 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 

skärmdump

Kommentarer

  • Att ’ är korrekt. I praktiken är linjärisering först inte bara enklare att implementera eftersom det ’ bara är en fråga om regression därefter; för data som dessa verkar det rimligt med tanke på den felstruktur som antyds av grafen för log $ y $ mot år, särskilt att spridning uppträder ungefär jämnt på logaritmisk skala. Vi har inte ’ rådata att kontrollera, men i exempel som detta verkar linjärisering först osannolikt att vara problematisk eller sämre.
  • Linjär regression misslyckades med att ge önskat svar. Det är huvudfrågan i frågan.
  • Jag läser ’ Jag läste inte frågan på det sättet alls. OP förstod inte ’ allt som gjordes (a) i allmänhet (b) av Excel. (Det är oroväckande att OP har granskat tråden men inte svarar på något av de långvariga svaren hittills.)
  • Diskussionen i frågan precis i slutet och de medföljande graferna påpekar att det som var erhållen från linjär regression var inte vad man ville.
  • Det finns ’ en massa som är förvirrad och till och med motsägelsefull i frågan. Om data var exakt exponentiella skulle det inte ’ spela någon roll hur modellen monterades. Det ’ är möjligen ett val mellan en mellanliggande passform som understryker vid höga värden; en mellanliggande passform som ägnar mer uppmärksamhet åt dem; och tänka på en helt annan modell. OP är myndigheten för vad som stör dem men (som sagt) har inte ’ ännu inte klargjort några viktiga detaljer. Oavsett detta lyfter svaren upp olika punkter som kan vara till nytta eller intresse för andra inom detta territorium.

Svar

Du använder kalenderåret som $ x $, så den oundvikliga konsekvensen är att $ a $ i $ y = a \ exp (bx) $ är, eller var, värdet $ y $ år $ x = 0 $. Att lägga undan den pedantiska punkten att det inte fanns något år noll, det var året före $ 1 $ AD (CE), och mental projektion av din kurva bakåt borde understryka att det monterade värdet kommer att vara (skulle ha varit!) Mycket litet faktiskt under året $ 0 $ (men fortfarande positivt, eftersom den exponentiella funktionen garanterar det).

Du kan inte ge originaldata för oss att kontrollera men jag ser ingen anledning att tvivla på vad du visar. Jag får $ \ exp (-369.9778) $ för att vara $ 2,09 \ gånger 10 ^ {- 161 } $, väldigt liten. Så Excel är korrekt med de två decimalerna som visas. Dessutom måste du visa ditt resultat i kraftnotering.

Om det här var mitt problem skulle jag passa när det gäller säg $ a \ exp [b (x – 2000)] $; då har $ a $ den enklare tolkningen av $ y $ när $ x = 2000 $ och kan jämföras med data lättare. (Numerisk precision skadas inte antingen och kan få hjälp.)

JW Tukey argumenterade för att vi borde passa ”centercepts”, inte avlyssningar, och detta exempel understryker poängen. Auktoritet: Roger Koenker på denna sida av hans .

Plottning på loggskala antyder att det exponentiella är bara en grov passning, men det är inte ”t frågan.

Relaterad diskussion om val av ursprung vid Är det vettigt att använda en datumvariabel i en regression?

EDIT Med tanke på data läste jag in dem i Stata.

Jag monterade $ \ text {total} = a \ exp [b (\ text {år} – 2000)] $ genom att regressera $ \ ln (\ text {total}) $ på $ \ text {år} – 2000 $.

Det ger en linjär ekvation på $ 5,40827 + 0,187693 (\ text {år} – 2000) $.

”centercept” för $ 2000 $ förvandlas alltså tillbaka till $ 223 $ eller så. Datavärdet var $ 123 $. En viktig detalj här är att $ 0.187693 $ matchar ditt Excel-resultat.

I monterade sedan samma ekvation direkt med icke-linjära minsta kvadrater och fick mittpunkten på $ 105,2718 $ och koefficienten på $ 0,2838264 $. Det är väldigt annorlunda och inte förvånande, eftersom de icke-linjära minsta kvadraterna inte rabatterar t han har höga värden som linjärisering av logaritmer gör. Din egen graf på loggskalan visar att de högsta värdena under senare år förutspås genom anpassning på logaritmisk skala. Omvänt lutar icke-linjära minsta kvadrater åt andra hållet.

Även om en exponential verkade passa mycket bra, skulle jag inte försöka extrapolera den mycket långt in i framtiden.Med dessa data, där en exponential är bäst en grov noll approximation, och med en mer blygsam extrapolering än du bad om, är osäkerheten allvarlig:

ange bildbeskrivning här

Kommentarer

  • Tack för referenserna i ’ kommer att läsa upp dem. Jag är inte så bra med de grundläggande förutsättningarna för ekvationernas ursprung och hur de fungerar, så jag använder verktygen felaktigt. Jag antar att ’ är anledningen till att de flesta tycker att matematik är svår

Svar

Till att börja med föreslår jag att du letar efter videor från Khan Academy om logg- och exponentialfunktioner.

Du borde vara ok genom att helt enkelt göra a = e^(-369.9778).

Kommentarer

  • Jag förstår inte ’ hur du kom till det värdet. Är inte ’ t log(a) = -369.9778 samma som 10^(-369.9778) = a?
  • Vänta ledsen du ’ rättar det ’ s e^(-369.9778). Även om det inte förklarar trendlinjernas beteende och regressionsekvationen. Kanske finns det ’ något jag ’ saknas
  • När du först skrev frågan tyckte jag att det var enkelt matematikproblem. Nu förstår jag din poäng.
  • Ledsen för den vilseledande frågan. När jag först gjorde frågan trodde jag också att det var min felaktiga algebra som orsakade problemet. Jag ’ Jag är inte så bra med matematikens grundläggande, jag har många hål att fylla i.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *