predict fails for interaction of bsignal baselearners
fabian-s opened this issue · 1 comments
fabian-s commented
library(FDboost)
#> Loading required package: mboost
#> Loading required package: parallel
#> Loading required package: stabs
#> This is mboost 2.9-1. See 'package?mboost' and 'news(package = "mboost")'
#> for a complete list of changes.
#> This is FDboost 0.3-2.
######## Example for scalar-on-function-regression with bsignal()
data("fuelSubset", package = "FDboost")
## center the functional covariates per observed wavelength
fuelSubset$UVVIS <- scale(fuelSubset$UVVIS, scale = FALSE)
fuelSubset$NIR <- scale(fuelSubset$NIR, scale = FALSE)
## to make mboost:::df2lambda() happy (all design matrix entries < 10)
## reduce range of argvals to [0,1] to get smaller integration weights
fuelSubset$uvvis.lambda <- with(fuelSubset, (uvvis.lambda - min(uvvis.lambda)) /
(max(uvvis.lambda) - min(uvvis.lambda) ))
fuelSubset$nir.lambda <- with(fuelSubset, (nir.lambda - min(nir.lambda)) /
(max(nir.lambda) - min(nir.lambda) ))
mod_int <- FDboost(heatan ~
bsignal(UVVIS, uvvis.lambda, knots = 10, df = 4, check.ident = FALSE) %X%
bsignal(NIR, nir.lambda, knots = 10, df=4, check.ident = FALSE),
timeformula = NULL, data = fuelSubset)
#> Warning in df2lambda(X, df = args$df, lambda = args$lambda, dmat =
#> K, weights = w, : estimated degrees of freedom differ from 'df' by
#> -0.00387383609195169
predict(mod_int, fuelSubset)
#> Error in predict.FDboost(mod_int, fuelSubset): Can only predict effect of one functional effect in %X% or %Xc%.
Created on 2019-03-26 by the reprex package (v0.2.1)
why?
sbrockhaus commented
the code of predict.FDboost() was not meant to work for interaction effects of two functional covariates if you use newdata. I adapted it now.