environ
求助:帮忙编写一段循环语句,优化下面的程序。
程序的主要目的是利用gam拟合模型,然后根据gof函数计算AIC,选取AIC最小是的模型。
gof<-function(x,scale) ##gives exact AIC (see SPLUS)
{
{
family<-x$family
n<-length(residuals(x))
if(missing(scale))
{
deviance.splus<-function(x)
{
if(is.null(w <- x$weights)) sum((x$residuals)^2.)
else sum(w * x$residuals^2.)
}
scale<-function(x)
{
famname<-family$family
if (famname=="binomial" | famname=="poisson") 1
else deviance.splus(x)/(n-x$nsdf)
}
}
else if (scale==0)
scale<-deviance.splus(x)/(n-x$nsdf)
AIC<-x$deviance+2*(n-(n-x$nsdf))*scale(x)
BIC<-x$deviance+(log(n))*(n-(n-x$nsdf))*scale(x)
print(x$call)
cat("Residual Deviance=",format(round(x$deviance,4)), "\n")
cat("AIC=", AIC, "BIC=", BIC, "\n")
}
}
model0<-gam(cvd~as.factor(dow)+s(time),data=beijing,family=quasipoisson
(link=log))
model00<-gam(cvd~as.factor(dow)+s(time)+s(lag0.t)+s(lag0.h),data=beijing,
family=quasipoisson(link=log))
model01<-gam(cvd~as.factor(dow)+s(time)+s(lag0.t)+s(lag1.h),data=beijing,
family=quasipoisson(link=log))
model02<-gam(cvd~as.factor(dow)+s(time)+s(lag0.t)+s(lag2.h),data=beijing,
family=quasipoisson(link=log))
model03<-gam(cvd~as.factor(dow)+s(time)+s(lag0.t)+s(lag3.h),data=beijing,
family=quasipoisson(link=log))
model04<-gam(cvd~as.factor(dow)+s(time)+s(lag0.t)+s(lag4.h),data=beijing,
family=quasipoisson(link=log))
model05<-gam(cvd~as.factor(dow)+s(time)+s(lag0.t)+s(lag5.h),data=beijing,
family=quasipoisson(link=log))
model06<-gam(cvd~as.factor(dow)+s(time)+s(lag0.t)+s(lag6.h),data=beijing,
family=quasipoisson(link=log))
gof(model01)
gof(model02)
gof(model03)
gof(model04)
gof(model05)
gof(model06)
model10<-gam(cvd~as.factor(dow)+s(time)+s(lag1.t)+s(lag0.h),data=beijing,
family=quasipoisson(link=log))
model11<-gam(cvd~as.factor(dow)+s(time)+s(lag1.t)+s(lag1.h),data=beijing,
family=quasipoisson(link=log))
model12<-gam(cvd~as.factor(dow)+s(time)+s(lag1.t)+s(lag2.h),data=beijing,
family=quasipoisson(link=log))
model13<-gam(cvd~as.factor(dow)+s(time)+s(lag1.t)+s(lag3.h),data=beijing,
family=quasipoisson(link=log))
model14<-gam(cvd~as.factor(dow)+s(time)+s(lag1.t)+s(lag4.h),data=beijing,
family=quasipoisson(link=log))
model15<-gam(cvd~as.factor(dow)+s(time)+s(lag1.t)+s(lag5.h),data=beijing,
family=quasipoisson(link=log))
model16<-gam(cvd~as.factor(dow)+s(time)+s(lag1.t)+s(lag6.h),data=beijing,
family=quasipoisson(link=log))
gof(model11)
gof(model12)
gof(model13)
gof(model14)
gof(model15)
gof(model16)
model20<-gam(cvd~as.factor(dow)+s(time)+s(lag2.t)+s(lag0.h),data=beijing,
family=quasipoisson(link=log))
model21<-gam(cvd~as.factor(dow)+s(time)+s(lag2.t)+s(lag1.h),data=beijing,
family=quasipoisson(link=log))
model22<-gam(cvd~as.factor(dow)+s(time)+s(lag2.t)+s(lag2.h),data=beijing,
family=quasipoisson(link=log))
model23<-gam(cvd~as.factor(dow)+s(time)+s(lag2.t)+s(lag3.h),data=beijing,
family=quasipoisson(link=log))
model24<-gam(cvd~as.factor(dow)+s(time)+s(lag2.t)+s(lag4.h),data=beijing,
family=quasipoisson(link=log))
model25<-gam(cvd~as.factor(dow)+s(time)+s(lag2.t)+s(lag5.h),data=beijing,
family=quasipoisson(link=log))
model26<-gam(cvd~as.factor(dow)+s(time)+s(lag2.t)+s(lag6.h),data=beijing,
family=quasipoisson(link=log))
gof(model21)
gof(model22)
gof(model23)
gof(model24)
gof(model25)
gof(model26)
model30<-gam(cvd~as.factor(dow)+s(time)+s(lag3.t)+s(lag0.h),data=beijing,
family=quasipoisson(link=log))
model31<-gam(cvd~as.factor(dow)+s(time)+s(lag3.t)+s(lag1.h),data=beijing,
family=quasipoisson(link=log))
model32<-gam(cvd~as.factor(dow)+s(time)+s(lag3.t)+s(lag2.h),data=beijing,
family=quasipoisson(link=log))
model33<-gam(cvd~as.factor(dow)+s(time)+s(lag3.t)+s(lag3.h),data=beijing,
family=quasipoisson(link=log))
model34<-gam(cvd~as.factor(dow)+s(time)+s(lag3.t)+s(lag4.h),data=beijing,
family=quasipoisson(link=log))
model35<-gam(cvd~as.factor(dow)+s(time)+s(lag3.t)+s(lag5.h),data=beijing,
family=quasipoisson(link=log))
model36<-gam(cvd~as.factor(dow)+s(time)+s(lag3.t)+s(lag6.h),data=beijing,
family=quasipoisson(link=log))
gof(model31)
gof(model32)
gof(model33)
gof(model34)
gof(model35)
gof(model36)
model40<-gam(cvd~as.factor(dow)+s(time)+s(lag4.t)+s(lag0.h),data=beijing,
family=quasipoisson(link=log))
model41<-gam(cvd~as.factor(dow)+s(time)+s(lag4.t)+s(lag1.h),data=beijing,
family=quasipoisson(link=log))
model42<-gam(cvd~as.factor(dow)+s(time)+s(lag4.t)+s(lag2.h),data=beijing,
family=quasipoisson(link=log))
model43<-gam(cvd~as.factor(dow)+s(time)+s(lag4.t)+s(lag3.h),data=beijing,
family=quasipoisson(link=log))
model44<-gam(cvd~as.factor(dow)+s(time)+s(lag4.t)+s(lag4.h),data=beijing,
family=quasipoisson(link=log))
model45<-gam(cvd~as.factor(dow)+s(time)+s(lag4.t)+s(lag5.h),data=beijing,
family=quasipoisson(link=log))
model46<-gam(cvd~as.factor(dow)+s(time)+s(lag4.t)+s(lag6.h),data=beijing,
family=quasipoisson(link=log))
gof(model41)
gof(model42)
gof(model43)
gof(model44)
gof(model45)
gof(model46)
model50<-gam(cvd~as.factor(dow)+s(time)+s(lag5.t)+s(lag0.h),data=beijing,
family=quasipoisson(link=log))
model51<-gam(cvd~as.factor(dow)+s(time)+s(lag5.t)+s(lag1.h),data=beijing,
family=quasipoisson(link=log))
model52<-gam(cvd~as.factor(dow)+s(time)+s(lag5.t)+s(lag2.h),data=beijing,
family=quasipoisson(link=log))
model53<-gam(cvd~as.factor(dow)+s(time)+s(lag5.t)+s(lag3.h),data=beijing,
family=quasipoisson(link=log))
model54<-gam(cvd~as.factor(dow)+s(time)+s(lag5.t)+s(lag4.h),data=beijing,
family=quasipoisson(link=log))
model55<-gam(cvd~as.factor(dow)+s(time)+s(lag5.t)+s(lag5.h),data=beijing,
family=quasipoisson(link=log))
model56<-gam(cvd~as.factor(dow)+s(time)+s(lag5.t)+s(lag6.h),data=beijing,
family=quasipoisson(link=log))
gof(model51)
gof(model52)
gof(model53)
gof(model54)
gof(model55)
gof(model56)
model60<-gam(cvd~as.factor(dow)+s(time)+s(lag6.t)+s(lag0.h),data=beijing,
family=quasipoisson(link=log))
model61<-gam(cvd~as.factor(dow)+s(time)+s(lag6.t)+s(lag1.h),data=beijing,
family=quasipoisson(link=log))
model62<-gam(cvd~as.factor(dow)+s(time)+s(lag6.t)+s(lag2.h),data=beijing,
family=quasipoisson(link=log))
model63<-gam(cvd~as.factor(dow)+s(time)+s(lag6.t)+s(lag3.h),data=beijing,
family=quasipoisson(link=log))
model64<-gam(cvd~as.factor(dow)+s(time)+s(lag6.t)+s(lag4.h),data=beijing,
family=quasipoisson(link=log))
model65<-gam(cvd~as.factor(dow)+s(time)+s(lag6.t)+s(lag5.h),data=beijing,
family=quasipoisson(link=log))
model66<-gam(cvd~as.factor(dow)+s(time)+s(lag6.t)+s(lag6.h),data=beijing,
family=quasipoisson(link=log))
gof(model61)
gof(model62)
gof(model63)
gof(model64)
gof(model65)
gof(model66)