Description Usage Arguments Value See Also Examples
Prediction functions for hrf
and htb
.
1 2 3 4 5 |
object |
An object of class |
x |
A data frame or matrix containing new data. If |
time |
A vector of observation times. |
id |
A vector of length |
type |
If |
ntrees |
The number of trees to use in prediction. |
all.trees |
If |
se |
If |
Returns predictions.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | ## Not run:
# ------------------------------- #
# Simulated data example #
# ------------------------------- #
# library(htree)
p=5;sigma_e=.5;sigma_a=.5;n=500;pnoise=2
random_intercept=as.numeric(mapply(rep,rnorm(n,sd=sigma_a),times=p))
dat=data.frame(time=rep(1:p,n),
x=(random_intercept+rnorm(n*p,sd=sigma_e)),
znoise=matrix(rnorm(n*p*pnoise),ncol=pnoise))
id=sort(rep(1:n,p))
# fit historical random forest
hb=hrf(x=dat,time=dat$time,id=id,yindx=2,se=TRUE)
# get predictions with standard errors
pred=predict_hrf(hb,se=TRUE)
# ------------------------------------------------------------------ #
# Comparison of SE-estimates with actual standard errors for 'hrf'
# ------------------------------------------------------------------ #
## -- evaluation points
n=200
datp=data.frame(y=rep(0,n),w=seq(-2,2,length=n),z=rep(0,n))
## -- estimate model on 50 simulated data sets
pred=NULL
pred_se=NULL
nsim=20
## -- B=100 bootstrap samples, ensemble size of R=10 on each
control=list(ntrees=500,B=100,R=10,se=TRUE,nodesize=5)
for(k in 1:nsim){
if(is.element(k,seq(1,nsim,by=10)))
cat(paste("simulation: ",k," of ",nsim," \n",sep=""))
# -- simulation model -- #
dat=data.frame(y=(4*datp$w+rnorm(n)),x=datp$w,z=rnorm(n))
# ---------------------- #
h=hrf(x=dat,yindx="y",control=control)
mm=predict_hrf(object=h,x=datp,se=TRUE)
pred=cbind(pred,mm[,1])
pred_se=cbind(pred_se,mm[,2])
}
# --- Actual Standard errors at datp
pred_se_true=apply(pred,1,sd)
# --- Mean of estimated standard errors
pred_se_est=apply(pred_se,1,mean)
pred_se_lower=apply(pred_se,1,quantile,prob=.1)
pred_se_upper=apply(pred_se,1,quantile,prob=.9)
# -- Plot estimated SE and true SE (+smooth)
z=c(pred_se_true,pred_se_est,pred_se_lower,pred_se_upper)
ylim=c(min(z),max(z))
plot(datp$w,pred_se_est,ylim=ylim,col="blue",xlab="w",
ylab="Standard error",type="l",main=" SE-true (red) SE-est (blue)")
points(datp$w,pred_se_lower,col="blue",type="l",lty=2)
points(datp$w,pred_se_upper,col="blue",type="l",lty=2)
points(datp$w,pred_se_true,col="red",type="l")
# ------------------------------------------------------------------ #
# Comparison of SE-estimates with actual standard errors for 'htb'
# ------------------------------------------------------------------ #
## -- evaluation points
n=200
datp=data.frame(y=rep(0,n),w=seq(-2,2,length=n),z=rep(0,n))
## -- estimate model on 50 simulated data sets
pred=NULL
pred_se=NULL
nsim=20
for(k in 1:nsim){
if(is.element(k,seq(1,nsim,by=10)))
cat(paste("simulation: ",k," of ",nsim," \n",sep=""))
# -- simulation model -- #
dat=data.frame(y=(4*datp$w+rnorm(n)),x=datp$w,z=rnorm(n))
# ---------------------- #
h=htb(x=dat,yindx="y",ntrees=200,cv.fold=10)
mm=predict_htb(object=h,x=datp,se=TRUE)
pred=cbind(pred,mm[,1])
pred_se=cbind(pred_se,mm[,2])
}
# --- Actual Standard errors at datp
pred_se_true=apply(pred,1,sd)
# --- Mean of estimated standard errors
pred_se_est=apply(pred_se,1,mean)
pred_se_lower=apply(pred_se,1,quantile,prob=.1)
pred_se_upper=apply(pred_se,1,quantile,prob=.9)
# -- Plot estimated SE and true SE (+smooth)
z=c(pred_se_true,pred_se_est,pred_se_lower,pred_se_upper)
ylim=c(min(z),max(z))
plot(datp$w,pred_se_est,ylim=ylim,col="blue",xlab="w",
ylab="Standard error",type="l",main=" SE-true (red) SE-est (blue)")
points(datp$w,pred_se_lower,col="blue",type="l",lty=2)
points(datp$w,pred_se_upper,col="blue",type="l",lty=2)
points(datp$w,pred_se_true,col="red",type="l")
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.