Используя обычный метод наименьших квадратов (МНК) с функцией lm()
оценить уравнение (2) в вопросе привело бы к оценке коэффициентов , и .
С другой стороны, использование нелинейных наименьших квадратов с помощью функции nls()
для оценки уравнения будет оценивать значения параметров «a», «b» и «c», представляющих представляющие интерес параметры.
Функция nls()
(нелинейные наименьшие квадраты) в R имеет два важных параметра: сначала параметр formula
, а затем параметр start
. Запуск ?nls
в R предоставит некоторые детали; однако, суть состоит в том, что параметр formula
принимает выражение нелинейной модели, которую нужно оценить (например, y ~ a/(b + c*x)
, где «y» и «x» являются переменными, а «a», «b» и «c» интересующие параметры) и параметр start
принимают начальные значения интересующих параметров, которые R будет использовать в процессе итерации (поскольку нелинейные наименьшие квадраты в основном повторяют вычисления до тех пор, пока не будут получены наилучшие значения для параметров).
Ниже шаги:
(я) Получить исходные значения «A» параметров, «B» и «с»
Здесь я использовал функцию lm()
для оценки коэффициента уравнение (2). Я начал с создания отстающих переменных для использования в этой функции.
NB: 'у' обозначает ''
y_1 = c(NA, head(y, head(y, -1) # variable 'y' lagged by one time period
y_2 = c(c(NA, NA), head(y, head(y, -2) # variable 'y' lagged by two time periods
x_1 = c(NA, head(x, head(x, -1) # variable 'x' lagged by one time period
Таким образом, для оценки коэффициентов уравнения, был использован следующий код:
reg = lm(y ~ y_1 + y_2 + x_1, na.action = na.exclude) # it is important to tell R to exclude the missing values (NA) that we included as we constructed the lagged variables
Теперь, когда мы имеем оценки для , 10 и , мы можем продолжить и вычислить значения для 'a', 'b' и 'c' следующим образом:
A
, B
и C
затем используются в качестве исходных значений в функции nls()
(II) Использование nls()
функции
nlreg = nls(y ~ (1/b)*y_1 - (a/b)*y_2 - (c/b)*x_1,
start = list(a = A, b = B, c = C))
Результаты можно увидеть с кодом:
summary(nlreg)
Благодаря Ben Bolker для обеспечения понимания:
Нам нужно немного больше информации/контекста, и воспроизводимый пример не повредит. В частности: наблюдаются ли как pi, так и x, или просто x? Как выглядит типичный набор данных? И почему вы «обязаны» использовать нелинейные наименьшие квадраты - это домашнее задание? (Оффлайн, для меня это выглядит как модель состояния пространства - например, проверьте пакет 'dynlm') –
@BenBolker есть инструменты в пакете dynlm для нелинейных регрессий? Я использую его для линейных регрессий с использованием данных временных рядов. И да, pi и x наблюдаемы. А также да, это последняя часть моей домашней работы. Все переменные в модели были получены ранее. – SavedByJESUS
, если (как указано в отредактированной версии) 'pi' и' x' являются наблюдаемыми, тогда это должно быть легко оснащено 'lm()'. Один аргумент для 'nls'-fitting был бы одним из способов получения переменных' a', 'b' и' c' напрямую, вместо того, чтобы их обратно-вычислять (и использовать что-то вроде метода delta для аппроксимации их неопределенности). Я бы предположил, что вы (1) используете 'lm()' fit model; (2) получить начальные значения из 'nls' fit путем обратного вычисления из этих коэффициентов. Если вам нужна помощь в выполнении домашних заданий, вам обязательно нужно показать нам, что вы уже пробовали ... –