# load ALS data
ig<- alsData$graph
data<- alsData$exprs
data<- transformData(data)$data
group<- alsData$group
#...with train-test (0.5-0.5) samples
set.seed(123)
train<- sample(1:nrow(data), 0.5*nrow(data))
# SEM fitting
sem0<- SEMrun(ig, data[train,], SE="none", limit=1000)
# predictors, source+mediator; outcomes, mediator+sink
res0<- predict(sem0, newdata=data[-train,])
print(res0$PE)
# SEM fitting
sem1<- SEMrun(ig, data[train,], group[train], SE="none", limit=1000)
# predictors, source+mediator+group; outcomes, source+mediator+sink
res1<- predict(sem1, newdata=cbind(group,data)[-train,])
print(res1$PE)
# \donttest{
#...with a binary outcome (1=case, 0=control)
ig1<- mapGraph(ig, type="outcome"); gplot(ig1)
outcome<- ifelse(group == 0, -1, 1); table(outcome)
data1<- cbind(outcome, data); data1[1:5,1:5]
sem10 <- SEMrun(ig1, data1[train,], SE="none", limit=1000)
res10<- predict(sem10, newdata=data1[-train,], verbose=TRUE)
yobs<- group[-train]
yhat<- res10$Yhat[,"outcome"]
benchmark(yobs, yhat)
#...with predictors, source nodes; outcomes, sink nodes
ig2<- mapGraph(ig, type= "source"); gplot(ig2)
sem02 <- SEMrun(ig2, data[train,], SE="none", limit=1000)
res02<- predict(sem02, newdata=data[-train,], verbose=TRUE)
# }
Run the code above in your browser using DataLab