Bonjour,
Je travaille sur le (NIR) mais débutante en R.
J’ai collecté les données de 60 échantillons du NIR et mesurer les teneurs correspondantes. Malgré tous les prétraitements (msc, snv, baseline, derivée seconde) la prédiction est faible ( R2<50%) ; comment faire pour améliorer la prédiction
Ci-joint le code et un bout de données
Code:
rm(list=ls())
> library(readxl)
> library(caret)
> library("FactoMineR")
> library("pls")
> library("base")
> R=read.table('Reflect-brute.txt',header = TRUE, dec = '.')
> Te=read.table('Ten_DO.txt', header = TRUE, dec = '.')
> S=t(R[,2:30])
> it=9:30
> iv=1:8
> TM=Te[,2]
> Ab=I(as.matrix(S))
> D=data.frame(TM,Ab=I(as.matrix(S)))
> gasTrain=D[it,]
> gasTest=D[iv,]
> gas1<- plsr(TM ~ Ab,ncomp=10,data=gasTrain, method="oscorespls",validation="none")
> explvar(gas1)
Comp 1 Comp 2 Comp 3 Comp 4 Comp 5 Comp 6 Comp 7
75.7498931 11.1968850 7.6230746 0.5951301 2.0811779 1.0759654 0.3021987
Comp 8 Comp 9 Comp 10
0.2324808 0.2597198 0.1934846
> pls.pred2 = predict(gas1, comps = 3, newdata = gasTest)
>
> ivv =TM[c(1:8)]
> pls.eval=data.frame(obs=ivv, pred=pls.pred2[,1])
> defaultSummary(pls.eval)
RMSE Rsquared MAE
0.01210972 0.17792132 0.01016696
Données:
TM Ab
P.R.1 0.7158600 2.089697....
P.R.2 0.7190875 2.074161....
P.R.3 0.6980375 2.073271....
P.R.4 0.7084975 2.080949....
P.R.5 0.7087525 2.074995....
P.R.6 0.7037050 2.072764....
P.R.7 0.7134575 2.078632....
P.R.8 0.7174950 2.074880....
P.R.9 0.7116125 2.072999....
P.R.10 0.6998925 2.064671....
P.R.11 0.7184750 2.086531....
P.R.12 0.7153475 2.083271....