nirsdata <- readRDS("ML_NIRS.Rdata")
head(nirsdata[1:12,1:20])
  Subject Sex   Age Word MemorySpan Peabody SPM.P.CPM.P RandW LW LWCW RWCW
1    Sub1   M 10.41  125         23     113          49    32 42   20   20
2    Sub1   M 10.41  125         23     113          49    32 42   20   20
3    Sub1   M 10.41  125         23     113          49    32 42   20   20
4    Sub1   M 10.41  125         23     113          49    32 42   20   20
5    Sub1   M 10.41  125         23     113          49    32 42   20   20
6    Sub1   M 10.41  125         23     113          49    32 42   20   20
    Channel      Time 1      Time 2      Time 3      Time 4      Time 5
1 Channel_1 1.67935e-05 1.66073e-05 1.64011e-05 1.61742e-05 1.59262e-05
2 Channel_2 1.21074e-05 1.20908e-05 1.20587e-05 1.20123e-05 1.19528e-05
3 Channel_3 5.22465e-06 5.05071e-06 4.86925e-06 4.68050e-06 4.48468e-06
4 Channel_4 3.49818e-06 3.21022e-06 2.91707e-06 2.61919e-06 2.31705e-06
5 Channel_5 9.26550e-06 9.44055e-06 9.61213e-06 9.77847e-06 9.93765e-06
6 Channel_6 3.22096e-05 3.22045e-05 3.21420e-05 3.20224e-05 3.18462e-05
       Time 6      Time 7      Time 8
1 1.56564e-05 1.53643e-05 1.50493e-05
2 1.18811e-05 1.17987e-05 1.17066e-05
3 4.28206e-06 4.07291e-06 3.85755e-06
4 2.01112e-06 1.70187e-06 1.38978e-06
5 1.00877e-05 1.02264e-05 1.03516e-05
6 3.16138e-05 3.13259e-05 3.09833e-05
library(glmnet)
Loading required package: Matrix
Loading required package: foreach
Loaded glmnet 2.0-5

CV lasso for memoryspan

# channel 1
C1 <- subset(nirsdata,Channel=="Channel_1")
C1 <- C1[,-c(4,6,7,8,9,10,11,12)]
head(C1[1:12])
   Subject Sex   Age MemorySpan       Time 1       Time 2       Time 3
1     Sub1   M 10.41         23  1.67935e-05  1.66073e-05  1.64011e-05
9    Sub10   M  9.95         22  1.63268e-05  1.59217e-05  1.55195e-05
17   Sub11   M 10.22         10 -1.03701e-06 -9.47723e-07 -8.43826e-07
25   Sub12   M  9.68         17  2.70722e-06  2.67073e-06  2.63432e-06
33   Sub13   F 10.35         17  5.24157e-06  5.15493e-06  5.05612e-06
41   Sub14   F 10.37         18 -3.98872e-06 -3.82578e-06 -3.65194e-06
         Time 4       Time 5       Time 6       Time 7       Time 8
1   1.61742e-05  1.59262e-05  1.56564e-05  1.53643e-05  1.50493e-05
9   1.51220e-05  1.47310e-05  1.43478e-05  1.39738e-05  1.36103e-05
17 -7.26176e-07 -5.95719e-07 -4.53488e-07 -3.00598e-07 -1.38233e-07
25  2.59816e-06  2.56237e-06  2.52706e-06  2.49225e-06  2.45795e-06
33  4.94578e-06  4.82456e-06  4.69319e-06  4.55243e-06  4.40308e-06
41 -3.46693e-06 -3.27048e-06 -3.06234e-06 -2.84229e-06 -2.61016e-06
ytra1 <- C1$MemorySpan
xtra1 <- model.matrix(MemorySpan ~. , C1)[,-1]
rst_cv1 <- cv.glmnet(xtra1, ytra1, alpha = 0,family = "gaussian", 
                     nfolds = 10,type.measure = "deviance")
Warning: Option grouped=FALSE enforced in cv.glmnet, since < 3 observations
per fold
yhat1_ridge <- predict(rst_cv1,newx = xtra1,type="response")
mse1_ridge <- mean((ytra1 - yhat1_ridge)^2)
rs1 <- 1-mse1_ridge/var(ytra1)
rs1
[1] 0.05
# channel 2
C7 <- subset(nirsdata,Channel=="Channel_7")
C7 <- C7[,-c(1,4,6,7,8,9,10,11,12)]
head(C7[1:12])
   Sex   Age MemorySpan       Time 1       Time 2       Time 3
7    M 10.41         23  8.80695e-06  8.65236e-06  8.48920e-06
15   M  9.95         22  1.34952e-06  1.14803e-06  9.45776e-07
23   M 10.22         10 -3.39980e-06 -3.08485e-06 -2.75288e-06
31   M  9.68         17  8.10154e-07  9.24638e-07  1.03281e-06
39   F 10.35         17  4.18387e-06  3.81097e-06  3.41042e-06
47   F 10.37         18 -8.28087e-07 -7.25885e-07 -6.10333e-07
         Time 4       Time 5       Time 6       Time 7       Time 8
7   8.31747e-06  8.13719e-06  7.94834e-06  7.75093e-06  7.54493e-06
15  7.43509e-07  5.41947e-07  3.41789e-07  1.43717e-07 -5.16075e-08
23 -2.40500e-06 -2.04240e-06 -1.66637e-06 -1.27826e-06 -8.79516e-07
31  1.13478e-06  1.23066e-06  1.32059e-06  1.40470e-06  1.48315e-06
39  2.98381e-06  2.53282e-06  2.05922e-06  1.56481e-06  1.05149e-06
47 -4.81117e-07 -3.37964e-07 -1.80641e-07 -8.95639e-09  1.77237e-07
         Time 9
7   7.33033e-06
15 -2.43538e-07
23 -4.71615e-07
31  1.55609e-06
39  5.21150e-07
47  3.78040e-07
ytra7 <- C7$MemorySpan
xtra7 <- model.matrix(MemorySpan ~. , C7)[,-1]
rst_cv7 <- cv.glmnet(xtra7, ytra7, alpha = 1, nfolds = 5,type.measure = "mse")
yhat7_ridge <- predict(rst_cv7,newx = xtra7,type="response")
mse7_ridge <- mean((ytra7 - yhat7_ridge)^2)
rs7 <- 1-mse7_ridge/var(ytra7)
rs7
[1] 0.05