For 129 laboratory samples of fossil fuels the heat value and the humidity were
determined together with two spectra.
One spectrum is ultraviolet-visible (UV-VIS), measured at 1335 wavelengths in
the range of 250.4 to 878.4 nanometer (nm), the other a near infrared spectrum
(NIR) measured at 2307 wavelengths in the range of 800.4 to 2779.0 nm.
fuelSubset is a subset of the original dataset containing only 10% of
the original measures of the spectra, resulting in 231 measures of the
NIR spectrum and 134 measures of the UVVIS spectrum.
A data list with 129 observations on the following 7 variables.
heat value in mega joule (mJ)
humidity in percent
near infrared spectrum (NIR)
ultraviolet-visible spectrum (UV-VIS)
wavelength of NIR spectrum in nm
wavelength of UV-VIS spectrum in nm
predicted values of humidity
The aim is to predict the heat value using the spectral data. The variable
h2o.fit was generated by a functional linear regression model, using
both spectra and their derivatives as predictors.
Fuchs, K., Scheipl, F. & Greven, S. (2015), Penalized scalar-on-functions regression with interaction term. Computational Statistics and Data Analysis. 81, 38-51.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
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) )) ### fit mean regression model with 100 boosting iterations, ### step-length 0.1 and mod <- FDboost(heatan ~ bsignal(UVVIS, uvvis.lambda, knots=40, df=4, check.ident=FALSE) + bsignal(NIR, nir.lambda, knots=40, df=4, check.ident=FALSE), timeformula = NULL, data = fuelSubset) summary(mod) ## plot(mod)