在运行下面的
我的主要目的是通过循环遍历解释变量及其滞后值列表来运行GAM模型。
model0
时,我收到了一个错误信息“Error in eval(expr, envir, enclos) : could not find function "Lag"。”在发布这个消息之前,我已经搜索了这个论坛和网络,但是没有找到相关的解决方案。我相信我的模型中的错误可能不是由于Lag
函数引起的,因为其他模型(1和2)可以在不遇到任何问题的情况下运行。我的主要目的是通过循环遍历解释变量及其滞后值列表来运行GAM模型。
library(quantmod)
library(gamair)
library(mgcv)
data(chicago)
names(chicago)
varlist0 <- c("pm10median", "pm25median", "o3median", "so2median")
model0<- lapply(varlist0, function(x) {
gam(substitute(death ~ s(time,bs="cr",k=200)+ s(tmpd,bs="cr") + Lag(i,0:4) , list(i = as.name(x))),family=quasipoisson,na.action=na.omit, data=chicago)
})
游戏延迟且没有错误消息:
model1<- gam(death ~ s(time,bs="cr",k=200)+ s(tmpd,bs="cr") + Lag(pm10median, 0:4),family=quasipoisson,na.action=na.omit, data=chicago)
带有延迟但没有错误信息的Lm:
hsb2 <- read.csv("http://www.ats.ucla.edu/stat/data/hsb2.csv")
varlist <- names(hsb2)[8:11]
models <- lapply(varlist, function(x) {
lm(substitute(read ~ Lag(i,0:4) , list(i = as.name(x))), data = hsb2)
})
我无法解释这个错误的原因。在第一个模型中,我做错了什么?