2

I want to fit a robust linear regression with interaction terms in Caret package in R but I obtain the following error:

Error in train.default(x, y, weights = w, ...) : Stopping In addition: Warning message: In nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo, : There were missing values in resampled performance measures.

Below my code:

mod <- train(
Pac ~ clearSkyPOA + clearSkyPOA*TotalCover+Temp2,
data = training,
method = "rlm",
metric = "RMSE",
preProc= c("center","scale","BoxCox"),
trControl =  trainControl(method="cv", number = 5),
na.action =na.omit)

If I remove the interaction term: 'clearSkyPOA*TotalCover', it works as expected. For example with code:

mod <- train(
    Pac ~ clearSkyPOA + TotalCover+Temp2,
    data = training,
    method = "rlm",
    metric = "RMSE",
    preProc= c("center","scale","BoxCox"),
    trControl =  trainControl(method="cv", number = 5),
    na.action=na.omit
  )

I obtain the following results:

Robust Linear Model 

4363 samples
   3 predictor

Pre-processing: centered (3), scaled (3), Box-Cox transformation (2) 
Resampling: Cross-Validated (5 fold) 
Summary of sample sizes: 3490, 3490, 3491, 3491, 3490 
Resampling results across tuning parameters:

  intercept  psi           RMSE      Rsquared 
  FALSE      psi.huber     291.3261  0.7501889
  FALSE      psi.hampel    291.3261  0.7501889
  FALSE      psi.bisquare  291.3470  0.7499932
   TRUE      psi.huber     115.0178  0.7488397
   TRUE      psi.hampel    114.2018  0.7500523
   TRUE      psi.bisquare  115.4231  0.7483018

RMSE was used to select the optimal model using  the smallest value.
The final values used for the model were intercept = TRUE and psi = psi.hampel. 

Am I missing something? Below results of 20 samples from dput(training):

structure(list(Pac = c(3.42857142857143, 38.25, 120.916666666667, 
258, 367.166666666667, 269.083333333333, 233.75, 112.416666666667, 
21.9166666666667, 0.2, 1.5, 12.4166666666667, 134.916666666667, 
104.333333333333, 394.583333333333, 342.5, 303.333333333333, 
151.5, 42.0833333333333, 4.83333333333333), clearSkyPOA = c(63.0465796511235, 
230.023517163135, 472.935466225438, 646.271261971453, 739.926063392829, 
751.872076941902, 681.91937141018, 531.40317803238, 306.020562749019, 
120.318359249055, 68.2689523552881, 229.800769386719, 473.162397232603, 
647.082096293271, 741.364282016807, 753.955817698295, 684.656233771643, 
534.787114500355, 309.953073794329, 114.55351678131), TotalCover = c(0.602923, 
0.5798824, 0.5095124, 0.3896642, 0.2744389, 0.232004, 0.3052016, 
0.4355463, 0.5392107, 0.5571411, 0.4599758, 0.4555472, 0.4434351, 
0.41583, 0.3704268, 0.306295, 0.2271317, 0.1551105, 0.1170307, 
0.1307881), Temp = c(13.72545, 13.91255, 14.04348, 14.06298, 
13.98118, 13.82455, 13.61805, 13.3806, 13.12966, 12.87026, 12.37558, 
12.76012, 13.12112, 13.37877, 13.5505, 13.67806, 13.7903, 13.86462, 
13.86556, 13.76468), Temp2 = c(188.3879777025, 193.5590475025, 
197.2193305104, 197.7674064804, 195.4733941924, 191.1181827025, 
185.4512858025, 179.04045636, 172.3879717156, 165.6435924676, 
153.1549803364, 162.8206624144, 172.1637900544, 178.9914867129, 
183.61605025, 187.0893253636, 190.17237409, 192.2276877444, 192.2537541136, 
189.4664155024)), .Names = c("Pac", "clearSkyPOA", "TotalCover", 
"Temp", "Temp2"), row.names = c(NA, 20L), class = "data.frame")
EanX
  • 475
  • 4
  • 21
  • Can you provide a minimal excerpt of the data (`dput`) to reproduce the error? (Or an anonymized version of it?) What did you try to overcome the error? (I mean, you find plenty of hits when you search the web for the error message) – lukeA Nov 14 '16 at 11:27
  • Hope this could be sufficient: – EanX Nov 14 '16 at 12:08

0 Answers0