Az exponenciális függvény egyenlete $ y = ae ^ {bx} $
Az adatok ábrázolása az alábbiak szerint történik:
Ennek átalakítása lineáris regresszióhoz: $ ln (y) = ln (a) + bx $
Ez az átalakítás az alábbi ábrán látható:
Ekkor a lineáris regressziós egyenlet: $ ln (y) = -369.9778 + 0.187693x $
Hogyan alakíthatom vissza $ y = ae ^ {formában bx} $ ??
A problémám a $ ln (a) = -369.9778 $ értékben található. Hogyan lehet megszerezni a $ a $ értéket.
Még az Excel sem tudja helyesen megszerezni az egyenletet, de van trendvonal? Nem értem, hogyan származik. A trendvonal egyáltalán nem képviseli a tényleges forgatókönyvet az adatok alapján:
De némileg pontos, ha a legfrissebb adatpontokat használom:
Az adatok a következők:
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
Megjegyzések
- Nem ‘ nem szoktam rutinszerűen használni az Excel programot, és nem tudom, hogy mi a hozzáadott sor ‘ az első ábrádon. Ez ‘ természetesen nem exponenciális, mivel nem monoton. Azt tanácsolom a hallgatóknak és kollégáknak, hogy soha ne adjanak görbét, ha tudnak ‘ nem magyarázza el, hogyan keletkezett. Valószínűleg ‘ polinom vagy spline.
- Éppen az expelenciát nyomtam meg az excelben. Ön ‘ igaza van, csak véletlenszerűen kattintottam, amit úgy érezte. Megpróbálom kideríteni, hogyan illeszthetem be bármilyen sort, amelyet csak a lineáris regresszió ismer.
- Köszönjük, hogy Excel-fájlt adott egy másik webhelyen. ‘ elvettem az adatokat, és felsoroltam őket a kérdésében. Ez ‘ jobb módja a példák megadásának: egy vagy két másik program kivágása, az Excel használata nem, amit sokan nem tesznek meg ‘ vagy ne ‘ nincs, és csak ad valamit az embereknek, amit lemásolhatnak és beilleszthetnek kedvenc szoftverükbe.
Válasz
Ez a két regresszió nem ad paraméterértékeket, amelyeket pontosan egymásba lehet átalakítani:
$ ln (y) ~ vs. ~ A + B ~ x $
$ y ~ vs. ~ a ~ exp (b ~ x) $
mert minimalizálják a különböző négyzetösszegeket, nevezetesen a következőket:
$ \ Sigma_i (ln (y_i) – (A + B ~ x_i)) ^ 2 $
$ \ Sigma_i (y_i – a ~ exp (b ~ x_i)) ^ 2 $
és ezek nem egyenértékű minimalizálási problémák.
Az első regresszió megoldható $ A $ és $ B $ esetén lineáris regresszióval.
A második regresszió megoldásához kezdje az első megoldásával. Ezután a $ a = exp (A) $ és $ b = B $ értékeket használja kiindulási értékként a második regressziós probléma megoldására egy nemlineáris regressziós megoldó segítségével (azaz az Excelben, amely Solver lenne). Továbbá, ha a nemlineáris regressziós modell kellően távol áll a lineáris regressziós modelltől, akkor lehetséges, hogy ezek a kiindulási értékek nem lesznek megfelelőek, ebben az esetben más kiindulási értékeket kell kipróbálnia.
Hozzáadva
Az adatokat hozzáadtuk a kérdéshez, így most végre tudjuk hajtani a fenti bekezdésben tárgyalt javasolt műveletet. Az alábbiakban az R kódot mutatjuk be ehhez. Ha R-t telepít a gépére, másolja és illessze be a kódot az R-konzolba.
Először beolvassuk az adatokat a DF
fájlba, majd futtatunk egy lineáris modellt, azaz a log(Total)
és a Year
regressziója. Ne feledje, hogy az R log
log log e. Látjuk, hogy az előállított regressziós együtthatók A = -369.977814 és B = 0.187693 a metszés és meredekség esetében. Ezután a meredekséget kivonjuk az b
változóba, hogy kiindulási értékként használjuk a nemlineáris regresszióban. Nincs szükségünk az elfogásra, mint kiindulási értékre, mivel a nemlineáris, plináris regressziós algoritmus csak a nemlineáris paraméterek kezdőértékeit igényli. Ezután a Total
vs. a * exp(b * Year)
. Az általa előállított együtthatók b = 2,838264e-01 és a = 3,117445e-245. Ezután ábrázoljuk az eredményt, és látjuk, hogy ésszerűen közel áll az adatokhoz. / p>
A nemlineáris optimalizálás során a numerikus megfontolások általában azt jelentik, hogy azt akarjuk, hogy a paraméterek nagyjából azonos nagyságrendűek legyenek, ami nem így van. Ez azt javasolja, hogy a modellt újra paraméterezzük:
$ y ~ vs. ~ exp (a ~ + ~ b ~ x_i) $ [újra paraméterezett nemlineáris modell]
és az alábbi kód végén ezt megtesszük. Látjuk, hogy most a paraméterek a = -562.9959733 és b = 0.2838263, ahol a most az újrateremterizált nemlineáris modell definíciójában definiált. Ezek a paraméterek sokkal összehasonlíthatóbb értékek, ezért az újraparaméterezett nemlineáris modellünk előnyösebbnek tűnik.
A grafikon hasonlóan nézne ki, mint az első nemlineáris regressziós modellnél.
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)
Most futtassa ezt:
# 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
Megjegyzések
- Ez ‘ helyes. A gyakorlatban az első linearizálást nem csak azért könnyebb megvalósítani, mert ‘ ezután csak regresszió kérdése; az ilyen adatok esetében ez ésszerűnek tűnik, tekintettel a log $ y $ és az év grafikonjának implikált hibaszerkezetére, nevezetesen, hogy a szórás nagyjából logaritmikus skálán is megjelenik. Nincs ‘ nincs ellenőrizendő nyers adatunk, de az ilyen jellegű példákban valószínűleg nem valószínű, hogy problémás vagy alacsonyabbrendű lenne.
- A lineáris regresszió nem adta meg a kívánt választ. Ez a kérdés lényege.
- Egyáltalán nem olvastam el a kérdést így a kérdésben. Id = “4b1c39f8c5”>
Az OP nem ‘ nem értette mindazt, amit (a) általában (b) az Excel végzett. (Zavarba ejtő, hogy az OP felülvizsgálta a szálat, de az eddigi hosszabb válaszok egyikére sem válaszol.)
Válasz
A naptári évet $ x $ néven használja, ezért elkerülhetetlen következménye, hogy a $ a $ a $ y = a \ exp (bx) $ értékben $ y $ értéke $ x = 0 volt vagy volt. $. Félretéve azt a pedáns pontot, miszerint nem volt nulla év, ez volt egy évvel azután, hogy az AD $ 1 $ (CE), és a görbe mentális vetületének vissza kell mutatnia, hogy az illesztett érték nagyon kicsi lesz (lett volna!) $ 0 $ (de még mindig pozitív, mivel az exponenciális függvény garantálja ezt).
Nem adja meg az eredeti adatokat, hogy ellenőrizhessük őket, de nem látok okot kételkedni abban, amit mutat. A $ \ exp (-369.9778) $ értéket 2,09 USD-nek adom \ 10-szer 10 ^ {- 161 } $, nagyon kicsi. Tehát az Excel helyes a két tizedesjegy pontossággal. Ezenkívül meg kell adnia az eredményt a teljesítmény jelölésével.
Ha ez lenne a problémám, akkor illeszkednék a mondjuk $ a \ exp [b (x – 2000)] $; akkor a $ a $ könnyebben értelmezi a $ y $ -ot, amikor $ x = 2000 $, és könnyebben összehasonlítható az adatokkal. (A numerikus pontosság nem sérül akár, és lehet, hogy segíteni fognak neki.)
JW Tukey úgy érvelt, hogy a “centercepteket” kell illesztenünk, nem pedig az elfogásokat, és ez a példa aláhúzza a lényeget. Hatóság: Roger Koenker oldalán .
A naplóskálán való ábrázolás arra utal, hogy az exponenciális csak durva illeszkedés, de ez nem “t a kérdés.
Kapcsolódó vita az eredet megválasztásáról itt: Van-e értelme dátumváltozót használni regresszióban?
SZERKESZTÉS Az adatok alapján beolvastam a Stata-ba.
A $ \ text {total} = a \ exp [b (\ text {year} – 2000)] $ regresszióval illesztettem be. $ \ ln (\ text {total}) $ a $ \ text {év} – 2000 $ áron.
Ez egy lineáris egyenletet eredményez: 5,40827 + 0,187693 (\ text {év} – 2000) $.
A “$ 2000 $” “centerceptje” így visszaáll körülbelül $ 223 $ -ra. Az adat értéke $ 123 $ volt. Fontos részlet itt, hogy $ 0.187693 $ megegyezik az Excel eredményével.
I majd nem lineáris legkisebb négyzetek segítségével illesztette ugyanazt az egyenletet, és $ 105,2718 $ centercepciót és $ 0,2838264 $ együtthatót kapott. Ez nagyon különbözik és nem meglepő, mivel a nemlineáris legkisebb négyzetek nem engedik meg a t magas értékeket mutat, mint a logaritmus által lineáris. A saját log-skála grafikonja azt mutatja, hogy a későbbi évek legmagasabb értékeit a logaritmikus skálán való megfelelés alapján nem jósolják előre. Ezzel szemben a nemlineáris legkisebb négyzetek a másik irányba hajlanak.
Még ha egy exponenciális is nagyon jól illeszkedik, akkor sem próbálnám meg extrapolálni a jövőbe.Ezekkel az adatokkal, ahol az exponenciális a legjobb durva zéró közelítés, és szerényebb extrapolációval, mint amennyit kért, a bizonytalanság súlyos:
megjegyzések
- köszönöm ezeket a hivatkozásokat i ‘ ll felolvassa őket. Nem vagyok olyan jó az egyenletek eredetét és működését illetően, ezért helytelenül alkalmazom az eszközöket. Nos, azt hiszem, ‘ miért találja a legtöbb ember a matematikát
Válasz
Először is azt javaslom, hogy keresse meg a Khan Academy videókat a napló és az exponenciális függvényekről.
Rendben kell lenned, ha egyszerűen megadod a a = e^(-369.9778)
t.
Megjegyzések
- Nem ‘ nem értem, hogyan jutottál el ehhez az értékhez. Nem ‘ t
log(a) = -369.9778
ugyanaz, mint10^(-369.9778) = a
? - Várjon bocsánatot ‘ igazad van ‘ s
e^(-369.9778)
. Bár nem magyarázza meg a trendvonalak és a regressziós egyenlet viselkedését. Talán ‘ van valami, ami hiányzik ‘ m - Amikor először írtad a kérdést, azt gondoltam, hogy ez egyszerű matematikai probléma. Most értem a véleményedet.
- Elnézést a félrevezető kérdésért. Amikor először feltettem a kérdést, azt is gondoltam, hogy hibás algebrám okozza a problémát. Én ‘ csak nem vagyok olyan jó a matematika alapjaival, rengeteg lyukat kell kitöltenem.