Як мінімізувати залишкову суму квадратів експоненціальної підгонки?


14

У мене є такі дані, і я хотів би до неї вкласти модель негативного експоненціального зростання:

Days <- c( 1,5,12,16,22,27,36,43)
Emissions <- c( 936.76, 1458.68, 1787.23, 1840.04, 1928.97, 1963.63, 1965.37, 1985.71)
plot(Days, Emissions)
fit <- nls(Emissions ~ a* (1-exp(-b*Days)), start = list(a = 2000, b = 0.55))
curve((y = 1882 * (1 - exp(-0.5108*x))), from = 0, to =45, add = T, col = "green", lwd = 4)

Код працює і намічається відповідна лінія. Однак візуально візуально не ідеально, а залишкова сума квадратів здається досить величезною (147073).

Як ми можемо покращити свою форму? Чи дозволяють дані взагалі краще відповідати?

Ми не змогли знайти рішення цього виклику в мережі. Будь-яка вдячність за будь-яку пряму допомогу чи посилання на інші веб-сайти / публікації.


1
У цьому випадку, якщо розглядати регресійну модель , де ϵ iN ( 0 , σВикидиi=f(Днівi,а,б)+ϵi , то ви отримаєте подібні оцінки. Складаючи графіки довірчих регіонів, можна спостерігати, як ці значення містяться в регіонах конфіденційності. Ви не можете розраховувати на ідеальне пристосування, якщо не будете інтерполювати точки або не використовувати більш гнучку нелінійну модель. ϵiN(0,σ)

Я змінив назву, оскільки "негативна експоненціальна модель" означає щось інше, ніж описано в питанні.
whuber

Дякуємо, що вияснили питання (@whuber) і дякую за вашу відповідь (@Procrastinator). Як можна обчислити та побудувати графіки довіри І яка б була більш гнучка нелінійна модель?
Strohmi

4
Вам потрібен додатковий параметр. Подивіться, що відбувається з fit <- nls(Emissions ~ a* (1- u*exp(-b*Days)), start = list(a = 2000, b = 0.1, u=.5)); beta <- coefficients(fit); curve((y = beta["a"] * (1 - beta["u"] * exp(-beta["b"]*x))), add = T).
whuber

1
@whuber - можливо, ви повинні це написати як відповідь?
jbowman

Відповіді:


16

Експоненціальний закон (негативний) має вигляд . Якщо ви допускаєте зміни одиниць у значеннях x і y , однак скажіть y = α y + β і x =y=exp(x)xyy=αy+β , то закон буде виражено якx=γx+δ

αy+β=y=exp(x)=exp(γxδ),

який алгебраїчно еквівалентний

y=1αexp(γxδ)β=a(1uexp(bx))

використовуючи три параметри , u = 1 / ( β exp ( δ ) ) , і b = γ . Ми можемо визнати в якості параметра масштабу для у , б в якості параметра масштабу для х , і U як похідні від місця розташування параметра для х .a=β/αu=1/(βexp(δ))b=γaybxux

Як правило, ці параметри можна ідентифікувати з першого погляду з сюжету :

  • Параметр a - значення горизонтальної асимптотики, трохи менше .2000

  • Параметр - відносна величина кривої, що піднімається від початку, до її горизонтальної асимптоти. Отже, підйом тут трохи менше 2000 - 937 ; відносно, це приблизно 0,55 асимптоти.u20009370.55

  • Оскільки , коли x дорівнює трикратному значенню 1 / b, крива повинна була піднятися приблизно до 1 - 0,05 або 95 % від її загальної суми. 95 % зростання з 937 до майже 2000 розміщує нас близько 1950 року ; сканування через сюжет означає, що це зайняло від 20 до 25 днів. Давайте назвемо це 24 для простоти, звідки б +3 / 24exp(3)0.05x1/b10.0595%95%93720001950202524 . (Цей 95 % метод виявлення експональної шкали очного яблука є стандартним у деяких полях, де багато використовують експоненціальні графіки.)b3/24=0.12595%

Подивимося, як це виглядає:

plot(Days, Emissions)
curve((y = 2000 * (1 - 0.56 * exp(-0.125*x))), add = T)

Eyeball fit

Непогано для початку! (Навіть незважаючи на введення 0.56замість 0.55, що все одно було грубим наближенням.) Ми можемо відполірувати це за допомогою nls:

fit <- nls(Emissions ~ a * (1- u * exp(-b*Days)), start=list(a=2000, b=1/8, u=0.55))
beta <- coefficients(fit)
plot(Days, Emissions)
curve((y = beta["a"] * (1 - beta["u"] * exp(-beta["b"]*x))), add = T, col="Green", lwd=2)

NLS fit

Вихід nlsмістить велику інформацію про невизначеність параметрів. Наприклад , простий summaryзабезпечує стандартні помилки оцінок:

> summary(fit)

Parameters:
   Estimate Std. Error t value Pr(>|t|)    
a 1.969e+03  1.317e+01  149.51 2.54e-10 ***
b 1.603e-01  1.022e-02   15.69 1.91e-05 ***
u 6.091e-01  1.613e-02   37.75 2.46e-07 ***

Ми можемо читати та працювати з усією коваріаційною матрицею оцінок, що корисно для оцінки одночасних довірчих інтервалів (принаймні для великих наборів даних):

> vcov(fit)
             a             b             u
a 173.38613624 -8.720531e-02 -2.602935e-02
b  -0.08720531  1.044004e-04  9.442374e-05
u  -0.02602935  9.442374e-05  2.603217e-04

nls підтримує графіки профілю для параметрів, надаючи більш детальну інформацію про їх невизначеність:

> plot(profile(fit))

a :

Profile plot

219451995


О, я майже забув: res <- residuals(fit); res %*% res говорить нам, що вводячи третій параметру зменшує суму квадратів до 2724 рік (у порівнянні з 147073як зазначено у запитанні).
whuber

Все добре і гарненько похлопати. Але, можливо, у ОП були якісь причини вибрати експоненціальну модель (а може, це просто тому, що вона добре відома). Я думаю, що спочатку слід розглянути залишкові моделі. Складіть їх проти потенційних коваріатів, щоб перевірити, чи є там структура, а не лише великий випадковий шум. Перш ніж перейти до більш складних моделей, спробуйте переконатися, чи могла б допомогти більш вигадна модель.
Майкл Р. Черник

3
Чому ти не подивишся на оригінальний сюжет, Майкл? Це дозволить зробити очевидним, чому потрібен хоча б один додатковий параметр. Зауважте також, що в коментарі до питання, яке ОП задало, "яка б була більш гнучка нелінійна модель?" Одним із наслідків початкового аналізу, запропонованого у цій відповіді, є те, що слід розглядати незвично, щоб підходити до експоненції з меншими трьома параметрами: у таких випадках має бути якесь властиве обмеження (наприклад, внутрішньо визначена одиниця вимірювання або внутрішнє місце длях).
whuber

2
Я не критикував вашу відповідь! Я не бачив жодних залишкових сюжетів. Все, що я припускав, - це те, що графіки залишків та потенційних коваріатів мають стати першим кроком у пошуку кращої моделі. Якби я думав, що маю відповідь поставити там, я би дав відповідь, а не піднімав свою думку як постійну. Я думав, ти дав чудову відповідь, і я був серед тих, хто дав тобі +1.
Майкл Р. Черник
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.