Как найти коэффициенты в степенной функции? - PullRequest
0 голосов
/ 10 июля 2019

Я работаю с прогнозом LTV и застрял с проблемой.

Мне нужно решить уравнение мощности: a*x**b = y, где x и y - переменные, из которых я знаю первые 30, но a и b - это константы, которых я не знаю .

Задача состоит в том, чтобы найти a и b, такие, что предсказанный y будет иметь наименьшее квадратное отклонение от известного.

На данный момент я нахожу только решение в Excel.

A=EXP(INDEX(LINEST(LN(Known Ys), LN(Known Xs)), 2))
B=INDEX(LINEST(LN(Known Ys), LN(Known Xs)), 1)

1 Ответ

0 голосов
/ 10 июля 2019

В R это должно быть что-то вроде

## fit a log-log model and extract coefficients
cc <- coef(lm(log(y) ~ log(x)))
## the slope of the log-log model is the exponent
b <- cc[["y"]]
## exp(intercept) is the multiplicative coefficient
a <- exp(cc[["(Intercept)"]])

Обратите внимание, что эти решения минимизируют квадратичную ошибку в логарифмической шкале : если вы хотите минимизировать квадратичную ошибку в линейной шкале, вам нужно соответствовать

glm(y~log(x), family=gaussian(link="log"))

, а затем извлечь его коэффициенты и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...