Ошибка в гамма-функции сглаживающей сплайн-регрессии

Я пытаюсь запустить сглаживающую сплайн-регрессию, используя гамму для y как функцию переменных a и b в наборе данных. Но когда я запускаю следующий код, я получаю следующую ошибку.

> autogam_axb <- gam(data$y~s(data$a,data$b))
Error in eval(expr, envir, enclos) : object 'a' not found

Есть идеи, что я делаю не так?


r gam
person shannimcg    schedule 23.02.2015    source источник
comment
Вы должны использовать gam(y~s(a,b), data = data)   -  person DatamineR    schedule 23.02.2015
comment
@RStudent - это сработало. Спасибо!   -  person shannimcg    schedule 23.02.2015


Ответы (1)


Вам необходимо отделить спецификацию модели от местоположения данных. Первый указывается в формуле, а аргумент data используется, чтобы сообщить gam о втором:

autogam_axb <- gam(y ~ s(a, b), data = data)

Это служит двум целям:

  1. Спецификация модели ясна и не загромождена data$, что позволяет легче увидеть, что она устанавливается, и
  2. Вы четко указываете, где должны быть найдены переменные, необходимые для соответствия модели, но вы делаете это в одном месте в вызове функции.
person Gavin Simpson    schedule 23.02.2015