Ecuația unei funcții exponențiale este $ y = ae ^ {bx} $

Datele sunt reprezentate grafic după cum se arată mai jos: Grafic exponențial netransformat

Transformând acest lucru pentru regresie liniară: $ ln (y) = ln (a) + bx $

Această transformare este prezentată în graficul de mai jos: Transformare

Atunci ecuația de regresie liniară este: $ ln (y) = -369.9778 + 0.187693x $

Cum o transform înapoi sub forma $ y = ae ^ { bx} $ ??

Problema mea este în $ ln (a) = -369.9778 $. Cum să obțineți valoarea $ a $.

Chiar și Excel nu poate obține ecuația corect, dar există o linie de tendință? Nu înțeleg cum este derivat. Linia de tendință nu reprezintă deloc scenariul real bazat pe date: Comportament greșit

Dar este oarecum precis când folosesc punctele de date mai recente: Este mai precis când primesc cele mai recente date

Datele sunt cele de mai jos:

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 

Comentarii

  • Nu ‘ nu folosesc Excel în mod obișnuit și nu ‘ nu știu care este linia adăugată în primul dvs. complot. ‘ nu este cu siguranță un exponențial, deoarece nu este monoton. Vă sfătuiesc elevii și colegii să nu dea niciodată o curbă dacă pot ‘ nu explic cum a fost produs. ‘ este probabil un polinom sau o spline.
  • Tocmai am apăsat exponențial în Excel. Tu ‘ re right Am făcut clic aleatoriu pe ceea ce am am simțit că este. Încerc să aflu cum să potriviți în mod corespunzător orice tip de linie. Sunt familiarizat doar cu regresia liniară. ‘ am luat datele și le-am enumerat în întrebarea dvs. Că ‘ este o modalitate mai bună de a da exemple, decupând unul sau două alte programe, fără a utiliza Excel, lucru pe care mulți oameni nu îl fac ‘ sau nu ‘ nu aveți și le oferiți oamenilor ceva ce pot copia și lipi în software-ul lor preferat.

Răspundeți

Aceste două regresii nu vor da valori ale parametrilor care pot fi transformate una în alta exact:

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

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

deoarece minimizează diferite sume de pătrate, și anume, următoarele, respectiv:

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

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

și acestea nu sunt probleme de minimizare echivalente.

Prima regresie poate fi rezolvată pentru $ A $ și $ B $ folosind regresia liniară .

Pentru a rezolva a doua regresie, începeți prin rezolvarea primei. Apoi utilizați $ a = exp (A) $ și $ b = B $ ca valori inițiale pentru a rezolva a doua problemă de regresie utilizând un rezolvator de regresie neliniar (adică în Excel care ar fi Solver). De asemenea, dacă modelul de regresie neliniar este suficient de departe de modelul de regresie liniar, este posibil ca aceste valori de pornire să nu fie adecvate, caz în care va trebui să încercați alte valori de pornire.

Adăugat

Datele au fost adăugate la întrebare, astfel încât să putem efectua acțiunea sugerată discutată în paragraful de mai sus. Mai jos arătăm codul R pentru a face acest lucru. Dacă instalați R pe aparatul dvs., copiați și lipiți codul respectiv în consola R.

Mai întâi citim datele în DF și apoi rulăm un model liniar, adică regresia, a log(Total) vs. Year. Rețineți că log în R este log log e. Vedem că coeficienții de regresie care sunt produși sunt A = -369.977814 și B = 0.187693 pentru interceptare și pantă. Apoi extragem panta în variabila b pentru a o folosi ca valoare de pornire în regresia neliniară. Nu avem nevoie de interceptare ca valoare inițială, deoarece algoritmul de regresie neliniară, pliniar, necesită doar valori de pornire pentru parametrii neliniari. Apoi rulăm regresia neliniară a Total vs. a * exp(b * Year). Coeficienții pe care îi produce sunt b = 2.838264e-01 și a = 3.117445e-245. Apoi trasăm rezultatul și vedem că pare rezonabil de aproape de date.

În general, atunci când se efectuează optimizarea neliniară, considerațiile numerice implică faptul că dorim ca parametrii să fie aproximativ de aceeași magnitudine, ceea ce nu este cazul. Acest lucru sugerează parametrizarea modelului ca:

$ y ~ vs. ~ exp (a ~ + ~ b ~ x_i) $ [model neliniar re-parametrizat]

și la sfârșitul codului de mai jos facem acest lucru. Vedem că acum parametrii sunt a = -562.9959733 și b = 0.2838263 unde acum este așa cum este definit în definiția modelului neliniar re-paramaterizat. Acești parametri sunt valori mult mai comparabile, astfel încât modelul nostru neliniar parametrizat pare preferabil.

Graficul ar arăta similar cu cel prezentat pentru primul model de regresie neliniar.

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) 

Acum executați acest lucru:

# 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 

captură de ecran

