Skip to content
Prev 325050 / 398503 Next

Loop through variables and estimate effects on several outcomes

Hi,
I assume this is what you wanted:
#########Your code
library(gamair)
data(chicago)
?library(mgcv)
library(splines)
chicago1<- chicago
chicago1$date<- seq(from=as.Date("1987-01-01"),to=as.Date("2000-12-31"),length=5114)
chicago1$trend<-seq(dim(chicago1)[1])? 
names(chicago1) [2] <-"pm10" 
names(chicago1) [3] <-"pm25" 
names(chicago1) [4] <-"ozone" 
names(chicago1) [5] <-"so2" 
names(chicago1) [7]?? <-"temp" 
chicago1$cv<-rpois(5114, lambda = 35) 
chicago1$resp<-rpois(5114, lambda = 13) 
chicago1$trend<-seq(dim(chicago1)[1]) 
chicago1$year<-as.numeric(format(chicago1$date,"%Y")) 
m1<-glm(death ~ pm10 + pm25+ ns(trend,35) + ns(temp, 6), poisson , na.action = na.omit , data =chicago1) 
m4<-gam(death ~ pm10 + pm25+ s(trend,k=35)? + s(temp, k=6), quasipoisson , na.action = na.omit , data =chicago1)

####Extracting estimates

?coef(summary(m1))[-1,1][!grepl("ns",names(coef(summary(m1))[-1,1]))]
#??????? pm10???????? pm25 
# 0.001772681 -0.001481798 

summary(m4)$p.coeff[-1]
?#?????? pm10???????? pm25 
?#0.001346275 -0.001182925 

varlist<-names(chicago1)[c(1,10:11)]
?varlist
#[1] "death" "cv"??? "resp" 

####glm
fun2glm<- function(varName){
res<- sapply(varName,function(x){
model1<- glm(get(x)~ pm10 + pm25+ ns(trend,35)? + ns(temp, 6) , poisson , na.action = na.omit , data =chicago1)
sM<- coef(summary(model1))[-1,1]
indx<- grepl("ns",names(sM))
sM1<- sM[!indx]
})
res
}

fun2glm(varlist)
#??????????? death??????????? cv????????? resp
#pm10? 0.001772681? 0.0003505286 -0.0006736290
#pm25 -0.001481798 -0.0004193602? 0.0005567137



####gam
fun2gam<- function(varName){
?res<- sapply(varName,function(x){
?model1<- gam(get(x)~pm10+pm25+s(trend,k=35)+s(temp,k=6),quasipoisson,na.action=na.omit,data=chicago1)
?sM<- summary(model1)$p.coeff[-1]
? })
?res
?}
fun2gam(varlist)
#??????????? death??????????? cv????????? resp
#pm10? 0.001346275? 0.0003902584 -0.0008447569
#pm25 -0.001182925 -0.0007072599? 0.0002807046


A.K.
Message-ID: <1370828074.70681.YahooMailNeo@web142603.mail.bf1.yahoo.com>
In-Reply-To: <CAFqDh9JBrqw0Jpe3Am3+tX-58hTYSh7VAamRP2+rhAMkyjXRAQ@mail.gmail.com>