- 阅读权限
- 255
- 威望
- 1 级
- 论坛币
- 49640 个
- 通用积分
- 55.8137
- 学术水平
- 370 点
- 热心指数
- 273 点
- 信用等级
- 335 点
- 经验
- 57805 点
- 帖子
- 4005
- 精华
- 21
- 在线时间
- 582 小时
- 注册时间
- 2005-5-8
- 最后登录
- 2023-11-26
|
Additive Models
- library(faraway)
- data(ozone)
- olm <- lm(O3 ~ temp + ibh + ibt, ozone)
- summary(olm)
- library(gam)
- amgam <- gam(O3 ~ lo(temp) + lo(ibh) + lo(ibt), data=ozone)
- summary(amgam)
- 1-5935.1/21115
- amgamr <- gam(O3 ~ lo(temp) + lo(ibh) , data=ozone)
- anova(amgamr,amgam,test="F")
- plot(amgam,residuals=TRUE,se=TRUE,pch=".")
- library(mgcv)
- ammgcv <- gam(O3 ~ s(temp)+s(ibh)+s(ibt),data=ozone)
- plot(ammgcv)
- am1 <- gam(O3 ~ s(temp)+s(ibh),data=ozone)
- am2 <- gam(O3 ~ temp+s(ibh),data=ozone)
- anova(am2,am1,test="F")
- amint <- gam(O3 ~ s(temp,ibh)+s(ibt),data=ozone)
- summary(amint)
- anova(ammgcv,amint,test="F")
- plot(amint)
- vis.gam(amint,theta=-45,color="gray")
- rhs <- function(x,c) ifelse(x > c, x-c, 0)
- lhs <- function(x,c) ifelse(x < c, c-x, 0)
- olm2 <- lm(O3 ~ rhs(temp,60)+lhs(temp,60)+rhs(ibh,1000)+lhs(ibh,1000),ozone)
- summary(olm2)
- predict(ammgcv,data.frame(temp=60,ibh=2000,ibt=100),se=T)
- predict(ammgcv,data.frame(temp=120,ibh=2000,ibt=100),se=T)
- plot(predict(ammgcv),residuals(ammgcv),xlab="Predicted",ylab="Residuals")
- qqnorm(residuals(ammgcv),main="")
- amred <- gam(O3 ~ s(vh)+s(wind)+s(humidity)+s(temp)+s(dpg)+s(vis)+s(doy),data=ozone)
- summary(amred)
- alm <- lm(O3 ~ vis+doy+ibt+humidity+temp,data=ozone)
- gammgcv <- gam(O3 ~ s(temp)+s(ibh)+s(ibt),family=poisson,scale=-1,data=ozone)
- summary(gammgcv)
- plot(gammgcv,residuals=TRUE)
- x <- ozone[,c("temp","ibh","ibt")]
- library(acepack)
- acefit <- ace(x,ozone$O3)
- summary(lm(acefit$ty ~ acefit$tx))
- plot(ozone$O3,acefit$ty,xlab="O3",ylab=expression(theta(O3)))
- plot(x[,1],acefit$tx[,1],xlab="temp",ylab="f(temp)")
- plot(x[,2],acefit$tx[,2],xlab="ibh",ylab="f(ibh)")
- plot(x[,3],acefit$tx[,3],xlab="ibt",ylab="f(ibt)")
- x <- ozone[,-1]
- acefit <- ace(x,ozone$O3)
- summary(lm(acefit$ty ~ acefit$tx))
- y <- cbind(ozone$O3,ozone$O3^2,sqrt(ozone$O3))
- x <- ozone[,c("temp","ibh","ibt")]
- cancor(x,y)
- avasfit <- avas(x,ozone$O3)
- plot(ozone$O3,avasfit$ty,xlab="O3",ylab=expression(theta(O3)))
- plot(x[,1],avasfit$tx[,1],xlab="temp",ylab="f(temp)")
- plot(x[,2],avasfit$tx[,2],xlab="ibh",ylab="f(ibh)")
- plot(x[,3],avasfit$tx[,3],xlab="ibt",ylab="f(ibt)")
- i <- order(ozone$O3)
- plot(ozone$O3[i],avasfit$ty[i],type="l",xlab="O3",ylab=expression(theta(O3)))
- gs <- lm(avasfit$ty[i] ~ sqrt(ozone$O3[i]))
- lines(ozone$O3[i],gs$fit,lty=2)
- gl <- lm(avasfit$ty[i] ~ log(ozone$O3[i]))
- lines(ozone$O3[i],gl$fit,lty=5)
- lmod <- lm(avasfit$ty ~ avasfit$tx)
- summary(lmod)
- plot(predict(lmod),residuals(lmod),xlab="Fitted",ylab="Residuals")
- data(epilepsy)
- egamm <- gamm(seizures ~ treat*expind+s(age),family=poisson,random=list(id=~1),data=epilepsy,subset=(id!=49))
- summary(egamm$gam)
- library(mda)
- data(ozone)
- a <- mars(ozone[,-1],ozone[,1])
- summary(lm(ozone[,1] ~ a$x-1))
- a <- mars(ozone[,-1],ozone[,1],nk=7)
- summary(lm(ozone[,1] ~ a$x-1))
- a <- mars(ozone[,-1],ozone[,1],nk=10,degree=2)
- summary(lm(ozone[,1] ~ a$x-1))
- a$factor[a$selected.terms,]
- plot(ozone[,6],a$x[,4]*a$coef[4],xlab="ibh",ylab="Contribution of ibh")
- plot(ozone[,10],a$x[,7]*a$coef[7]+a$x[,6]*a$coef[6],xlab="Day",ylab="Contribution of day")
- humidity <- seq(10,100,len=20)
- temp <- seq(20,100,len=20)
- medians <- apply(ozone,2,median)
- pdf <- matrix(medians,nrow=400,ncol=10,byrow=T)
- pdf[,4] <- rep(humidity,20)
- pdf[,5] <- rep(temp,rep(20,20))
- pdf <- as.data.frame(pdf)
- names(pdf) <- names(medians)
- z <- predict.mars(a,pdf[,-1])
- zm <- matrix(z,ncol=20,nrow=20)
- contour(humidity,temp,zm,xlab="Humidity",ylab="Temperature")
- persp(humidity,temp,zm,xlab="Humidity",ylab="Temperature",zlab="Ozone",theta=-30)
- qqnorm(a$res,main="")
- plot(a$fit,a$res,xlab="Fitted",ylab="Residuals")
复制代码
|
|