I "m a R новачок, але я" шукаю спосіб визначення трьох параметрів A, B і C, пов'язаних з наступною функцією в R:
y = A * (x1^B) * (x2^C)
Може хто-небудь дати мені деякі натяки про метод (и) R, які допоможуть мені досягти такої установки?
Відповіді:
6 за відповідь № 1Одним з варіантів є nls
функція, як запропонував @SvenHohenstein. Іншим варіантом є перетворення нелінійної регресії в лінійну регресію. У разі цього рівняння просто візьмемо журнал обох сторін рівняння і зробимо невелику алгебру і будемо мати лінійне рівняння. Регресію можна запустити за допомогою:
fit <- lm( log(y) ~ log(x1) + log(x2), data=mydata)
Перехоплення буде log(A)
так користуйся exp
щоб отримати значення, параметри B і C будуть 2 схилами.
Велика різниця тут в тому nls
буде відповідати моделі з нормальними помилками, доданими до початкового рівняння і lm
fit з журналами припускає, що помилки воригінальна модель з логарифмічного розподілу і множиться замість доданого до моделі. Багато наборів даних дадуть подібні результати для двох методів.
4 для відповіді № 2
Ви можете помістити нелінійну модель найменших квадратів з функцією nls
.
nls(y ~ A * (x1^B) * (x2^C))
-1 для відповіді № 3
Чому ви не використовуєте регресію SVM (Suppor Vector Machines)? є пакет у CRAN названий e1071
які можуть обробляти регресію за допомогою SVM.
Ви можете перевірити це керівництво: http://www.svm-tutorial.com/2014/10/support-vector-regression-r/
Я сподіваюся, що це може допомогти вам