library(e1071)
n=500
tt=seq(0,1,len=101)
beta=tt*sin(2*pi*tt)^2
x=matrix(NA,ncol=101,nrow=n)
y=numeric(n)
for(i in 1:n){
x[i, ]=rwiener(1,101)*3+rnorm(101,sd=0.1)
y[i]=mean(x[i,]*beta)+ rnorm(1,sd=0.1)
}
x.fdata<-fdata(x,tt)
# by svd()
pc1=pc.svd.fdata(x.fdata)
# by svd in functional regression
res=fregre.pc(x.fdata,y,l=c(1,4,5))
pc2=pc.fdata(res)
pc3=pc.fdata(res,ask=TRUE)Run the code above in your browser using DataLab