###############################################################################
# univariate model:
# Y(t) = f(t) + \int X1(s)\beta(s,t)ds + eps
data1 <- pffrSim(scenario="1")
t <- attr(data1, "yindex")
s <- attr(data1, "xindex")
m1 <- pffr(Y ~ ff(X1, xind=s), yind=t, data=data1)
summary(m1)
plot(m1, pers=TRUE)
###############################################################################
# multivariate model:
# Y(t) = f0(t) + \int X1(s)\beta1(s,t)ds + \int X2(s)\beta2(s,t)ds +
# xlin \beta3(t) + f1(xte1, xte2) + f2(xsmoo, t) + beta4 xconst + eps
data2 <- pffrSim(scenario="2", n=200)
t <- attr(data2, "yindex")
s <- attr(data2, "xindex")
m2 <- pffr(Y ~ ff(X1, xind=s) + #linear function-on-function
ff(X2, xind=s) + #linear function-on-function
xlin + #varying coefficient term
c(te(xte1, xte2)) + #bivariate smooth term in xte1 & xte2, const. over Y-index
s(xsmoo) + #smooth effect of xsmoo varying over Y-index
c(xconst), # linear effect of xconst constant over Y-index
yind=t,
data=data2)
summary(m2)
plot(m2, pers=TRUE)
#############################################################################
# sparse data (keep only 20% of function evaluations):
set.seed(121456)
ydata1 <- data.frame(cbind(.obs=as.vector(row(data1$Y)),
.index=rep(attr(data1, "yindex"), e=nrow(data1)),
.value=as.vector(data1$Y)))
ydata1 <- ydata1[sample(1:nrow(ydata), 0.2*nrow(ydata)), ]
s <- attr(data1, "xindex")
t <- attr(data1, "yindex")
m1.sparse <- pffr(Y ~ ff(X1, xind=s), data=data1, ydata=ydata1, yind=t)
summary(m1.sparse)
plot(m1.sparse, pers=TRUE)Run the code above in your browser using DataLab