Comentarii

  • Corect ‘. În practică, liniarizarea în primul rând nu este doar mai ușor de implementat, deoarece ‘ este doar o chestiune de regresie după aceea; pentru date ca acestea pare rezonabil având în vedere structura de eroare implicată de graficul log $ y $ față de an, mai ales că dispersia apare aproximativ chiar la scară logaritmică. ‘ nu avem datele brute de verificat, dar în exemple ca această liniarizare pare puțin probabil să fie problematică sau inferioară.
  • Regresia liniară nu a reușit să dea răspunsul dorit. Acesta este punctul principal al întrebării.
  • Nu ‘ nu l-am citit deloc întrebarea în acest fel. OP nu ‘ a înțeles tot ce se făcea (a) în general (b) de Excel. (Este desconcertant faptul că PO a revizuit firul, dar nu răspunde la niciunul dintre răspunsurile mai lungi de până acum.)
  • Discuția din întrebare chiar la sfârșit și graficele însoțitoare arată că ceea ce a fost obținut din regresia liniară nu a fost ceea ce s-a dorit.
  • Există ‘ un lot care este confuz și chiar contradictoriu în întrebare. Dacă datele ar fi exact exponențiale, nu ar ‘ contează modul în care a fost montat modelul. ‘ este posibil o alegere între o potrivire intermediară care depășește valori mari; o potrivire medie care le acordă mai multă atenție; și gândind un model destul de diferit. PO este autoritatea cu privire la ceea ce îi deranjează, dar (așa cum sa spus) încă nu a clarificat niciun detaliu important ‘. Indiferent de acest lucru, răspunsurile ridică diverse puncte care ar putea fi de folos sau de interes pentru alții din acest teritoriu.

Răspuns

Folosiți anul calendaristic ca $ x $, deci consecința inevitabilă este că $ a $ în $ y = a \ exp (bx) $ este sau a fost valoarea de $ y $ în anul $ x = 0 $. Lăsând deoparte punctul pedantic că nu a existat un an zero, adică anul anterior $ 1 $ AD (CE) și proiecția mentală a curbei dvs. înapoi ar trebui să sublinieze că valoarea ajustată va fi (ar fi fost!) Foarte mică într-adevăr în an $ 0 $ (dar totuși pozitiv, deoarece funcția exponențială garantează acest lucru).

Nu dați datele originale pentru ca noi să le verificăm, dar nu văd niciun motiv să mă îndoiesc de ceea ce arătați. Obțin $ \ exp (-369.9778) $ să fie de 2,09 $ \ ori 10 ^ {- 161 } $, într-adevăr foarte mic. Deci, Excel este corect la cele două zecimale pe care le arată. Mai mult, va trebui să arătați rezultatul în notație de putere.

Dacă aceasta ar fi problema mea, m-aș potrivi în termeni de Spuneți $ a \ exp [b (x – 2000)] $; atunci $ a $ va avea interpretarea mai ușoară a lui $ y $ când $ x = 2000 $ și poate fi comparat cu datele mai ușor. (Precizia numerică nu este afectată) fie poate fi ajutat.)

JW Tukey a susținut că ar trebui să ne potrivim cu „punctele centrale”, nu cu interceptările, iar acest exemplu subliniază punctul. Autoritate: Roger Koenker la această pagină a sa .

Trasarea pe scara jurnalului sugerează că exponențiala este doar o potrivire aproximativă, dar asta nu este „nu este întrebarea.

Discuție asemănătoare despre alegerea originii la Are sens să folosiți o variabilă de dată într-o regresie?

EDITARE Dat fiind datele, le-am citit în Stata.

Am montat $ \ text {total} = a \ exp [b (\ text {year} – 2000)] $ prin regresie $ \ ln (\ text {total}) $ pe $ \ text {year} – 2000 $.

Acest lucru dă o ecuație liniară de $ 5.40827 + 0.187693 (\ text {year} – 2000) $.

„Centercept” pentru 2000 $ se transformă astfel înapoi la 223 $ aproximativ. Valoarea datelor a fost de 123 $. Un detaliu important aici este că 0.187693 $ se potrivește cu rezultatul dvs. Excel.

I apoi a montat aceeași ecuație direct folosind pătrate minime neliniare și a primit conceptul central de 105,2718 $ și coeficientul de 0,2838264 $. Acest lucru este foarte diferit și nu este surprinzător, deoarece cel mai mic pătrat neliniar nu scade valorile ridicate la fel ca liniarizarea prin logaritmi. Graficul propriu pe scara jurnalului arată că cele mai mari valori din anii următori sunt sub-prezise prin ajustarea pe scara logaritmică. În schimb, cele mai mici pătrate neliniare se înclină în sens invers.

Chiar dacă o exponențială pare să se potrivească foarte bine, nu aș încerca să o extrapolez foarte departe în viitor.Cu aceste date, în care o exponențială este cea mai bună aproximare zero și cu o extrapolare mai modestă decât ați cerut, incertitudinea este gravă:

introduceți descrierea imaginii aici

Comentarii

  • Vă mulțumim pentru acele referințe i ‘ le voi citi. Nu sunt atât de bun cu fundamentele referitoare la originile ecuațiilor și modul lor de funcționare, așa că aplic instrumentele în mod incorect. Ei bine, cred că ‘ este motivul pentru care majoritatea oamenilor consideră că matematica este dificilă

Răspunde

Pentru început, v-aș sugera să căutați videoclipuri Khan Academy despre funcțiile jurnal și exponențiale.

Ar trebui să fii ok făcând pur și simplu a = e^(-369.9778).

Comentarii

  • ‘ nu înțeleg prea bine cum ați ajuns la acea valoare. Nu este ‘ t log(a) = -369.9778 la fel ca 10^(-369.9778) = a?
  • Așteptați scuze ‘ ai dreptate ‘ s e^(-369.9778). Deși nu explică comportamentul liniilor de tendință și a ecuației de regresie. Poate că lipsește ‘ ceva care îmi lipsește ‘
  • Când ați scris prima dată întrebarea, am crezut că este un problema matematicii. Acum îmi dau seama.
  • Ne pare rău pentru întrebarea înșelătoare. Când am pus prima dată întrebarea, m-am gândit și că algebra mea defectă a provocat problema. ‘ nu sunt atât de bun cu fundamentele matematicii, am o mulțime de găuri de completat.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *