R(パッケージ)で機能回帰を行っておりfda
、切片項を排除することになっています。しかし、R の fda パッケージにはそのような公式はないようです。
これが私がやりたいことです:
fit.fd <- fRegress(Acc.fd~Velo.fd - 1)
ここでAcc.fd
、 とVelo.fd
はパッケージ fda の 2 つの機能オブジェクトです。しかし、それは以下と違いはありません:
fit.fd <- fRegress(Acc.fd~Velo.fd)
結果は深くネストされているため、コードを小規模で実行して結果の詳細を生成できるように、例を追加しています。
list3d <- rep(0, 10*5*2)
list3d <- array(list3d, c(10,5, 2))
# The data is 5 functions each evaluated at 10 points
# Indep variable
list3d[, , 2] <- matrix(rnorm(50, 0, 1), 10, 5)
# Response variable
list3d[, , 1] <- matrix(rnorm(50, 0, 0.1) , 10, 5)+list3d[, , 2] ^ 2
dimnames(list3d)[[1]] <- seq(0,9)
time.range <- c(0, 9)
time.basis <- create.fourier.basis(time.range, nbasis = 3)
lfd <- vec2Lfd(c(0, (2*pi/20)^2, 0), rangeval = time.range)
time.lfd<- smooth.basisPar(seq(0,9), list3d , time.basis, Lfdobj = lfd, lambda = 0.01)$fd
Acc.fd <- time.lfd[, 1]
Velo.fd <- time.lfd[, 2]
# Expecting to see without intercept here
fit.fd <- fRegress(Acc.fd ~ Velo.fd - 1)
# plot of coef func
plot(plotpoints, eval.fd(plotpoints, fit.fd$betaestlis$Velo.fd$fd))
# Plot of intercept func, I wish to limit it to zero
plot(plotpoints, eval.fd(plotpoints, fit.fd$betaestlis$const$fd))
# Compare with regular functional regression with no restriction
fit.fd <- fRegress(Acc.fd ~ Velo.fd)
plot(plotpoints, eval.fd(plotpoints, fit.fd$betaestlis$Velo.fd$fd))
lm
したがって、インターセプトなしオプションは?の場合と同じようには機能しません。誰か助けてくれませんか?どうもありがとう!