#Code for Part I of the Coursework
library(factoextra)
library(cluster)
library(dplyr)
library(gridExtra)
setwd(
  "C:/Users/mario/OneDrive/Desktop/Pgd Data Science LSE/All Modules/Machine Learning ST3189-02/Assignment"
)
rawdata <-
  read.csv(
    file.path(
      "C:/Users/mario/OneDrive/Desktop/Pgd Data Science LSE/All Modules/Machine Learning ST3189-02/Assignment",
      "EWCS2016.csv"
    )
  )
#Examining and preparing the data for analysis 
fix(rawdata)
sum(is.na(rawdata))
[1] 0
PCA <- prcomp(rawdata, scale = TRUE)
PCA$rotation
                            PC1        PC2          PC3         PC4          PC5         PC6           PC7         PC8
Gender               0.03250008 -0.1353988  0.806433781  0.55980792 -0.079270587  0.01723492 -9.778808e-02  0.01121574
Age                  0.07433619 -0.2286655 -0.571101171  0.77127404  0.039682492  0.01009599 -8.934509e-05 -0.11385839
Cheerful             0.39153563 -0.2012996 -0.038289519 -0.08139296 -0.029721482  0.04231147 -1.685158e-01 -0.09686466
Relaxed              0.37789256 -0.2349038  0.076367267 -0.17083588 -0.038691987  0.06585140  1.535974e-01 -0.37141368
Active               0.39775839 -0.2056781 -0.004228871 -0.03981414 -0.014373522  0.04361610  1.144235e-01  0.14266717
Rested               0.37318465 -0.2474400  0.062722984 -0.08653645  0.003542394  0.13204170  3.688870e-01 -0.16576409
Interesting          0.36212158 -0.1250589 -0.063064281 -0.08683617 -0.042949130 -0.09205940 -7.207503e-01  0.40470810
Energy.at.Work       0.33562141  0.3044394  0.004890486  0.13487302  0.133265454 -0.25240318  4.765136e-01  0.61891947
Enthusiastic.at.Work 0.27686474  0.4407964  0.045355458  0.06943711  0.265531252 -0.60261022 -1.577092e-01 -0.48309038
Time.Flies.at.Work   0.22206255  0.5057896  0.012505515  0.09870101  0.359531100  0.72996141 -1.330233e-01 -0.06264288
I.am.good.at.Work    0.17348428  0.4143672 -0.077739182  0.08107621 -0.877592231  0.07727847  1.279804e-02 -0.08716387
                              PC9         PC10          PC11
Gender               -0.023777600 -0.001102509  0.0074027519
Age                   0.009788407 -0.075608639 -0.0267056073
Cheerful             -0.603089402  0.320018154  0.5399120579
Relaxed              -0.305536677 -0.587941391 -0.4007481315
Active                0.098727247  0.641330892 -0.5841863884
Rested                0.638204820 -0.046970070  0.4444878589
Interesting           0.264062221 -0.279657290 -0.0135745676
Energy.at.Work       -0.194300386 -0.201698952  0.0801972500
Enthusiastic.at.Work  0.127521607  0.116074876 -0.0231568523
Time.Flies.at.Work    0.009045759 -0.005259619 -0.0336416722
I.am.good.at.Work     0.037306587  0.017094203  0.0009229801
Table1 <- PCA$rotation
pdf("table1.pdf", width = 25, height = 25)       # Export PDF
grid.table(Table1) #Export PDF 
dev.off()         #Export PDF
null device 
          1 
summary(PCA)
Importance of components:
                          PC1    PC2     PC3     PC4     PC5     PC6     PC7     PC8    PC9    PC10    PC11
Standard deviation     2.0866 1.1905 1.01062 0.97002 0.88699 0.75100 0.71833 0.65685 0.6025 0.57038 0.52925
Proportion of Variance 0.3958 0.1288 0.09285 0.08554 0.07152 0.05127 0.04691 0.03922 0.0330 0.02958 0.02546
Cumulative Proportion  0.3958 0.5246 0.61749 0.70303 0.77456 0.82583 0.87274 0.91196 0.9450 0.97454 1.00000
plot(PCA)

biplot(PCA)


#Clustering 
cleaned_data <- na.omit(rawdata)
cleaned_data <- scale(rawdata)
set.seed(220)
clustered_data <- kmeans(cleaned_data, 9, nstart = 25)
did not converge in 10 iterationsdid not converge in 10 iterationsdid not converge in 10 iterationsdid not converge in 10 iterations
attributes(clustered_data)
$names
[1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss" "betweenss"    "size"         "iter"        
[9] "ifault"      

$class
[1] "kmeans"
wssplot <- function(clustered_data,
                    nc = 15,
                    seed = 1234) {
  wss <- (nrow(clustered_data) - 1) * sum(apply(clustered_data, 2, var))
  for (i in 2:nc) {
    set.seed(seed)
    wss[i] <- sum(kmeans(clustered_data, centers = i)$withinss)
  }
  plot(1:nc,
       wss,
       type = "b",
       xlab = "Number of Clusters",
       ylab = "Within groups sum of squares")
}
#choosing the value of k
wssplot(cleaned_data, nc = 10)
did not converge in 10 iterations

#plotting the elbow plot
#we will choose then 4 as the numbers of clusters, and we run the cluster analysis again
distance <- dist(cleaned_data, method = "euclidean") #choosing the distance method 
set.seed(221)
clustered_data <- kmeans(cleaned_data, 4, nstart = 25)
clustered_data
K-means clustering with 4 clusters of sizes 2361, 1259, 2187, 2006

Cluster means:
       Gender           Age     Cheerful     Relaxed      Active      Rested Interesting Energy.at.Work Enthusiastic.at.Work
1 -0.98214313 -0.0007499299 -0.003888113 -0.03134145 -0.02648324 -0.04635706  0.03038411     0.11063821            0.1765084
2  0.16041364  0.2589998645  1.470128187  1.36879220  1.48694844  1.35671790  1.29397307     1.05343842            0.7895254
3  1.01788709 -0.0295338135 -0.046381693  0.03527680 -0.01698223  0.05129799 -0.02956709     0.09765482            0.1007282
4 -0.05445658 -0.1294714829 -0.867534790 -0.86064935 -0.88354986 -0.85286517 -0.81564594    -0.89783991           -0.8130814
  Time.Flies.at.Work I.am.good.at.Work
1         0.17460479        0.17225232
2         0.59290092        0.43430256
3         0.09858212        0.07665649
4        -0.68509634       -0.55888455

Clustering vector:
   1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25 
   1    3    3    1    3    1    1    3    3    3    3    1    1    3    1    1    1    1    4    1    2    2    1    3    3 
  26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50 
   3    3    1    3    1    2    1    3    3    3    1    2    1    3    1    1    4    3    1    1    3    1    1    3    3 
  51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75 
   3    3    1    2    1    3    1    4    4    1    1    3    3    3    1    2    2    3    3    1    2    1    3    3    3 
  76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99  100 
   1    3    3    1    1    2    1    2    3    3    3    3    1    2    1    4    1    4    4    1    4    3    1    1    1 
 101  102  103  104  105  106  107  108  109  110  111  112  113  114  115  116  117  118  119  120  121  122  123  124  125 
   2    1    2    1    3    3    3    2    3    1    4    1    3    4    4    3    4    3    2    3    4    4    4    2    3 
 126  127  128  129  130  131  132  133  134  135  136  137  138  139  140  141  142  143  144  145  146  147  148  149  150 
   4    1    1    3    3    2    1    1    2    2    3    1    2    1    1    1    1    1    4    1    4    4    4    1    2 
 151  152  153  154  155  156  157  158  159  160  161  162  163  164  165  166  167  168  169  170  171  172  173  174  175 
   1    2    2    3    1    1    3    2    1    1    1    4    1    4    1    1    3    1    4    2    3    1    3    1    1 
 176  177  178  179  180  181  182  183  184  185  186  187  188  189  190  191  192  193  194  195  196  197  198  199  200 
   2    1    1    1    1    3    3    4    1    2    3    1    3    3    3    1    3    4    3    2    1    1    2    3    3 
 201  202  203  204  205  206  207  208  209  210  211  212  213  214  215  216  217  218  219  220  221  222  223  224  225 
   2    1    3    1    2    2    2    1    2    3    1    4    2    4    4    1    2    1    4    1    3    3    2    1    2 
 226  227  228  229  230  231  232  233  234  235  236  237  238  239  240  241  242  243  244  245  246  247  248  249  250 
   2    1    2    1    1    3    1    3    3    1    1    1    1    1    3    1    1    4    1    1    1    3    3    4    2 
 251  252  253  254  255  256  257  258  259  260  261  262  263  264  265  266  267  268  269  270  271  272  273  274  275 
   2    3    2    1    3    1    3    2    3    3    1    3    3    3    1    1    1    1    4    3    2    1    4    1    3 
 276  277  278  279  280  281  282  283  284  285  286  287  288  289  290  291  292  293  294  295  296  297  298  299  300 
   1    3    2    3    4    4    4    4    4    2    1    1    4    1    1    1    4    4    4    1    4    3    4    4    3 
 301  302  303  304  305  306  307  308  309  310  311  312  313  314  315  316  317  318  319  320  321  322  323  324  325 
   4    3    1    1    3    2    3    1    3    2    1    1    3    4    1    3    3    3    1    1    1    1    1    2    2 
 326  327  328  329  330  331  332  333  334  335  336  337  338  339  340  341  342  343  344  345  346  347  348  349  350 
   4    3    1    1    4    1    1    3    1    1    3    3    1    1    1    2    1    1    1    1    1    1    1    3    3 
 351  352  353  354  355  356  357  358  359  360  361  362  363  364  365  366  367  368  369  370  371  372  373  374  375 
   4    3    1    3    1    3    1    1    4    3    2    3    1    4    1    1    1    1    4    3    2    1    1    3    1 
 376  377  378  379  380  381  382  383  384  385  386  387  388  389  390  391  392  393  394  395  396  397  398  399  400 
   1    3    1    1    3    4    1    4    1    2    1    3    2    1    3    2    1    1    3    3    1    3    1    3    2 
 401  402  403  404  405  406  407  408  409  410  411  412  413  414  415  416  417  418  419  420  421  422  423  424  425 
   1    1    1    4    4    3    1    3    1    3    1    3    1    3    1    1    4    2    3    4    4    1    4    4    3 
 426  427  428  429  430  431  432  433  434  435  436  437  438  439  440  441  442  443  444  445  446  447  448  449  450 
   4    3    2    1    2    3    1    3    3    2    3    2    1    2    2    2    2    3    3    2    3    3    3    3    2 
 451  452  453  454  455  456  457  458  459  460  461  462  463  464  465  466  467  468  469  470  471  472  473  474  475 
   3    1    4    3    1    3    3    2    1    2    3    3    2    4    2    3    1    3    1    3    3    1    1    1    3 
 476  477  478  479  480  481  482  483  484  485  486  487  488  489  490  491  492  493  494  495  496  497  498  499  500 
   4    1    2    4    1    2    2    4    2    2    4    2    2    4    1    2    4    2    3    4    4    4    1    3    1 
 501  502  503  504  505  506  507  508  509  510  511  512  513  514  515  516  517  518  519  520  521  522  523  524  525 
   4    2    4    4    1    1    1    3    3    1    3    1    3    3    2    1    3    3    2    1    2    3    2    1    2 
 526  527  528  529  530  531  532  533  534  535  536  537  538  539  540  541  542  543  544  545  546  547  548  549  550 
   3    1    4    1    4    3    3    4    3    3    4    4    2    4    3    1    2    4    4    4    4    3    1    1    1 
 551  552  553  554  555  556  557  558  559  560  561  562  563  564  565  566  567  568  569  570  571  572  573  574  575 
   1    1    3    2    1    3    3    3    1    3    1    1    1    4    2    3    3    2    1    4    1    4    4    4    4 
 576  577  578  579  580  581  582  583  584  585  586  587  588  589  590  591  592  593  594  595  596  597  598  599  600 
   1    1    3    3    3    4    1    1    1    4    3    3    4    4    4    4    1    1    4    3    3    1    2    2    2 
 601  602  603  604  605  606  607  608  609  610  611  612  613  614  615  616  617  618  619  620  621  622  623  624  625 
   3    2    2    1    4    2    1    1    3    2    1    2    1    1    1    1    4    4    3    3    2    4    2    3    4 
 626  627  628  629  630  631  632  633  634  635  636  637  638  639  640  641  642  643  644  645  646  647  648  649  650 
   1    4    1    3    1    1    1    4    3    4    3    1    3    3    3    1    3    3    1    1    4    3    1    3    4 
 651  652  653  654  655  656  657  658  659  660  661  662  663  664  665  666  667  668  669  670  671  672  673  674  675 
   4    4    4    3    4    2    4    4    3    3    3    2    4    3    3    4    1    1    1    4    4    1    4    1    4 
 676  677  678  679  680  681  682  683  684  685  686  687  688  689  690  691  692  693  694  695  696  697  698  699  700 
   4    3    1    1    1    1    1    1    1    1    3    1    1    3    1    2    3    1    3    3    1    4    4    3    4 
 701  702  703  704  705  706  707  708  709  710  711  712  713  714  715  716  717  718  719  720  721  722  723  724  725 
   4    4    3    4    4    3    4    3    4    4    3    4    4    2    3    4    3    2    1    2    3    2    1    2    2 
 726  727  728  729  730  731  732  733  734  735  736  737  738  739  740  741  742  743  744  745  746  747  748  749  750 
   3    3    2    2    1    2    1    3    2    2    1    1    2    1    2    3    2    1    1    2    2    3    3    1    3 
 751  752  753  754  755  756  757  758  759  760  761  762  763  764  765  766  767  768  769  770  771  772  773  774  775 
   3    1    3    1    3    4    1    3    2    2    4    1    2    2    1    4    3    1    3    4    3    3    4    3    1 
 776  777  778  779  780  781  782  783  784  785  786  787  788  789  790  791  792  793  794  795  796  797  798  799  800 
   3    1    1    3    2    1    3    3    3    3    2    2    2    3    1    3    2    2    4    2    3    2    3    1    2 
 801  802  803  804  805  806  807  808  809  810  811  812  813  814  815  816  817  818  819  820  821  822  823  824  825 
   1    2    3    1    3    4    3    1    1    3    1    3    1    3    4    3    1    1    1    3    3    1    3    4    1 
 826  827  828  829  830  831  832  833  834  835  836  837  838  839  840  841  842  843  844  845  846  847  848  849  850 
   4    1    1    3    2    4    3    4    1    4    3    4    4    3    3    1    3    2    3    4    1    1    1    1    4 
 851  852  853  854  855  856  857  858  859  860  861  862  863  864  865  866  867  868  869  870  871  872  873  874  875 
   1    4    1    4    4    3    2    2    2    2    1    1    1    1    2    1    1    4    1    3    1    1    1    3    1 
 876  877  878  879  880  881  882  883  884  885  886  887  888  889  890  891  892  893  894  895  896  897  898  899  900 
   2    4    4    2    2    3    2    2    3    4    2    4    4    4    2    2    2    1    2    1    3    2    3    3    4 
 901  902  903  904  905  906  907  908  909  910  911  912  913  914  915  916  917  918  919  920  921  922  923  924  925 
   3    3    2    3    1    3    4    1    3    1    3    3    1    2    2    1    4    1    1    1    1    1    3    4    1 
 926  927  928  929  930  931  932  933  934  935  936  937  938  939  940  941  942  943  944  945  946  947  948  949  950 
   1    2    2    1    3    4    1    3    3    3    3    3    3    3    3    2    1    3    1    1    3    2    1    4    4 
 951  952  953  954  955  956  957  958  959  960  961  962  963  964  965  966  967  968  969  970  971  972  973  974  975 
   4    4    2    4    4    2    4    2    3    3    1    1    1    1    3    3    3    1    1    1    1    1    1    3    3 
 976  977  978  979  980  981  982  983  984  985  986  987  988  989  990  991  992  993  994  995  996  997  998  999 1000 
   1    3    2    1    2    1    3    2    3    3    4    4    4    1    1    1    3    3    4    1    2    3    1    1    4 
 [ reached getOption("max.print") -- omitted 6813 entries ]

Within cluster sum of squares by cluster:
[1] 14793.76 14018.34 14540.81 10511.09
 (between_SS / total_SS =  37.3 %)

Available components:

[1] "cluster"      "centers"      "totss"        "withinss"     "tot.withinss" "betweenss"    "size"         "iter"        
[9] "ifault"      
#hirearchical clustering 
hc.complete<- hclust(dist(cleaned_data), method="average")
#plotting hierarchical clustering 
plot(hc.complete)

hc <- as.dendrogram(hc.complete)
plot(hc)

cutree(hc.complete, 1)
   1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
  26   27   28   29   30   31   32   33   34   35   36   37   38   39   40   41   42   43   44   45   46   47   48   49   50 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
  51   52   53   54   55   56   57   58   59   60   61   62   63   64   65   66   67   68   69   70   71   72   73   74   75 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
  76   77   78   79   80   81   82   83   84   85   86   87   88   89   90   91   92   93   94   95   96   97   98   99  100 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 101  102  103  104  105  106  107  108  109  110  111  112  113  114  115  116  117  118  119  120  121  122  123  124  125 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 126  127  128  129  130  131  132  133  134  135  136  137  138  139  140  141  142  143  144  145  146  147  148  149  150 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 151  152  153  154  155  156  157  158  159  160  161  162  163  164  165  166  167  168  169  170  171  172  173  174  175 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 176  177  178  179  180  181  182  183  184  185  186  187  188  189  190  191  192  193  194  195  196  197  198  199  200 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 201  202  203  204  205  206  207  208  209  210  211  212  213  214  215  216  217  218  219  220  221  222  223  224  225 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 226  227  228  229  230  231  232  233  234  235  236  237  238  239  240  241  242  243  244  245  246  247  248  249  250 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 251  252  253  254  255  256  257  258  259  260  261  262  263  264  265  266  267  268  269  270  271  272  273  274  275 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 276  277  278  279  280  281  282  283  284  285  286  287  288  289  290  291  292  293  294  295  296  297  298  299  300 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 301  302  303  304  305  306  307  308  309  310  311  312  313  314  315  316  317  318  319  320  321  322  323  324  325 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 326  327  328  329  330  331  332  333  334  335  336  337  338  339  340  341  342  343  344  345  346  347  348  349  350 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 351  352  353  354  355  356  357  358  359  360  361  362  363  364  365  366  367  368  369  370  371  372  373  374  375 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 376  377  378  379  380  381  382  383  384  385  386  387  388  389  390  391  392  393  394  395  396  397  398  399  400 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 401  402  403  404  405  406  407  408  409  410  411  412  413  414  415  416  417  418  419  420  421  422  423  424  425 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 426  427  428  429  430  431  432  433  434  435  436  437  438  439  440  441  442  443  444  445  446  447  448  449  450 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 451  452  453  454  455  456  457  458  459  460  461  462  463  464  465  466  467  468  469  470  471  472  473  474  475 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 476  477  478  479  480  481  482  483  484  485  486  487  488  489  490  491  492  493  494  495  496  497  498  499  500 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 501  502  503  504  505  506  507  508  509  510  511  512  513  514  515  516  517  518  519  520  521  522  523  524  525 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 526  527  528  529  530  531  532  533  534  535  536  537  538  539  540  541  542  543  544  545  546  547  548  549  550 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 551  552  553  554  555  556  557  558  559  560  561  562  563  564  565  566  567  568  569  570  571  572  573  574  575 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 576  577  578  579  580  581  582  583  584  585  586  587  588  589  590  591  592  593  594  595  596  597  598  599  600 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 601  602  603  604  605  606  607  608  609  610  611  612  613  614  615  616  617  618  619  620  621  622  623  624  625 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 626  627  628  629  630  631  632  633  634  635  636  637  638  639  640  641  642  643  644  645  646  647  648  649  650 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 651  652  653  654  655  656  657  658  659  660  661  662  663  664  665  666  667  668  669  670  671  672  673  674  675 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 676  677  678  679  680  681  682  683  684  685  686  687  688  689  690  691  692  693  694  695  696  697  698  699  700 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 701  702  703  704  705  706  707  708  709  710  711  712  713  714  715  716  717  718  719  720  721  722  723  724  725 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 726  727  728  729  730  731  732  733  734  735  736  737  738  739  740  741  742  743  744  745  746  747  748  749  750 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 751  752  753  754  755  756  757  758  759  760  761  762  763  764  765  766  767  768  769  770  771  772  773  774  775 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 776  777  778  779  780  781  782  783  784  785  786  787  788  789  790  791  792  793  794  795  796  797  798  799  800 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 801  802  803  804  805  806  807  808  809  810  811  812  813  814  815  816  817  818  819  820  821  822  823  824  825 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 826  827  828  829  830  831  832  833  834  835  836  837  838  839  840  841  842  843  844  845  846  847  848  849  850 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 851  852  853  854  855  856  857  858  859  860  861  862  863  864  865  866  867  868  869  870  871  872  873  874  875 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 876  877  878  879  880  881  882  883  884  885  886  887  888  889  890  891  892  893  894  895  896  897  898  899  900 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 901  902  903  904  905  906  907  908  909  910  911  912  913  914  915  916  917  918  919  920  921  922  923  924  925 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 926  927  928  929  930  931  932  933  934  935  936  937  938  939  940  941  942  943  944  945  946  947  948  949  950 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 951  952  953  954  955  956  957  958  959  960  961  962  963  964  965  966  967  968  969  970  971  972  973  974  975 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 976  977  978  979  980  981  982  983  984  985  986  987  988  989  990  991  992  993  994  995  996  997  998  999 1000 
   1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
 [ reached getOption("max.print") -- omitted 6813 entries ]
#Part 2 linear regression 
#loading and cleaning our data (removing variables 31 and 32)
library(ISLR)
setwd( "C:/Users/mario/OneDrive/Desktop/Pgd Data Science LSE/All Modules/Machine Learning ST3189-02/Assignment")
student_mat <- read.csv("student-mat.csv", stringsAsFactors=TRUE)
fix(student_mat)
student_mat <- student_mat[-c (31:32)]
fix(student_mat)
#training and test data 
data <- student_mat
dt <- sort(sample(nrow(data), nrow(data)*.7))
train_data_math <-data[dt,]
test_data_math <-data[-dt,]
#linear regression on student math
studentmat <-
  glm(
    G3 ~ school + sex + age + address + famsize + Pstatus + Medu + Fedu + Mjob +
      Fjob + reason + guardian + traveltime + studytime + failures + schoolsup +
      famsup + paid + activities + nursery + higher + internet + romantic + famrel +
      freetime + goout + Dalc + Walc + health + absences,
    data = train_data_math
  )
summary(studentmat)

Call:
glm(formula = G3 ~ school + sex + age + address + famsize + Pstatus + 
    Medu + Fedu + Mjob + Fjob + reason + guardian + traveltime + 
    studytime + failures + schoolsup + famsup + paid + activities + 
    nursery + higher + internet + romantic + famrel + freetime + 
    goout + Dalc + Walc + health + absences, data = train_data_math)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-12.2638   -1.9382    0.5747    2.7816    8.8798  

Coefficients:
                  Estimate Std. Error t value Pr(>|t|)    
(Intercept)      12.519260   5.592784   2.238 0.026124 *  
schoolMS          0.492312   0.977125   0.504 0.614846    
sexM              1.381728   0.622543   2.219 0.027405 *  
age              -0.312930   0.267734  -1.169 0.243659    
addressU          0.229502   0.774558   0.296 0.767261    
famsizeLE3        0.413524   0.591686   0.699 0.485308    
PstatusT         -0.309014   0.854252  -0.362 0.717873    
Medu              0.568449   0.409285   1.389 0.166177    
Fedu             -0.163780   0.340152  -0.481 0.630613    
Mjobhealth        0.785001   1.459917   0.538 0.591289    
Mjobother        -0.757871   0.927197  -0.817 0.414537    
Mjobservices     -0.003451   1.011821  -0.003 0.997282    
Mjobteacher      -1.682537   1.321844  -1.273 0.204316    
Fjobhealth        1.046985   1.828371   0.573 0.567439    
Fjobother        -0.222136   1.253531  -0.177 0.859497    
Fjobservices     -0.134095   1.282644  -0.105 0.916825    
Fjobteacher       2.798164   1.554007   1.801 0.073041 .  
reasonhome        0.199092   0.688918   0.289 0.772840    
reasonother       0.936941   0.957937   0.978 0.329035    
reasonreputation  0.552185   0.728428   0.758 0.449177    
guardianmother    0.200890   0.681580   0.295 0.768450    
guardianother     0.288552   1.269144   0.227 0.820341    
traveltime       -0.251397   0.447528  -0.562 0.574822    
studytime         0.660738   0.348312   1.897 0.059052 .  
failures         -1.580488   0.440789  -3.586 0.000409 ***
schoolsupyes     -1.596833   0.850907  -1.877 0.061803 .  
famsupyes        -0.717165   0.598228  -1.199 0.231802    
paidyes           0.449249   0.591639   0.759 0.448413    
activitiesyes    -0.905042   0.548057  -1.651 0.099994 .  
nurseryyes       -0.547673   0.692534  -0.791 0.429841    
higheryes         0.718958   1.320487   0.544 0.586636    
internetyes       0.839272   0.781182   1.074 0.283758    
romanticyes      -1.430827   0.589982  -2.425 0.016051 *  
famrel            0.447406   0.291416   1.535 0.126054    
freetime          0.637623   0.304052   2.097 0.037050 *  
goout            -0.683421   0.278163  -2.457 0.014735 *  
Dalc             -0.390159   0.415094  -0.940 0.348215    
Walc              0.111500   0.321152   0.347 0.728760    
health           -0.193789   0.194965  -0.994 0.321256    
absences          0.068345   0.041793   1.635 0.103314    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for gaussian family taken to be 17.52319)

    Null deviance: 5956.8  on 275  degrees of freedom
Residual deviance: 4135.5  on 236  degrees of freedom
AIC: 1612.4

Number of Fisher Scoring iterations: 2
#validating in our test data (math students)
set.seed(300)
prediction_math_student <- predict.glm(studentmat, newdata=train_data_math, se.fit=TRUE, interval="confidence")
prediction_math_student_t <- predict.glm(studentmat, newdata=test_data_math, se.fit=TRUE, interval="confidence")
prediction_math_student$residual.scale
[1] 4.18607
prediction_math_student_t$residual.scale
[1] 4.18607
#LINEAR REGRESSION ON PORTUGESE STUDENT ON OUR TRAINING DATA 
studentport <- read.csv("student-por.csv", stringsAsFactors=TRUE)
studentport <-studentport[-c(31:32)]
fix(studentport)
#training and data set 
data <- studentport
dt <- sort(sample(nrow(data), nrow(data)*.7))
train_data_port <-data[dt,]
test_data_port <-data[-dt,]
#linear regression on portuguese students 
studentport <- glm(
  G3 ~ school + sex + age + address + famsize + Pstatus + Medu + Fedu + Mjob +
    Fjob + reason + guardian + traveltime + studytime + failures + schoolsup +
    famsup + paid + activities + nursery + higher + internet + romantic + famrel +
    freetime + goout + Dalc + Walc + health + absences,
  data = train_data_port
)
summary(studentport)

Call:
glm(formula = G3 ~ school + sex + age + address + famsize + Pstatus + 
    Medu + Fedu + Mjob + Fjob + reason + guardian + traveltime + 
    studytime + failures + schoolsup + famsup + paid + activities + 
    nursery + higher + internet + romantic + famrel + freetime + 
    goout + Dalc + Walc + health + absences, data = train_data_port)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-11.720   -1.259    0.025    1.505    8.638  

Coefficients:
                  Estimate Std. Error t value Pr(>|t|)    
(Intercept)       8.928826   2.437705   3.663 0.000282 ***
schoolMS         -1.178771   0.326248  -3.613 0.000340 ***
sexM             -0.655969   0.303323  -2.163 0.031143 *  
age               0.204634   0.121853   1.679 0.093837 .  
addressU          0.133383   0.314611   0.424 0.671814    
famsizeLE3        0.191420   0.301737   0.634 0.526175    
PstatusT         -0.383306   0.430503  -0.890 0.373785    
Medu             -0.070484   0.185250  -0.380 0.703786    
Fedu              0.343957   0.165092   2.083 0.037825 *  
Mjobhealth        1.006232   0.639095   1.574 0.116144    
Mjobother         0.148969   0.374025   0.398 0.690624    
Mjobservices      0.658989   0.450885   1.462 0.144624    
Mjobteacher       1.001839   0.593569   1.688 0.092199 .  
Fjobhealth       -1.233642   0.880788  -1.401 0.162079    
Fjobother        -1.077856   0.568139  -1.897 0.058501 .  
Fjobservices     -1.340193   0.595840  -2.249 0.025022 *  
Fjobteacher      -0.620300   0.778931  -0.796 0.426287    
reasonhome        0.126423   0.344436   0.367 0.713774    
reasonother      -0.281983   0.463014  -0.609 0.542848    
reasonreputation  0.431685   0.346268   1.247 0.213219    
guardianmother   -0.310488   0.323742  -0.959 0.338089    
guardianother    -0.043483   0.676403  -0.064 0.948774    
traveltime       -0.070673   0.193284  -0.366 0.714817    
studytime         0.507495   0.169406   2.996 0.002902 ** 
failures         -1.329406   0.269406  -4.935 1.17e-06 ***
schoolsupyes     -1.752469   0.436211  -4.017 6.99e-05 ***
famsupyes        -0.132641   0.280945  -0.472 0.637085    
paidyes          -0.632415   0.598788  -1.056 0.291511    
activitiesyes     0.095792   0.272814   0.351 0.725673    
nurseryyes       -0.269798   0.336695  -0.801 0.423410    
higheryes         1.999829   0.464804   4.303 2.11e-05 ***
internetyes      -0.030293   0.347123  -0.087 0.930501    
romanticyes      -0.526521   0.280945  -1.874 0.061620 .  
famrel            0.187938   0.139370   1.348 0.178240    
freetime          0.000497   0.131053   0.004 0.996976    
goout            -0.112437   0.128650  -0.874 0.382635    
Dalc             -0.433413   0.189473  -2.287 0.022673 *  
Walc             -0.006046   0.146647  -0.041 0.967134    
health           -0.227855   0.091399  -2.493 0.013058 *  
absences         -0.008345   0.030763  -0.271 0.786314    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for gaussian family taken to be 7.076532)

    Null deviance: 4800.0  on 453  degrees of freedom
Residual deviance: 2929.7  on 414  degrees of freedom
AIC: 2216.9

Number of Fisher Scoring iterations: 2
#validating in our test data (portuguese students)
set.seed(250)
prediction_port_student <- predict.glm(studentport, newdata=train_data_port, se.fit=TRUE, interval="confidence")
prediction_port_student_t <- predict.glm(studentport, newdata=test_data_port, se.fit=TRUE, interval="confidence")
prediction_port_student$residual.scale
[1] 2.660175
prediction_port_student_t$residual.scale
[1] 2.660175
#WE WILL NOW TRY BOOSTED TREES 
library(gbm)
student_mat <- read.csv("student-mat.csv", stringsAsFactors=TRUE)
student_mat <- student_mat[-c (31:32)]
fix(student_mat)
#set training and test data sets 
data <- student_mat
dt <- sort(sample(nrow(data), nrow(data)*.7))
train_data_mat <-data[dt,]
test_data_mat <-data[-dt,]
#run the boosted tree function
set.seed(15)
treestudentmat <-
  gbm(
    G3 ~ school + sex + age + address + famsize + Pstatus + Medu + Fedu + Mjob +
      Fjob + reason + guardian + traveltime + studytime + failures + schoolsup +
      famsup + paid + activities + nursery + higher + internet + romantic + famrel +
      freetime + goout + Dalc + Walc + health + absences,
    data = train_data_mat, distribution="gaussian", n.trees=8000, interaction.depth=4
  )
summary(treestudentmat)

#validating the data 
set.seed(23)
prediction_boosted_tree<- predict(treestudentmat, newdata=train_data_math, n.trees = 10000)
Number of trees not specified or exceeded number fit so far. Using 8000.
prediction_boosted_tree_t <- predict(treestudentmat, newdata=test_data_math, n.trees= 10000)
Number of trees not specified or exceeded number fit so far. Using 8000.
mean ((prediction_boosted_tree)^2)
[1] 132.039
mean((prediction_boosted_tree_t)^2)
[1] 114.67
#our model perform slighlt worse in the validation set. lets see if changing the lambda value (shrinkage value) improves performance
#run the boosted tree function with a different lambda value 
set.seed(19)
treestudentmat <-
  gbm(
    G3 ~ school + sex + age + address + famsize + Pstatus + Medu + Fedu + Mjob +
      Fjob + reason + guardian + traveltime + studytime + failures + schoolsup +
      famsup + paid + activities + nursery + higher + internet + romantic + famrel +
      freetime + goout + Dalc + Walc + health + absences,
    data = train_data_mat, distribution="gaussian", n.trees=8000, interaction.depth=4, shrinkage = 0.2
  )
#re-test on the validation set 
set.seed(60)
prediction_boosted_tree<- predict(treestudentmat, newdata=train_data_math, n.trees = 10000)
Number of trees not specified or exceeded number fit so far. Using 8000.
prediction_boosted_tree_t <- predict(treestudentmat, newdata=test_data_math, n.trees= 10000)
Number of trees not specified or exceeded number fit so far. Using 8000.
mean ((prediction_boosted_tree)^2)
[1] 132.9829
mean((prediction_boosted_tree_t)^2)
[1] 109.8956
#lets see if we can fit a Ridge Regression first and a Lasso later. 
library(plyr)
library(readr)
library(dplyr)
library(caret)
library(ggplot2)
library(repr)
setwd(
  "C:/Users/mario/OneDrive/Desktop/Pgd Data Science LSE/All Modules/Machine Learning ST3189-02/Assignment"
)
student_mat <- read.csv("student-mat.csv", stringsAsFactors=TRUE)
library(glmnet)
fix(student_mat)
student_mat <- student_mat[-c(31:32)]
data <- student_mat
dt <- sort(sample(nrow(data), nrow(data)*.7))
train_data_mat <-data[dt,]
test_data_mat <-data[-dt,]
#fitting a Ridge Regression 
#we start preparing a grid with our x (only our predictors), and our y (our dependent variable)
x <- model.matrix(G3~.,train_data_mat)[,-1]
y=train_data_mat%>%select(G3)%>% unlist()%>% as.numeric() #here we transfrom qualitative variables into dummy variables 
#we prepare the grid to cover all scenarios (from a null model to a least square fit -when lambda si really big-)
grid <-10^seq(10,-2 ,length=100)#here we are creating a grid with values from 10 to the 10th to 10 to the minuse 2, lenght=100
#ri fwe choose lambda zero a ridge will be choosen, lambda equals 1 will be a Lasso fittes 
ridge_regression_student_math <- glmnet(x,y, alpha=0, lambda=grid) #remember that lambda is our shrinkage coefficient 
dim(coef(ridge_regression_student_math))
[1]  40 100
coef(ridge_regression_student_math)
40 x 100 sparse Matrix of class "dgCMatrix"
   [[ suppressing 56 column names 㤼㸱s0㤼㸲, 㤼㸱s1㤼㸲, 㤼㸱s2㤼㸲 ... ]]
   [[ suppressing 56 column names 㤼㸱s0㤼㸲, 㤼㸱s1㤼㸲, 㤼㸱s2㤼㸲 ... ]]
                                                                                                                           
(Intercept)  1.009058e+01  1.009058e+01  1.009058e+01  1.009058e+01  1.009058e+01  1.009058e+01  1.009058e+01  1.009058e+01
schoolMS    -8.498804e-10 -1.123492e-09 -1.485190e-09 -1.963334e-09 -2.595412e-09 -3.430982e-09 -4.535556e-09 -5.995738e-09
sexM         4.867438e-10  6.434467e-10  8.505986e-10  1.124441e-09  1.486445e-09  1.964993e-09  2.597605e-09  3.433881e-09
age         -4.225310e-10 -5.585611e-10 -7.383849e-10 -9.761013e-10 -1.290349e-09 -1.705765e-09 -2.254921e-09 -2.980872e-09
addressU     7.672038e-10  1.014198e-09  1.340710e-09  1.772340e-09  2.342929e-09  3.097215e-09  4.094336e-09  5.412471e-09
famsizeLE3   2.272078e-10  3.003554e-10  3.970521e-10  5.248795e-10  6.938598e-10  9.172419e-10  1.212540e-09  1.602906e-09
PstatusT    -3.231438e-10 -4.271770e-10 -5.647029e-10 -7.465040e-10 -9.868344e-10 -1.304537e-09 -1.724521e-09 -2.279715e-09
Medu         4.115921e-10  5.441005e-10  7.192688e-10  9.508311e-10  1.256943e-09  1.661604e-09  2.196543e-09  2.903701e-09
Fedu         2.569265e-10  3.396417e-10  4.489864e-10  5.935336e-10  7.846165e-10  1.037217e-09  1.371140e-09  1.812566e-09
                                                                                                                           
(Intercept)  1.009058e+01  1.009058e+01  1.009058e+01  1.009058e+01  1.009058e+01  1.009058e+01  1.009058e+01  1.009058e+01
schoolMS    -7.926013e-09 -1.047772e-08 -1.385093e-08 -1.831012e-08 -2.420490e-08 -3.199745e-08 -4.229874e-08 -5.591645e-08
sexM         4.539389e-09  6.000805e-09  7.932711e-09  1.048658e-08  1.386264e-08  1.832559e-08  2.422535e-08  3.202449e-08
age         -3.940538e-09 -5.209159e-09 -6.886202e-09 -9.103153e-09 -1.203383e-08 -1.590802e-08 -2.102946e-08 -2.779971e-08
addressU     7.154968e-09  9.458447e-09  1.250351e-08  1.652890e-08  2.185024e-08  2.888473e-08  3.818391e-08  5.047688e-08
famsizeLE3   2.118948e-09  2.801124e-09  3.702921e-09  4.895044e-09  6.470960e-09  8.554228e-09  1.130819e-08  1.494876e-08
PstatusT    -3.013650e-09 -3.983867e-09 -5.266438e-09 -6.961921e-09 -9.203250e-09 -1.216616e-08 -1.608294e-08 -2.126070e-08
Medu         3.838521e-09  5.074299e-09  6.707925e-09  8.867482e-09  1.172229e-08  1.549618e-08  2.048503e-08  2.708001e-08
Fedu         2.396105e-09  3.167510e-09  4.187262e-09  5.535314e-09  7.317359e-09  9.673118e-09  1.278729e-08  1.690405e-08
                                                                                                                           
(Intercept)  1.009058e+01  1.009058e+01  1.009058e+01  1.009058e+01  1.009058e+01  1.009058e+01  1.009058e+01  1.009058e+01
schoolMS    -7.391825e-08 -9.771557e-08 -1.291742e-07 -1.707607e-07 -2.257356e-07 -2.984091e-07 -3.944792e-07 -5.214782e-07
sexM         4.233449e-08  5.596371e-08  7.398073e-08  9.779817e-08  1.292834e-07  1.709051e-07  2.259265e-07  2.986615e-07
age         -3.674958e-08 -4.858079e-08 -6.422094e-08 -8.489630e-08 -1.122279e-07 -1.483587e-07 -1.961214e-07 -2.592609e-07
addressU     6.672746e-08  8.820978e-08  1.166081e-07  1.541491e-07  2.037760e-07  2.693798e-07  3.561042e-07  4.707488e-07
famsizeLE3   1.976138e-08  2.612338e-08  3.453357e-08  4.565134e-08  6.034839e-08  7.977702e-08  1.054605e-07  1.394126e-07
PstatusT    -2.810540e-08 -3.715368e-08 -4.911498e-08 -6.492710e-08 -8.582981e-08 -1.134619e-07 -1.499900e-07 -1.982779e-07
Medu         3.579817e-08  4.732308e-08  6.255832e-08  8.269841e-08  1.093224e-07  1.445178e-07  1.910440e-07  2.525489e-07
Fedu         2.234615e-08  2.954030e-08  3.905053e-08  5.162250e-08  6.824190e-08  9.021176e-08  1.192546e-07  1.576475e-07
                                                                                                                           
(Intercept)  1.009058e+01  1.009058e+01  1.009059e+01  1.009059e+01  1.009059e+01  1.009059e+01  1.009060e+01  1.009060e+01
schoolMS    -6.893633e-07 -9.112973e-07 -1.204681e-06 -1.592516e-06 -2.105210e-06 -2.782960e-06 -3.678903e-06 -4.863282e-06
sexM         3.948129e-07  5.219195e-07  6.899469e-07  9.120692e-07  1.205702e-06  1.593867e-06  2.106999e-06  2.785329e-06
age         -3.427276e-07 -4.530656e-07 -5.989258e-07 -7.917442e-07 -1.046639e-06 -1.383593e-06 -1.829027e-06 -2.417862e-06
addressU     6.223020e-07  8.226464e-07  1.087490e-06  1.437597e-06  1.900417e-06  2.512236e-06  3.321024e-06  4.390191e-06
famsizeLE3   1.842953e-07  2.436275e-07  3.220612e-07  4.257460e-07  5.628112e-07  7.440033e-07  9.835286e-07  1.300167e-06
PstatusT    -2.621117e-07 -3.464962e-07 -4.580475e-07 -6.055117e-07 -8.004505e-07 -1.058148e-06 -1.398808e-06 -1.849141e-06
Medu         3.338546e-07  4.413360e-07  5.834199e-07  7.712463e-07  1.019541e-06  1.347772e-06  1.781673e-06  2.355262e-06
Fedu         2.084007e-07  2.754933e-07  3.641856e-07  4.814315e-07  6.364233e-07  8.413128e-07  1.112164e-06  1.470211e-06
                                                                                                                           
(Intercept)  1.009061e+01  1.009062e+01  1.009063e+01  1.009065e+01  1.009067e+01  1.009069e+01  1.009073e+01  1.009078e+01
schoolMS    -6.428953e-06 -8.498663e-06 -1.123467e-05 -1.485147e-05 -1.963259e-05 -2.595281e-05 -3.430752e-05 -4.535155e-05
sexM         3.682042e-06  4.867444e-06  6.434476e-06  8.506003e-06  1.124444e-05  1.486450e-05  1.965002e-05  2.597621e-05
age         -3.196265e-06 -4.225263e-06 -5.585528e-06 -7.383705e-06 -9.760762e-06 -1.290305e-05 -1.705688e-05 -2.254787e-05
addressU     5.803562e-06  7.671944e-06  1.014182e-05  1.340682e-05  1.772290e-05  2.342842e-05  3.097062e-05  4.094069e-05
famsizeLE3   1.718744e-06  2.272079e-06  3.003555e-06  3.970524e-06  5.248800e-06  6.938607e-06  9.172433e-06  1.212542e-05
PstatusT    -2.444452e-06 -3.231417e-06 -4.271735e-06 -5.646967e-06 -7.464931e-06 -9.868154e-06 -1.304504e-05 -1.724463e-05
Medu         3.113509e-06  4.115861e-06  5.440900e-06  7.192505e-06  9.507990e-06  1.256887e-05  1.661506e-05  2.196372e-05
Fedu         1.943524e-06  2.569212e-06  3.396324e-06  4.489701e-06  5.935051e-06  7.845667e-06  1.037130e-05  1.370988e-05
                                                                                                                           
(Intercept)  1.009085e+01  1.009093e+01  1.009104e+01  1.009119e+01  1.009139e+01  1.009165e+01  1.009200e+01 10.0924525123
schoolMS    -5.995037e-05 -7.924788e-05 -1.047558e-04 -1.384719e-04 -1.830358e-04 -2.419347e-04 -3.197749e-04 -0.0004226386
sexM         3.433908e-05  4.539436e-05  6.000888e-05  7.932856e-05  1.048683e-04  1.386308e-04  1.832636e-04  0.0002422670
age         -2.980638e-05 -3.940128e-05 -5.208444e-05 -6.884951e-05 -9.100969e-05 -1.203002e-04 -1.590135e-04 -0.0002101781
addressU     5.412005e-05  7.154154e-05  9.457025e-05  1.250102e-04  1.652456e-04  2.184265e-04  2.887147e-04  0.0003816075
famsizeLE3   1.602911e-05  2.118956e-05  2.801138e-05  3.702945e-05  4.895086e-05  6.471034e-05  8.554357e-05  0.0001130841
PstatusT    -2.279614e-05 -3.013472e-05 -3.983558e-05 -5.265897e-05 -6.960976e-05 -9.201597e-05 -1.216327e-04 -0.0001607789
Medu         2.903402e-05  3.837999e-05  5.073387e-05  6.706331e-05  8.864697e-05  1.171742e-04  1.548767e-04  0.0002047017
Fedu         1.812300e-05  2.395641e-05  3.166699e-05  4.185845e-05  5.532837e-05  7.313032e-05  9.665557e-05  0.0001277408
                                                                                                                                 
(Intercept) 10.0930551377 10.0938515441 10.0949039464 10.0962944615 10.0981314206 10.1005576427 10.1037612489 10.107989745 ......
schoolMS    -0.0005585551 -0.0007381179 -0.0009752959 -0.0012884936 -0.0017019336 -0.0022474493 -0.0029667978 -0.003914615 ......
sexM         0.0003202684  0.0004233859  0.0005597086  0.0007399319  0.0009781988  0.0012932121  0.0017097077  0.002260405 ......
age         -0.0002777935 -0.0003671400 -0.0004851863 -0.0006411236 -0.0008470667 -0.0011189677 -0.0014778060 -0.001951125 ......
addressU     0.0005043641  0.0006665676  0.0008808626  0.0011639239  0.0015377230  0.0020311811  0.0026823142  0.003541002 ......
famsizeLE3   0.0001494915  0.0001976206  0.0002612456  0.0003453561  0.0004565488  0.0006035449  0.0007978749  0.001054784 ......
PstatusT    -0.0002125188 -0.0002808999 -0.0003712675 -0.0004906793 -0.0006484491 -0.0008568621 -0.0011321110 -0.001495519 ......
Medu         0.0002705405  0.0003575282  0.0004724385  0.0006241993  0.0008245673  0.0010890043  0.0014378118  0.001897587 ......
Fedu         0.0001688097  0.0002230584  0.0002946987  0.0003892753  0.0005140770  0.0006786688  0.0008955723  0.001181127 ......

 ..............................
 ........suppressing 44 columns and 23 rows in show(); maybe adjust 'options(max.print= *, width = *)'
 ..............................
   [[ suppressing 56 column names 㤼㸱s0㤼㸲, 㤼㸱s1㤼㸲, 㤼㸱s2㤼㸲 ... ]]
                                                                                                                           
romanticyes -5.634368e-10 -7.448303e-10 -9.846218e-10 -1.301612e-09 -1.720654e-09 -2.274604e-09 -3.006893e-09 -3.974935e-09
famrel       1.061341e-10  1.403030e-10  1.854724e-10  2.451836e-10  3.241182e-10  4.284652e-10  5.664058e-10  7.487552e-10
freetime    -8.985953e-11 -1.187890e-10 -1.570321e-10 -2.075872e-10 -2.744180e-10 -3.627645e-10 -4.795533e-10 -6.339412e-10
goout       -3.882777e-10 -5.132803e-10 -6.785264e-10 -8.969720e-10 -1.185744e-09 -1.567484e-09 -2.072122e-09 -2.739223e-09
Dalc        -2.238065e-10 -2.958590e-10 -3.911082e-10 -5.170220e-10 -6.834726e-10 -9.035106e-10 -1.194388e-09 -1.578910e-09
Walc        -1.669411e-10 -2.206863e-10 -2.917343e-10 -3.856556e-10 -5.098140e-10 -6.739442e-10 -8.909145e-10 -1.177737e-09
health      -5.076823e-11 -6.711262e-11 -8.871893e-11 -1.172812e-10 -1.550388e-10 -2.049522e-10 -2.709348e-10 -3.581598e-10
absences     3.626904e-11  4.794554e-11  6.338118e-11  8.378620e-11  1.107604e-10  1.464188e-10  1.935570e-10  2.558709e-10
                                                                                                                           
romanticyes -5.254630e-09 -6.946312e-09 -9.182615e-09 -1.213888e-08 -1.604688e-08 -2.121303e-08 -2.804238e-08 -3.707038e-08
famrel       9.898103e-10  1.308471e-09  1.729722e-09  2.286590e-09  3.022738e-09  3.995881e-09  5.282320e-09  6.982915e-09
freetime    -8.380330e-10 -1.107830e-09 -1.464486e-09 -1.935965e-09 -2.559231e-09 -3.383153e-09 -4.472330e-09 -5.912156e-09
goout       -3.621091e-09 -4.786870e-09 -6.327960e-09 -8.365190e-09 -1.105829e-08 -1.461841e-08 -1.932467e-08 -2.554608e-08
Dalc        -2.087227e-09 -2.759191e-09 -3.647488e-09 -4.821764e-09 -6.374088e-09 -8.426170e-09 -1.113890e-08 -1.472497e-08
Walc        -1.556898e-09 -2.058128e-09 -2.720724e-09 -3.596637e-09 -4.754543e-09 -6.285225e-09 -8.308698e-09 -1.098361e-08
health      -4.734662e-10 -6.258945e-10 -8.273957e-10 -1.093768e-09 -1.445897e-09 -1.911391e-09 -2.526747e-09 -3.340211e-09
absences     3.382463e-10  4.471417e-10  5.910950e-10  7.813929e-10  1.032955e-09  1.365506e-09  1.805119e-09  2.386261e-09
                                                                                                                           
romanticyes -4.900485e-08 -6.478153e-08 -8.563737e-08 -1.132076e-07 -1.496537e-07 -1.978334e-07 -2.615241e-07 -3.457194e-07
famrel       9.231003e-09  1.220284e-08  1.613144e-08  2.132481e-08  2.819015e-08  3.726571e-08  4.926307e-08  6.512288e-08
freetime    -7.815522e-09 -1.033166e-08 -1.365785e-08 -1.805487e-08 -2.386747e-08 -3.155138e-08 -4.170906e-08 -5.513690e-08
goout       -3.377042e-08 -4.464250e-08 -5.901476e-08 -7.801403e-08 -1.031300e-07 -1.363317e-07 -1.802225e-07 -2.382435e-07
Dalc        -1.946554e-08 -2.573230e-08 -3.401659e-08 -4.496792e-08 -5.944494e-08 -7.858270e-08 -1.038817e-07 -1.373254e-07
Walc        -1.451968e-08 -1.919417e-08 -2.537356e-08 -3.354235e-08 -4.434100e-08 -5.861619e-08 -7.748713e-08 -1.024334e-07
health      -4.415562e-09 -5.837113e-09 -7.716320e-09 -1.020052e-08 -1.348449e-08 -1.782570e-08 -2.356452e-08 -3.115091e-08
absences     3.154496e-09  4.170059e-09  5.512572e-09  7.287296e-09  9.633377e-09  1.273476e-08  1.683460e-08  2.225435e-08
                                                                                                                           
romanticyes -4.570207e-07 -6.041543e-07 -7.986562e-07 -1.055776e-06 -1.395673e-06 -1.844997e-06 -2.438976e-06 -3.224179e-06
famrel       8.608860e-08  1.138040e-07  1.504422e-07  1.988757e-07  2.629018e-07  3.475405e-07  4.594277e-07  6.073358e-07
freetime    -7.288771e-08 -9.635320e-08 -1.273732e-07 -1.683797e-07 -2.225877e-07 -2.942474e-07 -3.889768e-07 -5.142029e-07
goout       -3.149439e-07 -4.163372e-07 -5.503731e-07 -7.275606e-07 -9.617918e-07 -1.271431e-06 -1.680756e-06 -2.221858e-06
Dalc        -1.815361e-07 -2.399799e-07 -3.172391e-07 -4.193711e-07 -5.543834e-07 -7.328612e-07 -9.687976e-07 -1.280690e-06
Walc        -1.354109e-07 -1.790051e-07 -2.366341e-07 -3.128160e-07 -4.135239e-07 -5.466534e-07 -7.226421e-07 -9.552878e-07
health      -4.117967e-08 -5.443710e-08 -7.196264e-08 -9.513037e-08 -1.257567e-07 -1.662430e-07 -2.197634e-07 -2.905142e-07
absences     2.941894e-08  3.889011e-08  5.141044e-08  6.796157e-08  8.984121e-08  1.187648e-07  1.570001e-07  2.075449e-07
                                                                                                                           
romanticyes -4.262169e-06 -5.634327e-06 -7.448231e-06 -9.846092e-06 -1.301590e-05 -1.720616e-05 -2.274537e-05 -3.006776e-05
famrel       8.028610e-07  1.061333e-06  1.403016e-06  1.854699e-06  2.451793e-06  3.241107e-06  4.284521e-06  5.663829e-06
freetime    -6.797432e-07 -8.985757e-07 -1.187856e-06 -1.570261e-06 -2.075767e-06 -2.743998e-06 -3.627326e-06 -4.794976e-06
goout       -2.937162e-06 -3.882747e-06 -5.132751e-06 -6.785172e-06 -8.969559e-06 -1.185716e-05 -1.567435e-05 -2.072036e-05
Dalc        -1.692992e-06 -2.238026e-06 -2.958523e-06 -3.910965e-06 -5.170016e-06 -6.834369e-06 -9.034482e-06 -1.194279e-05
Walc        -1.262830e-06 -1.669379e-06 -2.206806e-06 -2.917244e-06 -3.856383e-06 -5.097837e-06 -6.738912e-06 -8.908220e-06
health      -3.840425e-07 -5.076814e-07 -6.711245e-07 -8.871865e-07 -1.172807e-06 -1.550380e-06 -2.049507e-06 -2.709322e-06
absences     2.743621e-07  3.626907e-07  4.794558e-07  6.338125e-07  8.378632e-07  1.107606e-06  1.464191e-06  1.935576e-06
                                                                                                                           
romanticyes -3.974731e-05 -5.254273e-05 -6.945688e-05 -9.181526e-05 -1.213697e-04 -1.604355e-04 -2.120722e-04 -2.803222e-04
famrel       7.487152e-06  9.897404e-06  1.308349e-05  1.729508e-05  2.286217e-05  3.022086e-05  3.994742e-05  5.280330e-05
freetime    -6.338439e-06 -8.378629e-06 -1.107533e-05 -1.463967e-05 -1.935058e-05 -2.557646e-05 -3.380384e-05 -4.467490e-05
goout       -2.739073e-05 -3.620829e-05 -4.786412e-05 -6.327160e-05 -8.363793e-05 -1.105585e-04 -1.461414e-04 -1.931722e-04
Dalc        -1.578720e-05 -2.086894e-05 -2.758609e-05 -3.646471e-05 -4.819987e-05 -6.370983e-05 -8.420743e-05 -1.112942e-04
Walc        -1.177575e-05 -1.556616e-05 -2.057634e-05 -2.719861e-05 -3.595129e-05 -4.751908e-05 -6.280621e-05 -8.300654e-05
health      -3.581552e-06 -4.734582e-06 -6.258804e-06 -8.273711e-06 -1.093725e-05 -1.445822e-05 -1.911260e-05 -2.526518e-05
absences     2.558721e-06  3.382483e-06  4.471452e-06  5.911011e-06  7.814034e-06  1.032974e-05  1.365538e-05  1.805175e-05
                                                                                                                                  
romanticyes -3.705262e-04 -4.897383e-04 -6.472733e-04 -8.554269e-04 -1.130422e-03 -1.493648e-03 -0.0019732890 -0.0026064324 ......
famrel       6.979439e-05  9.224929e-05  1.219223e-04  1.611290e-04  2.129242e-04  2.813356e-04  0.0003716688  0.0004909048 ......
freetime    -5.903701e-05 -7.800751e-05 -1.030586e-04 -1.361278e-04 -1.797616e-04 -2.373006e-04 -0.0003131154 -0.0004129061 ......
goout       -2.553305e-04 -3.374765e-04 -4.460273e-04 -5.894529e-04 -7.789269e-04 -1.029180e-03 -0.0013596172 -0.0017957663 ......
Dalc        -1.470841e-04 -1.943661e-04 -2.568176e-04 -3.392831e-04 -4.481376e-04 -5.917581e-04 -0.0007811301 -0.0010306231 ......
Walc        -1.096956e-04 -1.449513e-04 -1.915129e-04 -2.529867e-04 -3.341158e-04 -4.411272e-04 -0.0005821781 -0.0007679225 ......
health      -3.339810e-05 -4.414862e-05 -5.835889e-05 -7.714179e-05 -1.019678e-04 -1.347794e-04 -0.0001781425 -0.0002354448 ......
absences     2.386358e-05  3.154667e-05  4.170355e-05  5.513089e-05  7.288194e-05  9.634938e-05  0.0001273746  0.0001683928 ......
plot(ridge_regression_student_math)

#choose the best lambda value 
ridge_regression_student_math_cv<- cv.glmnet(x,y, alpha=0, lambda=grid)
best_lambda <- ridge_regression_student_math_cv$lambda.min
best_lambda
[1] 2.656088
#we now run the ridge regression again using lambda=3.51
ridge_regression_student_math <- glmnet(x,y, alpha=0, lambda=3.5)
plot(ridge_regression_student_math)

summary(ridge_regression_student_math)
          Length Class     Mode   
a0         1     -none-    numeric
beta      39     dgCMatrix S4     
df         1     -none-    numeric
dim        2     -none-    numeric
lambda     1     -none-    numeric
dev.ratio  1     -none-    numeric
nulldev    1     -none-    numeric
npasses    1     -none-    numeric
jerr       1     -none-    numeric
offset     1     -none-    logical
call       5     -none-    call   
nobs       1     -none-    numeric
coefficients(ridge_regression_student_math)
40 x 1 sparse Matrix of class "dgCMatrix"
                           s0
(Intercept)      13.611831455
schoolMS         -0.100443994
sexM              0.918766885
age              -0.329490607
addressU          0.556802965
famsizeLE3        0.354894827
PstatusT         -0.280385142
Medu              0.231295772
Fedu             -0.004771552
Mjobhealth        0.624657321
Mjobother        -0.198021591
Mjobservices      0.433636689
Mjobteacher      -0.509818701
Fjobhealth        0.436712179
Fjobother        -0.188281400
Fjobservices     -0.131108888
Fjobteacher       0.706416612
reasonhome        0.142523882
reasonother       0.543637738
reasonreputation  0.484313174
guardianmother    0.151024483
guardianother    -0.173285659
traveltime       -0.082088629
studytime         0.361379694
failures         -1.142026997
schoolsupyes     -0.714707804
famsupyes        -0.582411726
paidyes           0.393244592
activitiesyes    -0.103623002
nurseryyes        0.037809129
higheryes         1.446946410
internetyes       0.262335815
romanticyes      -0.587383718
famrel            0.088127790
freetime          0.038629095
goout            -0.399807952
Dalc             -0.131123111
Walc             -0.048696245
health           -0.069501007
absences          0.066528065
#fitting a Lasso 
student_mat <- read.csv("student-mat.csv", stringsAsFactors=TRUE)
fix(student_mat)
student_mat <- student_mat[-c(31:32)]
data <- student_mat
set.seed(99)
dt <- sort(sample(nrow(data), nrow(data)*.7))
train_data_mat <-data[dt,]
test_data_mat <-data[-dt,]
#we start preparing a grid with our x (only our predictors), and our y (our dependent variable)
x <- model.matrix(G3~.,train_data_mat)[,-1]
y=train_data_mat%>%select(G3)%>% unlist()%>% as.numeric() #here we transfrom qualitative variables into dummy variables 
#we prepare the grid to cover all scenarios (from a null model to a least square fit -when lambda si really big-)
grid <-10^seq(10,-2 ,length=100)#here we are creating a grid with values from 10 to the 10th to 10 to the minuse 2, lenght=100
#ri fwe choose lambda zero a ridge will be choosen, lambda equals 1 will be a Lasso fittes 
set.seed(33)
lasso_student_math <- glmnet(x,y, alpha=1)
lasso_student_math_best_lambda <- cv.glmnet(x,y, alpha=1, standardize=TRUE, nfolds=5)
lasso_student_math_best_lambda$lambda.min
[1] 0.203589
lasso_student_math <- glmnet(x,y, alpha=1,lambda=0.203589)
plot(lasso_student_math)

coefficients(lasso_student_math)
40 x 1 sparse Matrix of class "dgCMatrix"
                          s0
(Intercept)       8.57316276
schoolMS          .         
sexM              0.92214464
age               .         
addressU          .         
famsizeLE3        0.03372335
PstatusT          .         
Medu              0.09778059
Fedu              .         
Mjobhealth        1.53206982
Mjobother        -0.01464233
Mjobservices      0.48957106
Mjobteacher       .         
Fjobhealth        0.03803492
Fjobother         .         
Fjobservices      .         
Fjobteacher       1.63701332
reasonhome        .         
reasonother       .         
reasonreputation  .         
guardianmother   -0.12263303
guardianother     .         
traveltime        .         
studytime         0.58225815
failures         -1.23431556
schoolsupyes     -0.47832953
famsupyes        -0.09629106
paidyes           .         
activitiesyes     .         
nurseryyes        .         
higheryes         1.46544130
internetyes       .         
romanticyes      -0.30137048
famrel            .         
freetime          .         
goout            -0.39434155
Dalc              .         
Walc              .         
health            .         
absences          0.02052302
prediction_lasso_math <- predict(lasso_student_math, type="coefficients")
prediction_lasso_math[prediction_lasso_math!=0]
<sparse>[ <logic> ] : .M.sub.i.logical() maybe inefficient
 [1]  8.57316276  0.92214464  0.03372335  0.09778059  1.53206982 -0.01464233  0.48957106  0.03803492  1.63701332 -0.12263303
[11]  0.58225815 -1.23431556 -0.47832953 -0.09629106  1.46544130 -0.30137048 -0.39434155  0.02052302
summary(lasso_student_math)
          Length Class     Mode   
a0         1     -none-    numeric
beta      39     dgCMatrix S4     
df         1     -none-    numeric
dim        2     -none-    numeric
lambda     1     -none-    numeric
dev.ratio  1     -none-    numeric
nulldev    1     -none-    numeric
npasses    1     -none-    numeric
jerr       1     -none-    numeric
offset     1     -none-    logical
call       5     -none-    call   
nobs       1     -none-    numeric
#Part 3: Classification Problems 

#Assignment 3 Linear Discrminant Analysis 
#LDA determines group means and computes, for each individual, the probability of belonging 
#to the different groups.The individual is then affected to the group with the highest probability score.
library(MASS)

Attaching package: 㤼㸱MASS㤼㸲

The following object is masked from 㤼㸱package:dplyr㤼㸲:

    select
library(factoextra)
library(cluster)
library(dplyr)
library(gridExtra)
library(ISLR)
library(glmnet)
library(caret)
setwd(
  "C:/Users/mario/OneDrive/Desktop/Pgd Data Science LSE/All Modules/Machine Learning ST3189-02/Assignment"
)
bank_data <- read.csv("bank.csv", stringsAsFactors = TRUE)
fix(bank_data)
set.seed(2)
data <- bank_data
dt <- sort(sample(nrow(data), nrow(data) * .7))
train_data <- data[dt, ]
test_data <- data[-dt, ]
#Now that we have our data sorted out on training and test data, we can start our discriminant analysis 
disc_analysis <-
  lda(
    y ~ age + job + marital + education + default + balance + housing + loan +
      contact + day + month + duration + campaign + pdays + previous + poutcome,
    data = train_data,
    
  )
names(disc_analysis)
 [1] "prior"   "counts"  "means"   "scaling" "lev"     "svd"     "N"       "call"    "terms"   "xlevels"
disc_analysis
Call:
lda(y ~ age + job + marital + education + default + balance + 
    housing + loan + contact + day + month + duration + campaign + 
    pdays + previous + poutcome, data = train_data, )

Prior probabilities of groups:
       no       yes 
0.8814791 0.1185209 

Group means:
         age jobblue-collar jobentrepreneur jobhousemaid jobmanagement jobretired jobself-employed jobservices jobstudent
no  40.95375      0.2108283      0.04015776   0.02187164     0.2097526 0.04302617       0.04266762  0.09896020 0.01756902
yes 42.56000      0.1333333      0.03733333   0.02666667     0.2453333 0.10133333       0.04266667  0.07733333 0.02933333
    jobtechnician jobunemployed  jobunknown maritalmarried maritalsingle educationsecondary educationtertiary
no      0.1749731    0.02689136 0.007888132      0.6242381     0.2631768          0.5166726         0.2911438
yes     0.1573333    0.02400000 0.010666667      0.5413333     0.3173333          0.4720000         0.3706667
    educationunknown defaultyes  balance housingyes  loanyes contacttelephone contactunknown      day  monthaug    monthdec
no        0.03944066 0.01792757 1369.168  0.5779849 0.167085       0.06525636      0.3108641 16.01721 0.1376838 0.003585515
yes       0.03733333 0.01866667 1594.747  0.4160000 0.080000       0.09600000      0.1200000 15.48533 0.1493333 0.021333333
      monthfeb   monthjan  monthjul  monthjun    monthmar  monthmay   monthnov   monthoct    monthsep duration campaign
no  0.04410183 0.03191108 0.1674435 0.1229831 0.006453926 0.3155253 0.08605235 0.01111510 0.008605235 223.7368 2.897813
yes 0.06933333 0.02933333 0.1173333 0.0960000 0.042666667 0.1893333 0.08266667 0.06933333 0.029333333 547.8907 2.362667
       pdays  previous poutcomeother poutcomesuccess poutcomeunknown
no  36.10577 0.4503406    0.03872356       0.0118322        0.843313
yes 56.70400 0.9920000    0.08266667       0.1493333        0.664000

Coefficients of linear discriminants:
                             LD1
age                -1.885300e-04
jobblue-collar     -2.109502e-01
jobentrepreneur    -1.068415e-01
jobhousemaid       -1.190944e-01
jobmanagement      -6.562418e-02
jobretired          2.675079e-01
jobself-employed   -1.032107e-01
jobservices        -8.737002e-02
jobstudent         -7.487148e-02
jobtechnician      -1.268012e-01
jobunemployed      -3.131836e-01
jobunknown          1.850920e-01
maritalmarried     -2.397988e-01
maritalsingle      -1.553266e-01
educationsecondary -4.828095e-02
educationtertiary   9.930189e-02
educationunknown   -2.704915e-01
defaultyes          3.102467e-01
balance            -5.140304e-07
housingyes         -1.726086e-01
loanyes            -2.678419e-01
contacttelephone    8.734907e-02
contactunknown     -5.599634e-01
day                 5.485651e-03
monthaug           -3.080234e-01
monthdec            2.978553e-01
monthfeb           -7.575423e-02
monthjan           -5.818632e-01
monthjul           -5.008905e-01
monthjun            1.537084e-01
monthmar            1.527217e+00
monthmay           -1.356373e-01
monthnov           -4.279541e-01
monthoct            1.423287e+00
monthsep            7.266352e-01
duration            3.507345e-03
campaign            5.070756e-05
pdays              -2.940092e-03
previous           -1.642272e-02
poutcomeother       5.735044e-01
poutcomesuccess     2.581519e+00
poutcomeunknown    -6.546518e-01
plot(disc_analysis) 

#here we have found both the coefficients of our LDA (the ones that we will use for predicition)
disc_analysis$prior
       no       yes 
0.8814791 0.1185209 
#here we are told that prior to our prediciton, 89% of our data belong to no's and 11% to yes. 
set.seed(4)
disc_analysis_prediction <- predict(disc_analysis, data=train_data)
names(disc_analysis_prediction)
[1] "class"     "posterior" "x"        
disc_analysis_prediction$class
   [1] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes
  [30] no  no  no  no  no  no  yes yes yes no  yes no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  yes
  [59] no  no  no  no  no  no  no  no  no  no  no  no  no  yes yes no  no  no  no  no  no  no  no  no  no  no  no  no  no 
  [88] no  yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no 
 [117] no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  yes yes no  yes no 
 [146] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no 
 [175] no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  no 
 [204] no  no  yes no  no  no  no  yes no  yes yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes
 [233] no  no  no  yes no  no  no  yes no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no 
 [262] no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no 
 [291] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no 
 [320] no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  yes no  no  no  no  no  no  no 
 [349] no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  yes no  no  no  no  no 
 [378] no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no 
 [407] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no 
 [436] no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  yes no  no 
 [465] no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no 
 [494] no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no 
 [523] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no 
 [552] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no 
 [581] no  no  no  no  no  no  yes yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no 
 [610] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  yes no  no  no 
 [639] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no 
 [668] no  no  no  no  yes no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no 
 [697] no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no 
 [726] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes yes no  no  no  no  yes no 
 [755] no  yes no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  yes no  no  no  no  no  no  no  no  no  no  no 
 [784] no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  yes yes no  no  no  no  no  no  no  no  no  no  no  no 
 [813] no  no  no  no  no  no  no  no  yes no  no  no  no  no  yes no  no  no  yes no  yes no  no  no  no  no  no  yes no 
 [842] no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no 
 [871] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes
 [900] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  yes no  no 
 [929] no  no  yes no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no 
 [958] no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no 
 [987] no  no  no  yes no  no  no  no  no  no  no  no  no  no 
 [ reached getOption("max.print") -- omitted 2164 entries ]
Levels: no yes
#class will give us the prediction about the movement of the market
table(disc_analysis_prediction$class)#here we are trying to have the same result in a more ordered way 

  no  yes 
2906  258 
#here 92% of the predicitons belonged to the NO, and 8% to the YES
#Here we would change the threshold of how we aggroup our observations between yes and no. 
set.seed(45)
sum(disc_analysis_prediction$posterior[,1] >=0.5) #here we check that the no values are the same 
[1] 2906
sum(disc_analysis_prediction$posterior[,1] <=0.5) #here we chec that the yes values are the same
[1] 258
#lets see if we change the threshold 
sum(disc_analysis_prediction$posterior[,1] >=0.7)
[1] 2791
sum(disc_analysis_prediction$posterior[,1] <=0.7)
[1] 373
#even changing the threshold, the numbers does not change radically (but still have more on the yes side)

#LETS NOW TRY THE MODEL IN OUR TEST DATA 
disc_analysis <-
  lda(
    y ~ age + job + marital + education + default + balance + housing + loan +
      contact + day + month + duration + campaign + pdays + previous + poutcome,
    data = test_data,
    
  )
disc_analysis
Call:
lda(y ~ age + job + marital + education + default + balance + 
    housing + loan + contact + day + month + duration + campaign + 
    pdays + previous + poutcome, data = test_data, )

Prior probabilities of groups:
       no       yes 
0.8924097 0.1075903 

Group means:
         age jobblue-collar jobentrepreneur jobhousemaid jobmanagement jobretired jobself-employed jobservices jobstudent
no  41.09992      0.2386457     0.033856317   0.03055326     0.2089182 0.04624277       0.03633361  0.08505367 0.01321222
yes 42.31507      0.1301370     0.006849315   0.02739726     0.2671233 0.10958904       0.02739726  0.06164384 0.05479452
    jobtechnician jobunemployed  jobunknown maritalmarried maritalsingle educationsecondary educationtertiary
no      0.1626755    0.03303055 0.007431874      0.6432700     0.2436003          0.5119736         0.2848885
yes     0.1643836    0.02739726 0.020547945      0.5068493     0.3287671          0.4657534         0.3698630
    educationunknown defaultyes  balance housingyes   loanyes contacttelephone contactunknown      day  monthaug
no        0.04789430 0.01403799 1481.617  0.6003303 0.1502890       0.06193229      0.3270025 15.79108 0.1403799
yes       0.03424658 0.01369863 1513.418  0.4383562 0.0890411       0.05479452      0.1095890 16.10274 0.1575342
        monthdec   monthfeb   monthjan  monthjul  monthjun    monthmar  monthmay   monthnov    monthoct    monthsep duration
no  0.0008257638 0.05037159 0.03550784 0.1469860 0.1098266 0.008257638 0.3509496 0.09083402 0.009909166 0.009083402 232.3600
yes 0.0068493151 0.08219178 0.03424658 0.1164384 0.1301370 0.034246575 0.1506849 0.05479452 0.075342466 0.041095890 565.2055
    campaign    pdays  previous poutcomeother poutcomesuccess poutcomeunknown
no  2.780347 35.77622 0.5194055    0.04211396      0.01073493       0.8389761
yes 2.020548 99.29452 1.3424658    0.04794521      0.18493151       0.6027397

Coefficients of linear discriminants:
                             LD1
age                 5.047134e-03
jobblue-collar     -1.476100e-01
jobentrepreneur    -3.180219e-01
jobhousemaid       -4.188431e-01
jobmanagement      -2.215757e-02
jobretired          5.895759e-01
jobself-employed    4.901701e-02
jobservices        -1.238964e-01
jobstudent          1.452642e+00
jobtechnician      -8.872657e-02
jobunemployed      -4.124137e-01
jobunknown          1.860828e-01
maritalmarried     -3.114669e-01
maritalsingle      -1.758568e-01
educationsecondary  1.022972e-01
educationtertiary   1.823787e-01
educationunknown   -5.357584e-02
defaultyes          4.359624e-01
balance            -1.634923e-05
housingyes         -1.137493e-02
loanyes            -1.383595e-01
contacttelephone   -1.015590e-01
contactunknown     -4.206849e-01
day                 2.124224e-02
monthaug           -1.807145e-01
monthdec           -2.110531e-01
monthfeb            3.589018e-01
monthjan           -9.150854e-01
monthjul           -3.945153e-01
monthjun            2.429369e-01
monthmar            1.610931e+00
monthmay           -5.115734e-01
monthnov           -7.092281e-01
monthoct            1.728788e+00
monthsep            7.880860e-01
duration            2.903858e-03
campaign           -3.151815e-02
pdays               3.551347e-03
previous            2.182345e-02
poutcomeother      -2.189500e-01
poutcomesuccess     3.250864e+00
poutcomeunknown     5.204431e-01
disc_analysis$prior
       no       yes 
0.8924097 0.1075903 
#here we are told that prior to our prediciton, 88% of our data belong to no's and 12% to yes.
disc_analysis_prediction <- predict(disc_analysis, data=test_data)
disc_analysis_prediction
$class
   [1] no  no  no  no  no  yes yes no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no 
  [30] no  yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no 
  [59] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no 
  [88] no  no  no  no  no  no  no  no  no  yes no  yes no  no  no  no  no  no  no  no  yes no  no  no  no  yes no  no  yes
 [117] no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  yes no  no  yes no  no 
 [146] no  no  yes yes no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  yes no  no  no  no  no  no  no  no 
 [175] no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no  yes no 
 [204] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  yes
 [233] no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no 
 [262] no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no 
 [291] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no 
 [320] no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  yes no  no  no  no 
 [349] no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no 
 [378] no  no  no  no  no  no  no  no  no  no  yes yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no 
 [407] no  no  no  yes no  no  no  yes no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no 
 [436] no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no 
 [465] no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  yes
 [494] no  no  no  yes no  no  no  yes no  no  yes no  yes no  no  no  no  yes yes no  no  no  no  no  no  no  no  no  no 
 [523] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes yes yes no  no  no 
 [552] no  no  no  yes no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  yes no  no  no 
 [581] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no 
 [610] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no 
 [639] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no 
 [668] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no 
 [697] no  no  no  no  no  no  no  no  yes yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no 
 [726] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no 
 [755] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes
 [784] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no  no  no 
 [813] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  yes
 [842] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no 
 [871] no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no 
 [900] no  no  no  no  no  yes no  no  no  no  no  no  no  no  yes no  no  no  yes no  no  no  no  yes no  no  no  no  no 
 [929] no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  yes no  no  no  no  no  no  no  no  no 
 [958] no  no  no  no  no  yes no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  no  yes no  no  no  no  no  no 
 [987] yes no  no  no  no  no  no  no  yes no  yes no  no  no 
 [ reached getOption("max.print") -- omitted 357 entries ]
Levels: no yes

$posterior
               no          yes
1    8.857304e-01 0.1142695505
3    9.027358e-01 0.0972641511
4    9.964407e-01 0.0035593331
6    9.265291e-01 0.0734709130
19   9.972843e-01 0.0027157158
31   1.712512e-01 0.8287488414
34   2.692284e-01 0.7307716231
35   9.741875e-01 0.0258125211
39   6.208994e-01 0.3791006091
42   9.930927e-01 0.0069073140
46   9.990459e-01 0.0009540507
47   9.991879e-01 0.0008120910
48   9.942108e-01 0.0057891670
49   9.777149e-01 0.0222850791
58   9.888907e-01 0.0111093008
59   9.736922e-01 0.0263077601
62   1.266427e-01 0.8733572960
63   9.883103e-01 0.0116897465
66   9.937716e-01 0.0062283914
67   9.980326e-01 0.0019673655
74   9.968441e-01 0.0031558515
83   9.978914e-01 0.0021085946
91   9.979171e-01 0.0020829216
95   9.955013e-01 0.0044986724
96   9.854648e-01 0.0145352490
97   9.987330e-01 0.0012670238
101  9.977889e-01 0.0022110826
104  9.987588e-01 0.0012412061
106  9.650005e-01 0.0349994989
108  9.596219e-01 0.0403781228
111  2.256211e-04 0.9997743789
113  9.917066e-01 0.0082934234
119  9.975471e-01 0.0024528833
120  7.467861e-01 0.2532139418
121  8.254918e-01 0.1745082151
122  9.964339e-01 0.0035660621
125  8.919784e-01 0.1080215812
139  8.241592e-01 0.1758407650
141  9.806411e-01 0.0193588952
150  9.995153e-01 0.0004846851
151  9.989977e-01 0.0010022971
154  9.889941e-01 0.0110059020
163  9.995453e-01 0.0004547316
164  9.991971e-01 0.0008029337
166  9.619567e-01 0.0380432738
167  8.893017e-01 0.1106982880
168  9.449497e-01 0.0550502765
169  9.990751e-01 0.0009248658
174  9.969035e-01 0.0030965320
175  9.977776e-01 0.0022223676
177  9.981660e-01 0.0018340285
178  9.890117e-01 0.0109882610
180  9.986150e-01 0.0013850376
185  9.960265e-01 0.0039734832
188  9.812134e-01 0.0187865561
189  9.893316e-01 0.0106684124
190  6.868772e-01 0.3131227514
191  9.987006e-01 0.0012994315
193  9.929640e-01 0.0070360395
203  5.811795e-01 0.4188205206
208  9.989973e-01 0.0010027194
209  9.764243e-01 0.0235757043
211  9.954794e-01 0.0045206259
212  9.940195e-01 0.0059805100
216  8.776546e-01 0.1223453758
220  9.920413e-01 0.0079586591
221  9.790710e-01 0.0209289569
222  9.984839e-01 0.0015160958
223  9.992021e-01 0.0007978728
224  9.966444e-01 0.0033556497
232  9.955698e-01 0.0044301867
235  9.372136e-01 0.0627863877
240  9.968371e-01 0.0031629459
243  9.937881e-01 0.0062119490
244  9.898394e-01 0.0101606425
245  9.682806e-01 0.0317193811
246  9.974667e-01 0.0025333307
254  9.221324e-01 0.0778676274
261  9.981492e-01 0.0018507954
264  9.967815e-01 0.0032184939
266  9.927643e-01 0.0072357032
270  9.917556e-01 0.0082444126
283  9.974755e-01 0.0025244884
289  9.862355e-01 0.0137645460
295  9.942700e-01 0.0057300171
301  8.061192e-01 0.1938807771
302  5.912948e-01 0.4087052066
304  9.906993e-01 0.0093007002
307  6.919367e-01 0.3080633369
308  9.996867e-01 0.0003132534
314  9.321267e-01 0.0678732874
322  9.890666e-01 0.0109334290
325  9.969627e-01 0.0030373108
330  9.846698e-01 0.0153302067
338  9.724351e-01 0.0275649402
345  8.584745e-01 0.1415255004
348  7.120573e-03 0.9928794273
350  9.431674e-01 0.0568325519
355  6.968086e-03 0.9930319138
361  9.986942e-01 0.0013057879
364  9.953863e-01 0.0046136526
365  9.930273e-01 0.0069727491
367  9.886598e-01 0.0113401742
371  9.973455e-01 0.0026544843
372  9.323554e-01 0.0676445546
376  9.776726e-01 0.0223274428
380  9.977193e-01 0.0022806829
383  1.745890e-01 0.8254109615
385  9.972730e-01 0.0027270423
387  9.917385e-01 0.0082615128
389  9.967488e-01 0.0032511840
390  9.888706e-01 0.0111294372
393  4.652707e-01 0.5347293271
394  9.931151e-01 0.0068849065
396  9.984697e-01 0.0015303454
398  4.783827e-01 0.5216172874
409  9.967603e-01 0.0032397049
411  9.967777e-01 0.0032223460
415  9.940754e-01 0.0059246129
416  3.626186e-02 0.9637381424
418  9.972340e-01 0.0027659538
419  9.856297e-01 0.0143702507
421  9.957914e-01 0.0042085937
423  8.996308e-01 0.1003692172
433  9.672696e-01 0.0327304256
434  9.899516e-01 0.0100484485
439  9.987818e-01 0.0012182057
442  9.978720e-01 0.0021280324
447  9.983107e-01 0.0016893000
452  9.868800e-01 0.0131199847
453  9.973513e-01 0.0026486536
457  8.089812e-01 0.1910188295
465  1.393614e-02 0.9860638616
467  9.006006e-01 0.0993993778
474  5.843243e-01 0.4156757062
476  9.993347e-01 0.0006653332
477  9.995016e-01 0.0004984367
487  7.582727e-01 0.2417272566
492  9.964984e-01 0.0035015720
495  3.979806e-03 0.9960201945
502  9.922733e-01 0.0077267460
503  9.907973e-01 0.0092027399
505  4.672486e-01 0.5327514236
508  9.801903e-01 0.0198096552
511  9.808208e-01 0.0191791549
512  8.060138e-01 0.1939861608
513  9.693978e-01 0.0306022259
518  4.743357e-01 0.5256642750
527  3.260878e-02 0.9673912164
530  9.232972e-01 0.0767027539
532  9.986306e-01 0.0013693618
535  9.930189e-01 0.0069811313
538  9.948093e-01 0.0051907260
540  9.966559e-01 0.0033440915
542  8.348489e-01 0.1651511258
543  9.972505e-01 0.0027494914
545  9.903167e-01 0.0096833317
551  9.913507e-01 0.0086493248
554  9.997251e-01 0.0002748601
556  8.284035e-03 0.9917159653
558  9.261679e-01 0.0738321140
561  9.941802e-01 0.0058198282
562  8.677268e-01 0.1322732428
563  9.989063e-01 0.0010936575
566  9.943284e-01 0.0056716073
569  4.247223e-06 0.9999957528
571  9.987863e-01 0.0012136632
575  9.958460e-01 0.0041539515
580  9.620790e-01 0.0379210471
584  9.157052e-01 0.0842948112
586  9.817009e-01 0.0182990500
587  9.981996e-01 0.0018003960
589  9.969758e-01 0.0030241868
591  9.955726e-01 0.0044274116
604  9.910799e-01 0.0089201207
606  9.954550e-01 0.0045449749
607  9.968083e-01 0.0031917119
618  9.880828e-01 0.0119172361
622  9.890657e-01 0.0109342904
632  9.978367e-01 0.0021633289
635  5.602874e-01 0.4397126388
636  9.876244e-01 0.0123755640
637  9.945198e-01 0.0054801806
642  9.016349e-01 0.0983650709
648  9.938591e-01 0.0061409063
651  9.956099e-01 0.0043901269
655  9.847941e-01 0.0152059321
659  2.575572e-02 0.9742442840
661  9.942151e-01 0.0057848549
664  9.018660e-01 0.0981340391
665  9.944203e-01 0.0055797008
666  6.628655e-01 0.3371345142
669  9.293966e-01 0.0706034163
673  9.989880e-01 0.0010120029
680  9.967305e-01 0.0032694606
682  9.915878e-01 0.0084121793
684  9.764703e-01 0.0235296669
688  9.992440e-01 0.0007560099
695  9.945147e-01 0.0054852869
697  9.934930e-01 0.0065070290
698  9.963666e-01 0.0036333564
705  3.969681e-02 0.9603031863
708  9.633854e-01 0.0366146298
715  9.810831e-01 0.0189168980
718  9.945695e-01 0.0054304805
722  9.758555e-01 0.0241445426
724  9.992135e-01 0.0007864993
727  9.967670e-01 0.0032329907
728  9.109882e-01 0.0890117998
729  9.991934e-01 0.0008066238
732  9.985663e-01 0.0014337273
740  9.967454e-01 0.0032546203
742  9.679688e-01 0.0320312112
746  9.978255e-01 0.0021744781
750  9.990752e-01 0.0009247663
754  9.942414e-01 0.0057586172
756  9.978191e-01 0.0021808713
757  9.801249e-01 0.0198751144
758  9.828985e-01 0.0171015273
761  9.691832e-01 0.0308167667
762  9.942797e-01 0.0057203187
764  9.980015e-01 0.0019984927
765  9.784801e-01 0.0215199451
766  9.812919e-01 0.0187081266
769  9.912455e-01 0.0087545456
770  9.013034e-01 0.0986965574
785  9.981591e-01 0.0018408663
793  8.825028e-01 0.1174972356
794  9.934794e-01 0.0065206239
795  4.854748e-03 0.9951452520
801  9.856221e-01 0.0143779322
804  9.183676e-02 0.9081632357
806  9.963355e-01 0.0036644870
815  9.887300e-01 0.0112700086
818  9.986898e-01 0.0013102212
819  9.953169e-01 0.0046830887
832  8.322997e-01 0.1677002960
837  9.978259e-01 0.0021741035
840  9.991613e-01 0.0008386719
844  9.839250e-01 0.0160749528
845  9.986256e-01 0.0013743869
848  9.856451e-01 0.0143549110
851  9.200834e-01 0.0799166323
856  5.809905e-04 0.9994190095
859  6.062562e-01 0.3937438010
866  8.881953e-01 0.1118046861
869  9.813503e-01 0.0186496969
873  9.941278e-01 0.0058722094
876  9.611471e-01 0.0388528773
878  9.961379e-01 0.0038621431
884  9.943640e-01 0.0056359776
885  9.026664e-01 0.0973336322
888  9.993524e-01 0.0006475916
892  9.963916e-01 0.0036084026
896  9.987717e-01 0.0012283076
897  8.377000e-01 0.1622999779
908  9.919478e-01 0.0080521759
917  9.922758e-01 0.0077242444
920  9.988044e-01 0.0011956008
921  9.926010e-01 0.0073990120
926  9.974316e-01 0.0025683817
928  9.954592e-01 0.0045407892
930  9.970015e-01 0.0029985387
931  9.960769e-01 0.0039230666
935  3.423773e-01 0.6576226930
939  9.980869e-01 0.0019131029
943  9.893013e-01 0.0106987221
947  9.941296e-01 0.0058704492
948  9.986846e-01 0.0013154163
949  9.972266e-01 0.0027734222
953  9.978202e-01 0.0021797759
968  9.965881e-01 0.0034118553
970  9.875866e-01 0.0124133795
971  8.772353e-01 0.1227646721
973  9.990953e-01 0.0009046968
974  9.977411e-01 0.0022588879
975  9.873637e-01 0.0126362576
976  5.448592e-01 0.4551408201
981  1.095930e-03 0.9989040700
987  9.847107e-01 0.0152892963
988  9.972157e-01 0.0027843459
990  7.548870e-01 0.2451130055
991  9.880116e-01 0.0119883784
993  9.990958e-01 0.0009042030
995  9.983257e-01 0.0016743196
996  9.837910e-01 0.0162090200
1003 9.961402e-01 0.0038598300
1005 9.915600e-01 0.0084399755
1010 9.958685e-01 0.0041314944
1014 9.869415e-01 0.0130585366
1017 9.979740e-01 0.0020259949
1022 7.890179e-01 0.2109820697
1023 9.994563e-01 0.0005437437
1024 9.990979e-01 0.0009021338
1025 9.912754e-01 0.0087245809
1026 9.649568e-01 0.0350431633
1030 9.924198e-01 0.0075802292
1032 9.888965e-01 0.0111034854
1037 9.978684e-01 0.0021315620
1043 9.980472e-01 0.0019528365
1045 9.977174e-01 0.0022825961
1052 9.956316e-01 0.0043684019
1054 9.757004e-01 0.0242995821
1055 9.899689e-01 0.0100311264
1060 9.778708e-01 0.0221291704
1063 8.361821e-01 0.1638178542
1066 9.381887e-01 0.0618113200
1068 9.974526e-01 0.0025474481
1070 9.990254e-01 0.0009746000
1072 9.967703e-01 0.0032297164
1080 9.955373e-01 0.0044627470
1081 9.989704e-01 0.0010296315
1082 9.927013e-01 0.0072986537
1084 1.022769e-01 0.8977230643
1087 9.957239e-01 0.0042761321
1088 9.761017e-01 0.0238983322
1097 9.879499e-01 0.0120501212
1100 9.346290e-01 0.0653710329
1102 9.960559e-01 0.0039441356
1104 9.971007e-01 0.0028992695
1108 9.966582e-01 0.0033418175
1110 9.108404e-01 0.0891595682
1111 9.888149e-01 0.0111851312
1112 2.512738e-01 0.7487262239
1120 9.840209e-01 0.0159790680
1123 9.904807e-01 0.0095192627
1126 9.942435e-01 0.0057564571
1135 9.974397e-01 0.0025602604
1137 9.976811e-01 0.0023188869
1138 9.992273e-01 0.0007727225
1139 9.949641e-01 0.0050359002
1141 9.989366e-01 0.0010633633
1143 5.949230e-01 0.4050770085
1144 9.992634e-01 0.0007366129
1145 9.974330e-01 0.0025669884
1150 9.837144e-01 0.0162855510
1158 9.965206e-01 0.0034794211
1159 5.300764e-01 0.4699235887
1162 8.699814e-01 0.1300186469
1164 9.998650e-01 0.0001349567
1171 9.843312e-01 0.0156688469
1176 3.116906e-01 0.6883094465
1180 9.572081e-01 0.0427919070
1182 1.213449e-01 0.8786550585
1183 9.977974e-01 0.0022025827
1184 9.957862e-01 0.0042138437
1185 9.904814e-01 0.0095186279
1197 7.867380e-01 0.2132619927
1199 9.914377e-01 0.0085622920
1200 9.902012e-01 0.0097988147
1202 9.650519e-01 0.0349480593
1209 9.987490e-01 0.0012510153
1210 9.025599e-01 0.0974401105
1212 9.945396e-01 0.0054604331
1217 6.755163e-02 0.9324483687
1220 9.933124e-01 0.0066876030
1221 9.744136e-01 0.0255864332
1223 9.930390e-01 0.0069610177
1225 9.954894e-01 0.0045105578
1226 9.888109e-01 0.0111890661
1227 9.660570e-01 0.0339430232
1228 9.988997e-01 0.0011003037
1229 9.981856e-01 0.0018143626
1234 9.993661e-01 0.0006338800
1253 9.900445e-01 0.0099555262
1255 9.972240e-01 0.0027760179
1260 8.096070e-01 0.1903930348
1262 9.988155e-01 0.0011844923
1270 9.761960e-01 0.0238039925
1271 9.989850e-01 0.0010150154
1273 9.857272e-01 0.0142728119
1278 9.584522e-01 0.0415478308
1287 9.983308e-01 0.0016692154
1290 9.962309e-01 0.0037690849
1291 9.903543e-01 0.0096457345
1297 8.449249e-01 0.1550750679
1300 9.936786e-01 0.0063214268
1303 9.216160e-01 0.0783839913
1305 9.935770e-01 0.0064229567
1306 9.992586e-01 0.0007414038
1310 9.589876e-01 0.0410123531
1312 9.722693e-01 0.0277307368
1326 9.697599e-01 0.0302400533
1329 9.974212e-01 0.0025788212
1332 9.967910e-01 0.0032090086
1333 9.811752e-01 0.0188247991
1338 6.290061e-01 0.3709938837
1343 2.641505e-03 0.9973584948
1350 5.853779e-02 0.9414622084
1352 9.972468e-01 0.0027532111
1363 9.964384e-01 0.0035616485
1370 9.464180e-01 0.0535819789
1376 9.971053e-01 0.0028947312
1377 9.950163e-01 0.0049836538
1389 9.977907e-01 0.0022093011
1390 9.903135e-01 0.0096865455
1394 9.927278e-01 0.0072721595
1397 9.996202e-01 0.0003798297
1398 9.979234e-01 0.0020765913
1402 9.995068e-01 0.0004932368
1403 7.776538e-01 0.2223461596
1405 9.932316e-01 0.0067684356
1406 9.972038e-01 0.0027962304
1407 9.916198e-01 0.0083801880
1411 9.963560e-01 0.0036440157
1413 5.639570e-01 0.4360429530
1417 9.986938e-01 0.0013061745
1418 9.992469e-01 0.0007531265
1420 9.952935e-01 0.0047064513
1422 1.444203e-01 0.8555797392
1433 9.916781e-01 0.0083218814
1444 9.824966e-01 0.0175033962
1449 9.987922e-01 0.0012077649
1450 3.472335e-02 0.9652766524
1453 9.979435e-01 0.0020564638
1454 9.979720e-01 0.0020279936
1457 9.993057e-01 0.0006942827
1460 1.890787e-02 0.9810921270
1462 9.916702e-01 0.0083297553
1466 9.962064e-01 0.0037936273
1472 9.621139e-01 0.0378861307
1473 9.951852e-01 0.0048147907
1475 9.664383e-01 0.0335617311
1482 9.994366e-01 0.0005634375
1483 9.932651e-01 0.0067348668
1491 9.932819e-01 0.0067181051
1493 9.992248e-01 0.0007752202
1498 9.714215e-01 0.0285785069
1499 9.952190e-01 0.0047810322
1500 9.922756e-01 0.0077243611
1501 9.886054e-01 0.0113945855
1509 9.733623e-01 0.0266377244
1511 9.836579e-01 0.0163420767
1514 9.982544e-01 0.0017455835
1522 9.564417e-01 0.0435583091
1524 9.969908e-01 0.0030091898
1525 9.673775e-01 0.0326225100
1528 9.966769e-01 0.0033231266
1530 7.463287e-01 0.2536712598
1532 9.951320e-01 0.0048679937
1539 9.948532e-01 0.0051468328
1543 9.978350e-01 0.0021650212
1544 9.698061e-01 0.0301938583
1545 9.981590e-01 0.0018409774
1548 9.939331e-01 0.0060669497
1551 9.905596e-01 0.0094403569
1554 9.332887e-01 0.0667112680
1558 3.727945e-02 0.9627205487
1563 9.989477e-01 0.0010523021
1568 8.910967e-01 0.1089033328
1570 9.983176e-01 0.0016824082
1575 9.736842e-01 0.0263158387
1576 9.916052e-01 0.0083948209
1577 7.468448e-01 0.2531552483
1579 9.953635e-01 0.0046364597
1580 9.785237e-01 0.0214762602
1585 9.841531e-01 0.0158469450
1592 8.941237e-01 0.1058762995
1594 9.962700e-01 0.0037299588
1595 9.899498e-01 0.0100502186
1599 9.992583e-01 0.0007416506
1609 9.981810e-01 0.0018189527
1613 9.768043e-01 0.0231956565
1621 9.901557e-01 0.0098443064
1624 9.989745e-01 0.0010254729
1628 9.995310e-01 0.0004690085
1629 9.968238e-01 0.0031761866
1633 9.956229e-01 0.0043770759
1636 9.916530e-01 0.0083470449
1637 9.951091e-01 0.0048909394
1638 9.993345e-01 0.0006655157
1640 9.978445e-01 0.0021554632
1644 9.989675e-01 0.0010325116
1647 9.743509e-01 0.0256491140
1648 9.967615e-01 0.0032384866
1653 9.935927e-01 0.0064073165
1654 1.543698e-02 0.9845630216
1655 9.976995e-01 0.0023004966
1657 9.933373e-01 0.0066626657
1658 9.927240e-01 0.0072759873
1659 9.829103e-01 0.0170897034
1663 9.993523e-01 0.0006476743
1664 9.019595e-01 0.0980405237
1673 2.762072e-01 0.7237928260
1676 9.162529e-01 0.0837471320
1678 9.978767e-01 0.0021232627
1681 8.681692e-01 0.1318308113
1682 9.985959e-01 0.0014041301
1689 9.968585e-01 0.0031415461
1691 9.987176e-01 0.0012824377
1694 9.829632e-01 0.0170368183
1695 9.976706e-01 0.0023293631
1696 4.659749e-03 0.9953402513
1698 9.924626e-01 0.0075374192
1700 9.992104e-01 0.0007895857
1704 9.620592e-01 0.0379408019
1705 4.421151e-01 0.5578849234
1706 7.535908e-01 0.2464091838
1716 9.929842e-01 0.0070157612
1719 9.963149e-01 0.0036851102
 [ reached getOption("max.print") -- omitted 857 rows ]

$x
              LD1
1     0.929174817
3     0.850596143
4    -0.635343072
6     0.716878699
19   -0.753709847
31    2.510213291
34    2.257987457
35    0.238730108
39    1.607228865
42   -0.344676354
46   -1.210777576
47   -1.281112001
48   -0.422195411
49    0.173058473
58   -0.135547561
59    0.247241418
62    2.664707751
63   -0.113076447
66   -0.390104080
67   -0.894648004
74   -0.688000038
83   -0.864346679
91   -0.869701326
95   -0.532771520
96   -0.016787974
97   -1.086889231
101  -0.843599956
104  -1.095880437
106   0.375672255
108   0.440465824
111   5.484886851
113  -0.264295441
119  -0.798225376
120   1.350670923
121   1.144586099
122  -0.634516269
125   0.901582020
139   1.148608914
141   0.110354229
150  -1.506379338
151  -1.189237867
154  -0.139671995
163  -1.534217940
164  -1.286062540
166   0.413424549
167   0.913569763
168   0.582388047
169  -1.224342012
174  -0.696302982
175  -0.841374425
177  -0.925318417
178  -0.140379494
180  -1.047991908
185  -0.587150127
188   0.097009381
189  -0.153405763
190   1.479776653
191  -1.075858537
193  -0.336565704
203   1.679527819
208  -1.189053961
209   0.198191972
211  -0.530638457
212  -0.407927609
216   0.962956749
220  -0.282414783
221   0.145068146
222  -1.008498028
223  -1.288822788
224  -0.661136063
232  -0.539492977
235   0.643329267
240  -0.687017464
243  -0.391264327
244  -0.174900742
245   0.331268262
246  -0.784113960
254   0.744305308
261  -0.921341504
264  -0.679399203
266  -0.324272412
270  -0.266902366
283  -0.785642979
289  -0.040892937
295  -0.426701015
301   1.200863276
302   1.661337119
304  -0.213852856
307   1.469469995
308  -1.696846277
314   0.679684444
322  -0.142585749
325  -0.704751882
330   0.006790615
338   0.268166732
345   1.036118411
348   3.976182878
350   0.597109642
355   3.985692352
361  -1.073727246
364  -0.521712720
365  -0.340534881
367  -0.126473683
371  -0.763684068
372   0.678104972
376   0.173905782
380  -0.830050779
383   2.500032846
385  -0.751889434
387  -0.265991053
389  -0.674976858
390  -0.134748766
393   1.883124170
394  -0.346103513
396  -1.004411237
398   1.860172498
409  -0.676524691
411  -0.678875760
415  -0.412048196
416   3.253164942
418  -0.745692487
419  -0.021840793
421  -0.561972445
423   0.865806431
433   0.345410444
434  -0.179793409
439  -1.104049263
442  -0.860335642
447  -0.961236951
452  -0.062097491
453  -0.764645785
457   1.192830623
465   3.680276602
467   0.861101155
474   1.673886297
476  -1.368119809
477  -1.494169843
487   1.323762629
492  -0.642504978
495   4.231317501
502  -0.295416123
503  -0.218514575
505   1.879657396
508   0.120594798
511   0.106205483
512   1.201157330
513   0.315125569
518   1.867249413
527   3.301132156
530   0.737180054
532  -1.052963709
535  -0.340007151
538  -0.470052914
540  -0.662646132
542   1.115630686
543  -0.748303580
545  -0.196098692
551  -0.245810773
554  -1.753895141
556   3.909657280
558   0.719187951
561  -0.419877848
562   1.001951485
563  -1.151147592
566  -0.431195845
569   7.217796403
571  -1.105680772
575  -0.567696762
580   0.411965462
584   0.781950570
586   0.085324198
587  -0.933406283
589  -0.706646454
591  -0.539767507
604  -0.232244587
606  -0.528284675
607  -0.683055775
618  -0.104569008
622  -0.142551005
632  -0.853144670
635   1.716730103
636  -0.087905564
637  -0.446256248
642   0.856037887
648  -0.396312746
651  -0.543472712
655   0.003185158
659   3.407119933
661  -0.422522329
664   0.854900436
665  -0.438362404
666   1.527526696
669   0.698165556
673  -1.185030064
680  -0.672523667
682  -0.258041546
684   0.197318801
688  -1.312349489
695  -0.445847764
697  -0.370891875
698  -0.626332233
705   3.212130149
708   0.396081354
715   0.100083198
718  -0.450251943
722   0.208845708
724  -1.295090330
727  -0.677432557
728   0.807953354
729  -1.284060901
732  -1.032900089
740  -0.674514573
742   0.335675979
746  -0.850897549
750  -1.224388969
754  -0.424516723
756  -0.849614193
757   0.122062911
758   0.055270359
761   0.318269426
762  -0.427444176
764  -0.887787097
765   0.157477938
766   0.095149706
769  -0.240490125
770   0.857665761
785  -0.923692193
793   0.942917231
794  -0.369975535
795   4.144252224
801  -0.021604294
804   2.821927269
806  -0.622597238
815  -0.129211893
818  -1.072246919
819  -0.515166449
832   1.123645971
837  -0.850972872
840  -1.267051935
844   0.027812362
845  -1.051363759
848  -0.022313452
851   0.756605137
856   5.072147678
859   1.634170357
866   0.918450749
869   0.093759277
873  -0.415946494
876   0.422977074
878  -0.599595837
884  -0.433960324
885   0.850941202
888  -1.379916870
892  -0.629349252
896  -1.100442671
897   1.106547432
908  -0.277278143
917  -0.295558468
920  -1.112229118
921  -0.314465315
926  -0.778104880
928  -0.528688410
930  -0.710372791
931  -0.592742139
935   2.107142212
939  -0.906871524
943  -0.152154907
947  -0.416078038
948  -1.070518548
949  -0.744513045
953  -0.849833813
968  -0.653865953
970  -0.086558042
971   0.964657529
973  -1.233968341
974  -0.834248740
975  -0.078697384
976   1.743951919
981   4.795104834
987   0.005606909
988  -0.742793605
990   1.331781749
991  -0.101941408
993  -1.234206678
995  -0.965128802
996   0.031494612
1003 -0.599858167
1005 -0.256590392
1010 -0.570071132
1014 -0.064172376
1017 -0.881813364
1022  1.247087567
1023 -1.456200780
1024 -1.235206917
1025 -0.241998855
1026  0.376235835
1030 -0.303831153
1032 -0.135778519
1037 -0.859611212
1043 -0.897887593
1045 -0.829684187
1052 -0.545646134
1054  0.211706982
1055 -0.180553621
1060  0.169926554
1063  1.111398947
1066  0.636048514
1068 -0.781683781
1070 -1.201473220
1072 -0.677875990
1080 -0.536284573
1081 -1.177489528
1082 -0.320466304
1084  2.769918347
1087 -0.554998540
1088  0.204264831
1097 -0.099673430
1100  0.662130258
1102 -0.590396590
1104 -0.725101180
1108 -0.662943835
1110  0.808747634
1111 -0.132546847
1112  2.298679516
1120  0.025160240
1123 -0.203624874
1126 -0.424681321
1135 -0.779489868
1137 -0.822787891
1138 -1.302804639
1139 -0.483329250
1141 -1.163413812
1143  1.654779316
1144 -1.323695438
1145 -0.778342174
1150  0.033583182
1158 -0.645282774
1159  1.769892018
1162  0.993320625
1164 -2.064223170
1171  0.016471140
1176  2.167995211
1180  0.466890072
1182  2.685985274
1183 -0.845283719
1184 -0.561426358
1185 -0.203654241
1197  1.253038109
1199 -0.250260429
1200 -0.190876590
1202  0.375007451
1209 -1.092442500
1210  0.851469570
1212 -0.447839535
1217  2.967401737
1220 -0.358872904
1221  0.234791519
1223 -0.341274532
1225 -0.531615422
1226 -0.132391687
1227  0.361825509
1228 -1.148501983
1229 -0.930029472
1234 -1.389257572
1253 -0.183886768
1255 -0.744103850
1260  1.191061983
1262 -1.116305639
1270  0.202497381
1271 -1.183732256
1273 -0.024851628
1278  0.453454252
1287 -0.966462819
1290 -0.610275299
1291 -0.197812139
1297  1.082938648
1300 -0.383595893
1303  0.747432603
1305 -0.376601203
1306 -1.320865582
1310  0.447552343
1312  0.270856841
1326  0.309769581
1329 -0.776330952
1332 -0.680690758
1333  0.097913419
1338  1.592141864
1343  4.410691365
1350  3.034069366
1352 -0.747712242
1363 -0.635058397
1370  0.569918747
1376 -0.725786486
1377 -0.487901188
1389 -0.843952315
1390 -0.195952531
1394 -0.322064204
1397 -1.612758456
1398 -0.871031750
1402 -1.498746552
1403  1.276299283
1405 -0.353596785
1406 -0.740930551
1407 -0.259717606
1411 -0.625049771
1413  1.710226934
1417 -1.073597973
1418 -1.314017571
1420 -0.512985589
1422  2.598440055
1433 -0.262788744
1444  0.065580238
1449 -1.107808370
1450  3.272771450
1453 -0.875288990
1454 -0.881382394
1457 -1.349529206
1460  3.544992596
1462 -0.262372764
1466 -0.607433494
1472  0.411547815
1473 -0.503011076
1475  0.356725779
1482 -1.440673197
1483 -0.355780252
1491 -0.356874563
1493 -1.301395901
1498  0.284372612
1499 -0.506094965
1500 -0.295551822
1501 -0.124361786
1509  0.252826161
1511  0.035119609
1514 -0.946916306
1522  0.474982511
1524 -0.708821482
1525  0.343921236
1528 -0.665398498
1530  1.351725197
1532 -0.498194306
1539 -0.473776320
1543 -0.852802849
1544  0.309081962
1545 -0.923665826
1548 -0.401630276
1551 -0.207290315
1554  0.671608554
1558  3.240632151
1563 -1.167979689
1568  0.905559491
1570 -0.963023108
1575  0.247378964
1576 -0.258950184
1577  1.350535523
1579 -0.519551772
1580  0.156572105
1585  0.021480029
1592  0.891784360
1594 -0.614844124
1595 -0.179715795
1599 -1.320720283
1609 -0.928925339
1613  0.190933384
1621 -0.188836183
1624 -1.179256690
1628 -1.520727485
1629 -0.685189500
1633 -0.544777082
1636 -0.261460715
1637 -0.496133052
1638 -1.368000082
1640 -0.854736961
1644 -1.176269869
1647  0.235886842
1648 -0.676689283
1653 -0.377671514
1654  3.634998257
1655 -0.826268998
1657 -0.360513399
1658 -0.321832991
1659  0.054963427
1663 -1.379861125
1664  0.854439348
1673  2.242639165
1676  0.778846495
1678 -0.861316480
1681  1.000267705
1682 -1.042011795
1689 -0.689988039
1691 -1.081608064
1694  0.053588042
1695 -0.820817129
1696  4.162219678
1698 -0.306320382
1700 -1.293380586
1704  0.412201591
1705  1.923882456
1706  1.334831899
1716 -0.337833560
1719 -0.620140262
1720  2.336736266
1721 -0.738969923
1724  0.757807803
1726  2.039081643
1732  0.392171578
1737  4.372047984
1741 -0.345109857
1745 -0.188509697
1748 -0.371764782
1749  0.289416543
1755  4.034876321
1761  3.224033393
1762 -1.591322553
1763  0.854725834
1766 -1.245072103
1770 -1.416123170
1771 -1.446159261
1773 -0.787757727
1774  0.448294355
1775 -0.321450397
1777 -1.129746952
1781 -0.650360152
1782  0.965310930
1785 -1.949407843
1787 -0.059627045
1789 -0.702233406
1790 -1.191227449
1795 -0.388043393
1797 -0.195364912
1801 -0.820211271
1802 -0.148796563
1808 -0.364591221
1813 -0.466346982
1814 -0.300628228
1816 -0.592168128
1822 -1.488325261
1828 -0.684162439
1831  0.615906547
1835 -0.774454022
1838  0.928428991
1844  0.055562811
1850 -0.379449476
1854 -1.147020531
1857  0.143166328
1859 -1.102770571
1863  4.207643526
1864  2.104611683
1867  1.911449578
1872 -0.107592356
1875 -0.578282017
1876 -0.234624890
1877  1.220707395
1886 -0.069760082
1895 -0.426585594
1900  3.311383128
1901  1.374872356
1902  0.802119949
1907  0.306437086
1909 -1.327960062
1915  3.755105866
1920  0.554146702
1921 -1.125643478
1922 -1.416573089
1923 -0.211920687
1924  0.045824725
1927  0.196457824
1928  0.572143637
1933 -0.967422900
1934 -0.083536136
1936  0.070027999
1937 -0.314895602
1939 -0.151183744
1942 -0.545355237
1943 -0.111465532
1947  1.828865997
1950 -0.268877074
1960  2.223149494
1962 -0.103622050
1963  0.242674972
1964  0.140212630
1965 -0.815698063
1967 -0.543719928
1969 -0.362382285
1972 -0.258548509
1974 -0.675328296
1990 -0.174253898
1991 -0.885851149
1997 -0.091367927
2000 -1.460843502
2002 -1.831555355
2005  1.092859569
2009 -0.584221884
2011 -0.167241755
2016  1.082366396
2018  1.566946871
2019  2.098858993
2020 -0.421620526
2024 -1.048577137
2025 -0.388984621
2026 -0.037796384
2028 -1.141336416
2030 -0.189942645
2031 -0.818941976
2033  1.178419526
2035 -0.680621111
2037 -0.809721847
2039 -1.007857880
2044 -0.593981991
2048  0.755255329
2053 -0.701280619
2055  0.428798218
2058  0.022966644
2060 -1.123264412
2062 -0.993781871
2063  0.418834978
2066 -0.476950482
2072 -0.839336800
2092 -0.985965275
2093  0.293002653
2102 -1.016454229
2109 -1.272640621
2111  0.053759975
2113  0.255950361
2115  0.345967138
2120 -1.052778656
2121  0.448518193
2125 -1.118306542
2128 -0.167723548
2129 -0.611308232
2133  0.924813221
2140 -0.584092601
2141  1.736122093
2144  0.304803442
2145  0.105246565
2146 -0.324139732
2151  0.236990265
2152  0.522707054
2154 -0.599234350
2158  0.076329921
2163 -0.446047454
2164 -0.291662553
2166  0.047276579
2168 -0.428815950
2173 -0.379088020
2187 -0.811203515
2201 -0.829324089
2207 -0.400392573
2208 -1.358008518
2209 -0.569641201
2211 -1.011744065
2213  1.481541440
2216 -0.215531471
2217 -0.917378101
2218  2.440548996
2223 -0.047951417
2227 -0.725865481
2231 -0.798259791
2235 -0.960631264
2240 -0.455378872
2246 -0.985470986
2250  1.684044244
2253 -0.801237023
2257  0.402000121
2261  0.529745443
2262 -0.114437716
2266 -1.427692490
2268 -0.599522058
2270 -0.749470277
2272  0.051645903
2274 -1.782463431
2277 -1.104967770
2280  0.803579345
2285 -0.942560739
2289 -0.635454026
2290  0.483869697
2291 -0.331340863
2292  0.472154486
2293 -0.610355494
2298  0.080770242
2299 -0.908549054
2300 -0.550575482
2303  0.219804262
2304 -0.503182173
2305 -0.364138322
2310 -0.939753248
2311 -0.542572009
2315 -0.621783657
2321 -2.002562543
2327 -0.295032840
2328 -1.147061228
2330 -0.420030640
2335 -0.511699119
2336 -0.134209903
2338 -0.464629992
2339 -0.144266972
2340 -0.190439989
2344 -0.931397613
2345 -0.581800365
2349 -0.372416583
2351 -0.291002519
2354 -0.201521282
2356  0.362952418
2360 -0.334931735
2363 -0.176509105
2373  3.810909921
2376  2.665822421
2380  0.186728046
2382 -1.328393202
2387 -1.319187454
2389 -0.917861360
2391 -0.282530975
2394 -1.134737401
2401  0.371687232
2404 -0.525296090
2407  1.801311697
2409 -0.573459002
2412  0.119451784
2414 -1.036336162
2416  0.637598255
2420  0.559496075
2425 -0.532924201
2431 -0.900662504
2432  0.294477225
2436 -0.310578904
2440 -1.313346852
2441  0.447439716
2442 -0.773407947
2444 -0.036055344
2446  0.017734214
2447  0.439225741
2454 -0.566151043
2457 -0.647263103
2458 -0.197596103
2460 -0.561730743
2463 -0.630400005
2465  1.176142672
2466 -0.445020328
2471  0.743697169
2472  0.968873061
2473 -0.935014963
2480 -0.681662415
2484  0.053174506
2487  2.417010601
2489 -0.753282412
2490 -0.309982895
2491 -0.149761243
2494 -0.543778738
2496 -0.298658254
2497 -0.445838656
2502 -0.509456726
2503 -0.873894262
2508 -0.568594164
2513  0.530258458
2518 -1.370820066
2519 -0.103939293
2525  0.393139619
2526 -1.592209025
2529 -1.249014382
2530 -1.199871967
2531 -0.397779496
2533 -0.479121335
2538 -0.529679763
2539  0.057117876
2542 -0.701943572
2544  0.047434741
2547 -1.063425204
2549 -1.721566800
2552 -0.884481782
2554  0.552145592
2555 -0.940041097
2557  1.497773560
2560 -0.585334857
2566 -0.888666683
2575 -1.408579299
2576 -0.798858479
2578 -1.486939673
2580 -1.062498965
2581 -1.555049525
2583  0.261757521
2586 -0.019423624
2589  0.139748007
2590 -0.345066254
2592  2.429040232
2596 -0.489478774
2599  0.342595476
2600 -0.433851766
2606 -1.289879633
2607 -0.681761160
2608  0.019682372
2609  0.679014577
2612 -0.262817091
2621  0.074742261
2622 -1.252374519
2623 -0.345338662
2624 -0.493015676
2628 -0.278259346
2632 -0.064231267
2633 -0.468473546
2635 -0.080000488
2641  0.310644058
2646  0.471135272
2647 -0.464533827
2651 -0.859108185
2654  4.242676819
2657 -0.478468582
2661 -0.747077466
2665 -0.149650860
2679 -0.509409321
2680  0.228072843
2684 -0.846898701
2685 -0.040908605
2690 -0.095903449
2691  0.595523789
2694 -1.170546278
2696 -0.432559192
2699 -0.414438876
2701  1.397606632
2702  0.427849552
2704  0.319223321
2717  0.062394705
2718 -0.040418540
2720  0.909795918
2722 -0.726588703
2726 -0.361460329
2730 -1.238207068
2733 -0.363463326
2735 -0.467056853
2736 -0.383927169
2738 -1.462127425
2740 -0.675078758
2746  1.468487822
2747  1.219532198
2748 -1.364615181
2750  0.519425471
2753 -0.488777040
2760 -0.925752525
2761  2.171611693
2764 -0.256336994
2769 -1.008648031
2772 -0.378353507
2774  2.234371698
2780 -0.588103299
2781  1.179754590
2783 -1.256710319
2784 -0.124591331
2788  0.080772632
2791 -0.595116304
2797 -1.043148092
2798 -1.166681507
2800 -0.428836281
2804 -0.475394829
2805  0.644599795
2807 -0.396458397
2808 -0.448915285
2810  0.458837427
2811 -0.465384961
2812 -0.346725537
2818 -0.989934837
2824  1.072918202
2831 -1.132348188
2832 -0.395548418
2836 -0.377609448
2840 -0.665744739
2843 -0.834362375
2845 -1.713247063
2851 -0.981846958
2853  1.118052648
2855 -0.365350138
2858 -0.385401676
2860 -0.159229734
2871  0.055860173
2872  0.663842729
2875 -0.827469964
2876  4.837528518
2879 -0.519235133
2880  1.013221758
2881 -1.118217499
2885 -0.266552716
2887 -0.731328191
2893 -1.146397086
2895 -0.285307050
2897  0.702031558
2905  1.483023820
2907  0.113520802
2908  0.250567012
2914  0.404204984
2916 -0.202754062
2917 -0.825888920
2919  0.909562496
2923  1.460685036
2925  0.067334273
2928 -0.706355010
2930 -0.156101938
2936 -0.905459560
2945  1.582813051
2952 -0.235157533
2953 -0.946826036
2954  1.932358296
2955  0.907234458
2958 -0.573521462
2962 -0.327152078
2964  1.635167019
2965 -0.900278149
2968 -0.229090175
2970  3.033732709
2971 -0.469269594
2972  1.102775162
2975 -0.099096252
2976 -0.494824837
2977 -1.175109842
2978 -1.136188479
2979 -0.873059451
2980 -0.369438744
2981  3.124376210
2984  0.049491943
2987  0.709432920
2992 -0.300709558
2993  1.833486542
2995 -0.734736818
3000 -0.546821632
3004  0.127933687
3005 -0.682657001
3006  3.607702216
3012 -0.489186678
3014  1.263157537
3020 -0.766188990
3023 -0.192394997
3025 -0.592117914
3029 -1.083837621
3031 -0.970425658
3032  0.634288756
3035 -1.459380422
3040  1.217814867
3041 -0.700232581
3044 -0.652581888
3046 -0.608335351
3047 -1.277406227
3051 -0.779358149
3055 -0.083417846
3061  0.403958275
3069 -0.108953578
3077  1.081008795
3079 -0.293820670
3082  0.358525981
3087  0.476360598
3089  3.230426001
3091 -0.400342088
3092  2.619756881
3095  1.264766009
3099 -0.866363894
3106 -0.448458129
3109 -1.364779307
3112 -0.364068629
3116 -0.731219685
3118  1.003236448
3122  0.396112299
3123 -0.810942892
3131 -0.657305402
3135 -1.697316659
3136  0.841790143
3144 -0.846191223
3156 -0.682928285
3158  2.344429064
3162  0.477734736
3164  0.322416370
3166 -0.405270234
3172  1.535645114
3173  0.146671868
3175 -1.091756596
3179  0.056915460
3180 -0.512169824
3182 -0.254835160
3188  0.703991194
3189 -0.641312363
3194  0.772547873
3195 -0.846659426
3196 -1.299040956
3199 -0.211680784
3200 -0.337994188
3203  3.730452097
3207 -1.065445504
3209 -1.066390853
3212 -0.837399985
3213 -0.810264875
3218 -0.660325768
3219 -0.726239313
3225  1.876514126
3227 -0.790981314
3233 -0.868904773
3234  1.764088243
3240  1.470633402
3241 -0.551347878
3242 -0.842060815
3243 -0.600508230
3244  5.205632670
3250 -0.991612160
3251  6.950621932
3255 -1.200436620
3260 -0.668886940
3263 -0.072301769
 [ reached getOption("max.print") -- omitted 357 rows ]
#here 91% belongs to the no group and 8% to the yes.

#MODEL VADILITY CONFUSION MATRIX 
table_1 <- table(list(predicted=disc_analysis_prediction$class, observed = test_data$y))
table_1
         observed
predicted   no  yes
      no  1171   77
      yes   40   69
#OUr model predicted 1357 cases
#109 were predicted as YES, and 1248 as NO
#Out of the 109 predicted YES, just 69 were corrected predicted (0.63%) and 
#out of the 1357  predicted NO, just 1171 were corrected predicted (0.94%)
#then our model fitted in our test data correctly predicted 63% of the yes cases using the coefficients for 
#each variable that we have found WHICH IS OUR VARIABLE OF INTEREST. 
#OVERALL OUR MODEL SEEMS TO CORRECTLY PREDICT 91% OF THE TIME, BUT JUST A 63% FOR POSITITVE RESPONSES. 

#We now try fitting a logistic regression model 
set.seed(77)
logistic_model <- glm(y~., data=train_data, family=binomial)
summary(logistic_model)

Call:
glm(formula = y ~ ., family = binomial, data = train_data)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-3.0864  -0.3867  -0.2617  -0.1716   2.9939  

Coefficients:
                     Estimate Std. Error z value Pr(>|z|)    
(Intercept)        -1.582e+00  7.155e-01  -2.211  0.02703 *  
age                -5.088e-03  8.549e-03  -0.595  0.55177    
jobblue-collar     -3.980e-01  2.856e-01  -1.394  0.16346    
jobentrepreneur    -1.500e-01  4.226e-01  -0.355  0.72268    
jobhousemaid       -2.460e-01  4.988e-01  -0.493  0.62184    
jobmanagement      -7.416e-02  2.877e-01  -0.258  0.79655    
jobretired          4.899e-01  3.808e-01   1.287  0.19824    
jobself-employed   -3.029e-01  4.098e-01  -0.739  0.45977    
jobservices        -1.548e-01  3.188e-01  -0.486  0.62723    
jobstudent         -1.351e-01  4.694e-01  -0.288  0.77348    
jobtechnician      -1.859e-01  2.707e-01  -0.687  0.49228    
jobunemployed      -5.674e-01  4.908e-01  -1.156  0.24763    
jobunknown          2.681e-01  7.244e-01   0.370  0.71124    
maritalmarried     -3.978e-01  2.079e-01  -1.913  0.05569 .  
maritalsingle      -2.912e-01  2.419e-01  -1.204  0.22872    
educationsecondary  2.626e-02  2.403e-01   0.109  0.91298    
educationtertiary   3.017e-01  2.781e-01   1.085  0.27802    
educationunknown   -3.940e-01  4.241e-01  -0.929  0.35284    
defaultyes          4.780e-01  5.022e-01   0.952  0.34117    
balance             2.791e-06  2.379e-05   0.117  0.90660    
housingyes         -3.238e-01  1.644e-01  -1.969  0.04890 *  
loanyes            -7.468e-01  2.392e-01  -3.122  0.00180 ** 
contacttelephone    5.021e-02  2.643e-01   0.190  0.84934    
contactunknown     -1.324e+00  2.564e-01  -5.162 2.44e-07 ***
day                 6.634e-03  9.725e-03   0.682  0.49514    
monthaug           -5.319e-01  3.017e-01  -1.763  0.07791 .  
monthdec            4.078e-02  7.376e-01   0.055  0.95591    
monthfeb           -1.722e-01  3.609e-01  -0.477  0.63327    
monthjan           -9.582e-01  4.441e-01  -2.158  0.03096 *  
monthjul           -9.358e-01  2.989e-01  -3.131  0.00174 ** 
monthjun            2.852e-01  3.545e-01   0.804  0.42121    
monthmar            1.374e+00  4.700e-01   2.924  0.00346 ** 
monthmay           -2.992e-01  2.787e-01  -1.074  0.28300    
monthnov           -7.287e-01  3.204e-01  -2.275  0.02292 *  
monthoct            1.173e+00  4.002e-01   2.931  0.00338 ** 
monthsep            7.030e-01  4.996e-01   1.407  0.15934    
duration            4.409e-03  2.440e-04  18.070  < 2e-16 ***
campaign           -3.685e-02  3.050e-02  -1.208  0.22693    
pdays              -4.263e-03  1.360e-03  -3.135  0.00172 ** 
previous           -2.967e-02  4.953e-02  -0.599  0.54916    
poutcomeother       7.980e-01  3.268e-01   2.442  0.01461 *  
poutcomesuccess     2.262e+00  3.406e-01   6.642 3.09e-11 ***
poutcomeunknown    -7.751e-01  3.864e-01  -2.006  0.04487 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 2303.2  on 3163  degrees of freedom
Residual deviance: 1561.7  on 3121  degrees of freedom
AIC: 1647.7

Number of Fisher Scoring iterations: 6
#here we have which ones are statistically significants. (variables) 
coef(logistic_model)
       (Intercept)                age     jobblue-collar    jobentrepreneur       jobhousemaid      jobmanagement 
     -1.582040e+00      -5.087841e-03      -3.980106e-01      -1.499611e-01      -2.460282e-01      -7.416213e-02 
        jobretired   jobself-employed        jobservices         jobstudent      jobtechnician      jobunemployed 
      4.899010e-01      -3.029036e-01      -1.548270e-01      -1.350934e-01      -1.858827e-01      -5.673663e-01 
        jobunknown     maritalmarried      maritalsingle educationsecondary  educationtertiary   educationunknown 
      2.681494e-01      -3.977668e-01      -2.911892e-01       2.625751e-02       3.016832e-01      -3.940005e-01 
        defaultyes            balance         housingyes            loanyes   contacttelephone     contactunknown 
      4.780139e-01       2.790719e-06      -3.237508e-01      -7.467830e-01       5.020524e-02      -1.323694e+00 
               day           monthaug           monthdec           monthfeb           monthjan           monthjul 
      6.634354e-03      -5.318875e-01       4.077920e-02      -1.722098e-01      -9.582297e-01      -9.357987e-01 
          monthjun           monthmar           monthmay           monthnov           monthoct           monthsep 
      2.851564e-01       1.374085e+00      -2.992175e-01      -7.287046e-01       1.173213e+00       7.030135e-01 
          duration           campaign              pdays           previous      poutcomeother    poutcomesuccess 
      4.408803e-03      -3.684972e-02      -4.263041e-03      -2.966890e-02       7.979738e-01       2.262209e+00 
   poutcomeunknown 
     -7.750752e-01 
#here we have the coefficient models 
logistic_model_probability  <- predict(logistic_model, type="response")
#here the predict function give us the PROBABILITY THAT THE ANSWER WILL BE YES GIVEN THE VALUES OF THE PREDICTORS
# TO INTERPRET THESE  VALUES WE NEED TO CONVERT THEM WITH E(^VALUE) 
logistic_model_probability
           2            5            7            8            9           10           11           12           13 
0.0149137835 0.0124131864 0.1306713885 0.0431323367 0.0111725478 0.0657241292 0.0241582275 0.0612909510 0.1314568115 
          14           15           16           17           18           20           21           22           23 
0.1764836984 0.0063927752 0.0450975972 0.0649427644 0.1010183882 0.0817267675 0.0266528637 0.0805465277 0.0279702484 
          24           25           26           27           28           29           30           32           33 
0.0290322687 0.0497179390 0.0702669162 0.0135453160 0.0684397575 0.0146243482 0.0202226681 0.0401680571 0.0279641383 
          36           37           38           40           41           43           44           45           50 
0.0226532042 0.3777790081 0.0242730690 0.0070086430 0.1216052566 0.0872104668 0.0731018143 0.0241992438 0.2363823459 
          51           52           53           54           55           56           57           60           61 
0.5974343504 0.9798340056 0.0484300334 0.6142540908 0.0303592368 0.0309916388 0.0338896223 0.0540073102 0.0687503766 
          64           65           68           69           70           71           72           73           75 
0.0289782154 0.3108333005 0.0229541463 0.1217170418 0.0663997642 0.4341358450 0.0986963051 0.0210721945 0.0314296188 
          76           77           78           79           80           81           82           84           85 
0.0685998221 0.1617203176 0.0174836127 0.4776426288 0.0240560625 0.3146609527 0.0617273390 0.0279335390 0.2187835826 
          86           87           88           89           90           92           93           94           98 
0.0269103512 0.0106780777 0.0604460928 0.1262779702 0.0136141743 0.0465117626 0.1509608711 0.0867092587 0.3517852814 
          99          100          102          103          105          107          109          110          112 
0.7830554048 0.4241790215 0.1469581291 0.0966812784 0.0096607592 0.0211720139 0.0816879814 0.0806388714 0.0182657293 
         114          115          116          117          118          123          124          126          127 
0.0213992572 0.0700291817 0.0651277895 0.0377569759 0.0260551527 0.0078513383 0.1782150848 0.9930029719 0.0255784980 
         128          129          130          131          132          133          134          135          136 
0.0110166327 0.0442072321 0.2361000260 0.0272280435 0.0064187862 0.0077816147 0.0259435215 0.0292566868 0.0946132644 
         137          138          140          142          143          144          145          146          147 
0.0095133830 0.0792654271 0.0131165786 0.1467128109 0.0100838553 0.0606044532 0.0119293302 0.1997443915 0.0129600778 
         148          149          152          153          155          156          157          158          159 
0.0237753507 0.0251078410 0.0167372994 0.0035882929 0.0348780944 0.0567944494 0.7680245878 0.0160251891 0.0422928534 
         160          161          162          165          170          171          172          173          176 
0.1609572789 0.0416232376 0.0243774275 0.8510505489 0.0343623377 0.0244415060 0.0882326858 0.0649853943 0.0162517871 
         179          181          182          183          184          186          187          192          194 
0.0219262192 0.0423673154 0.0410678884 0.0317599985 0.0514039391 0.0212266132 0.7191930861 0.0903035858 0.0209457265 
         195          196          197          198          199          200          201          202          204 
0.3721501363 0.1497015698 0.0456014014 0.0216205944 0.1670384656 0.6283272474 0.6442469854 0.0749948664 0.9373022678 
         205          206          207          210          213          214          215          217          218 
0.2774347453 0.0410476967 0.0142363792 0.0354775995 0.0313401846 0.0451418036 0.1378514711 0.0337368278 0.0282252534 
         219          225          226          227          228          229          230          231          233 
0.1214871468 0.0380015414 0.0202886564 0.1111004796 0.1333399767 0.0212032623 0.1908613834 0.0565870146 0.0210991404 
         234          236          237          238          239          241          242          247          248 
0.8141488501 0.1088388612 0.0529251331 0.0090879885 0.0167582702 0.1157960045 0.3393567083 0.0205422538 0.0474499203 
         249          250          251          252          253          255          256          257          258 
0.0335419848 0.0138333553 0.0728876994 0.0622789493 0.0232367856 0.0260450368 0.0066720651 0.0625592421 0.0322145625 
         259          260          262          263          265          267          268          269          271 
0.1280593697 0.4869210909 0.0690369317 0.0682407971 0.3534677187 0.0214355114 0.0114651702 0.0173677540 0.2187402270 
         272          273          274          275          276          277          278          279          280 
0.0930025411 0.0200927158 0.1061628403 0.0460464719 0.1064100499 0.5295684504 0.1138071056 0.0200218433 0.1110155870 
         281          282          284          285          286          287          288          290          291 
0.0123879267 0.0485022343 0.0200358406 0.0348692812 0.0419325005 0.0175045951 0.0120722036 0.3532894136 0.1239630852 
         292          293          294          296          297          298          299          300          303 
0.0138639408 0.0294511464 0.0136804806 0.6345109611 0.1838715759 0.4327749572 0.6781223561 0.0883649358 0.1371410958 
         305          306          309          310          311          312          313          315          316 
0.0128785156 0.0547024431 0.0456916538 0.0644360033 0.0174784152 0.0411530045 0.2729316484 0.1536056873 0.0311543261 
         317          318          319          320          321          323          324          326          327 
0.0358627676 0.1118648134 0.1735788191 0.0137840130 0.0096481248 0.0142124630 0.6291486504 0.0422924647 0.0145092321 
         328          329          331          332          333          334          335          336          337 
0.4106724279 0.9914110409 0.0213270470 0.1253852940 0.0208147798 0.5186926191 0.2149404875 0.0152500284 0.0218334670 
         339          340          341          342          343          344          346          347          349 
0.8532599947 0.0600568618 0.0238402137 0.1201665621 0.0260104325 0.0141900082 0.0160388322 0.1026609836 0.0076045736 
         351          352          353          354          356          357          358          359          360 
0.1196693124 0.0847517965 0.0168968198 0.1048121676 0.0083844726 0.0108830678 0.0328383465 0.2953566922 0.3162256131 
         362          363          366          368          369          370          373          374          375 
0.0210848673 0.0347739227 0.2853131405 0.1614921604 0.1114548085 0.8125682731 0.1144844856 0.0531813149 0.0211617343 
         377          378          379          381          382          384          386          388          391 
0.0148872406 0.2024104778 0.0198796210 0.0199759869 0.0135166263 0.0199956226 0.0559707902 0.0159643408 0.3853479931 
         392          395          397          399          400          401          402          403          404 
0.0230733489 0.0375102439 0.0696654439 0.0229620845 0.1833987847 0.0487734840 0.1393411200 0.0437528848 0.0616981132 
         405          406          407          408          410          412          413          414          417 
0.0440155088 0.0313870449 0.0150550251 0.0401500878 0.0570594889 0.1328210817 0.1419404655 0.1390423499 0.1266023519 
         420          422          424          425          426          427          428          429          430 
0.0701422477 0.1612091962 0.0456830822 0.0138456759 0.0173261635 0.0098050749 0.0150390637 0.0098895644 0.9869350164 
         431          432          435          436          437          438          440          441          443 
0.0782676178 0.1965630078 0.0200179283 0.0440558572 0.0350600555 0.0483013755 0.0781249344 0.0349705197 0.0283571891 
         444          445          446          448          449          450          451          454          455 
0.0670349282 0.1432893206 0.1367989638 0.1830155148 0.0299619856 0.0483259618 0.4303294082 0.0735524715 0.0282284142 
         456          458          459          460          461          462          463          464          466 
0.0098396842 0.0320540693 0.0332988834 0.1530730787 0.0299883423 0.0355941160 0.0322644599 0.0376072386 0.5009318496 
         468          469          470          471          472          473          475          478          479 
0.0196817918 0.1664617087 0.0082900250 0.0472654902 0.0137962121 0.0360478209 0.0284069477 0.8640377735 0.0184583804 
         480          481          482          483          484          485          486          488          489 
0.0081023553 0.0163481252 0.0379513399 0.0289143228 0.0328066391 0.0829497641 0.0080444226 0.0053259681 0.0200280437 
         490          491          493          494          496          497          498          499          500 
0.1189465102 0.0250278658 0.9161328982 0.1384506974 0.0565209505 0.0207183148 0.0148628825 0.1057743580 0.1946514850 
         501          504          506          507          509          510          514          515          516 
0.1313164199 0.0335641796 0.0239716118 0.0153046905 0.0323643712 0.9688269304 0.0214972958 0.0090348890 0.0345406699 
         517          519          520          521          522          523          524          525          526 
0.0096613603 0.0682051559 0.7014796432 0.0417531899 0.0641561430 0.2338317698 0.0638828002 0.0098690480 0.0443834289 
         528          529          531          533          534          536          537          539          541 
0.0403645820 0.0175213707 0.0513853573 0.0739556481 0.1025714217 0.0601514848 0.1686762567 0.0436454651 0.3701558675 
         544          546          547          548          549          550          552          553          555 
0.0067730134 0.0140451283 0.1233984282 0.0358639356 0.0474341605 0.1656670127 0.0760979972 0.2870219431 0.0170778124 
         557          559          560          564          565          567          568          570          572 
0.0291147178 0.1763860668 0.1021853832 0.0186607601 0.0278235437 0.0515312454 0.0984238523 0.1784422109 0.0422712566 
         573          574          576          577          578          579          581          582          583 
0.2574475459 0.0497325406 0.0573566371 0.0235026385 0.1787001482 0.0584015032 0.2709223090 0.1739820153 0.0337407338 
         585          588          590          592          593          594          595          596          597 
0.0165285756 0.0104522199 0.1066410699 0.0521392200 0.0037333677 0.1029516213 0.0331222835 0.0232337151 0.0085796981 
         598          599          600          601          602          603          605          608          609 
0.0407741349 0.0369294538 0.0284489520 0.1660853841 0.0166972719 0.3270875776 0.0143025868 0.0503081632 0.0810221944 
         610          611          612          613          614          615          616          617          619 
0.0204122914 0.0171459851 0.0195103380 0.0849981019 0.1227067294 0.0583235058 0.0207372174 0.1225706980 0.1067756028 
         620          621          623          624          625          626          627          628          629 
0.4389434702 0.0611320822 0.1315263543 0.2749607452 0.0874345554 0.0108946604 0.2179206419 0.0316768805 0.0526091471 
         630          631          633          634          638          639          640          641          643 
0.1450159764 0.4603469812 0.0041763858 0.2860771913 0.0432343211 0.0168314505 0.1993435843 0.0172007196 0.0291872611 
         644          645          646          647          649          650          652          653          654 
0.1397339433 0.0131413200 0.7936952789 0.0522542230 0.0606462034 0.0268593725 0.1087708389 0.0155578536 0.0218638697 
         656          657          658          660          662          663          667          668          670 
0.0157583387 0.1118041619 0.8760166906 0.3652556237 0.3740041924 0.1413252330 0.0458944801 0.0244012043 0.0095542871 
         671          672          674          675          676          677          678          679          681 
0.0218990914 0.0438603270 0.0233705864 0.0231740736 0.0823344097 0.0703539480 0.0240676703 0.0572273319 0.1799228113 
         683          685          686          687          689          690          691          692          693 
0.0090751646 0.7637503516 0.0499056478 0.0412524978 0.2044333528 0.0153243674 0.0150339813 0.0791594062 0.0072131234 
         694          696          699          700          701          702          703          704          706 
0.0207922958 0.0234658016 0.0742472139 0.0563767748 0.0307696882 0.2524226536 0.9366128228 0.0109996178 0.2402588699 
         707          709          710          711          712          713          714          716          717 
0.1219002577 0.0155000067 0.0138164342 0.0139398396 0.0522767892 0.1089649644 0.0756855121 0.0775020953 0.0458313223 
         719          720          721          723          725          726          730          731          733 
0.0128198945 0.0113738614 0.1008457791 0.0825227261 0.1068155252 0.1341681927 0.0564940033 0.0100441885 0.1456370088 
         734          735          736          737          738          739          741          743          744 
0.0454958180 0.0824435761 0.0682055641 0.0603785747 0.2923615737 0.0271215191 0.0691668332 0.2053376072 0.4179274709 
         745          747          748          749          751          752          753          755          759 
0.0703688835 0.0316484101 0.0227013734 0.0267071084 0.0114324670 0.0356452761 0.0064965064 0.0203759165 0.0080499567 
         760          763          767          768          771          772          773          774          775 
0.2647357587 0.0787228436 0.0160026613 0.0151853026 0.0060105509 0.0117825561 0.1359468292 0.0168252105 0.0035388904 
         776          777          778          779          780          781          782          783          784 
0.0642672262 0.0164772545 0.0977099008 0.0178078454 0.0346659117 0.0215709395 0.0253988812 0.0895463968 0.0053257183 
         786          787          788          789          790          791          792          796          797 
0.1598899643 0.0666314640 0.0423319131 0.1169016872 0.0359452218 0.1303844673 0.0253871789 0.0238917599 0.1403549412 
         798          799          800          802          803          805          807          808          809 
0.2095262822 0.0933837338 0.0545638083 0.0408614361 0.0352687315 0.7389880260 0.0763111920 0.0129980555 0.0543470712 
         810          811          812          813          814          816          817          820          821 
0.1893818661 0.0595133978 0.0512029687 0.0463090535 0.0573869139 0.0471151154 0.0297387251 0.0448400240 0.0370761887 
         822          823          824          825          826          827          828          829          830 
0.0550201872 0.4203705339 0.8083247320 0.1020902841 0.0826392076 0.0202202018 0.0096158470 0.0213832102 0.0295621429 
         831          833          834          835          836          838          839          841          842 
0.1852562050 0.2138407734 0.0159232854 0.0286436210 0.0679169590 0.3347509678 0.0679207681 0.1673179168 0.0490253698 
         843          846          847          849          850          852          853          854          855 
0.0135168645 0.2918776869 0.0356805122 0.0206088090 0.5394605097 0.0274810710 0.0460792887 0.0200967881 0.0295535137 
         857          858          860          861          862          863          864          865          867 
0.0126426578 0.0373041053 0.0370960676 0.0378833854 0.0492311151 0.3116463198 0.0077980277 0.0119799148 0.0362749771 
         868          870          871          872          874          875          877          879          880 
0.0268070773 0.0066294856 0.0101578252 0.4941097616 0.0321489603 0.1435785146 0.0381516440 0.0245121078 0.0068391690 
         881          882          883          886          887          889          890          891          893 
0.8899231498 0.1271061369 0.0354758408 0.0145724190 0.3384982363 0.0177951690 0.0187886262 0.0151709805 0.1036710312 
         894          895          898          899          900          901          902          903          904 
0.0266929544 0.0304687296 0.0169946484 0.0429025353 0.0094624122 0.0370560929 0.0411578100 0.1271762122 0.2774183519 
         905          906          907          909          910          911          912          913          914 
0.2446552137 0.0346726027 0.0708684056 0.0743225756 0.0302781511 0.0115602609 0.0505699592 0.0291582322 0.0216037726 
         915          916          918          919          922          923          924          925          927 
0.0603460886 0.0667356616 0.0425984737 0.0458035729 0.0977413574 0.2394281777 0.0148192692 0.2040287680 0.0490296260 
         929          932          933          934          936          937          938          940          941 
0.0145566008 0.0124366936 0.0370643845 0.1201329270 0.1096481614 0.4644405709 0.0281217980 0.0360343287 0.1007254520 
         942          944          945          946          950          951          952          954          955 
0.5410614044 0.0448879653 0.1567605712 0.0549355555 0.0905803871 0.0467339059 0.0193737774 0.1484605066 0.0720852929 
         956          957          958          959          960          961          962          963          964 
0.0378112802 0.0877759330 0.0105662992 0.0089153381 0.6388179372 0.0138541784 0.1337312304 0.1633543479 0.0072249743 
         965          966          967          969          972          977          978          979          980 
0.0584172667 0.4217267812 0.0250844265 0.0919944315 0.0206750898 0.0649358583 0.0435342138 0.2025250343 0.0968618086 
         982          983          984          985          986          989          992          994          997 
0.0236008147 0.0152004820 0.0634617701 0.5773126650 0.0297593041 0.0699038665 0.0944008061 0.1302252325 0.0281681256 
         998          999         1000         1001         1002         1004         1006         1007         1008 
0.0415069843 0.1721539974 0.0318326790 0.0744331551 0.0492040849 0.0293818166 0.1823134739 0.0570730944 0.2692832208 
        1009         1011         1012         1013         1015         1016         1018         1019         1020 
0.0261809250 0.0698282472 0.0250921102 0.0137373039 0.0250330559 0.0092057782 0.1854624013 0.0894135213 0.2463659579 
        1021         1027         1028         1029         1031         1033         1034         1035         1036 
0.0477064100 0.0087987386 0.0244471936 0.0068641507 0.1483065567 0.0302715873 0.1411270126 0.0301363490 0.1001228573 
        1038         1039         1040         1041         1042         1044         1046         1047         1048 
0.0310186325 0.0052557585 0.0433632363 0.0755193985 0.0377239228 0.1132268221 0.0367792129 0.0490400916 0.8026786485 
        1049         1050         1051         1053         1056         1057         1058         1059         1061 
0.7086699017 0.0550881255 0.0542584217 0.0588769576 0.1320461814 0.3931451592 0.1026234530 0.0612402402 0.7532820500 
        1062         1064         1065         1067         1069         1071         1073         1074         1075 
0.0457775707 0.0341376691 0.0262809733 0.0720489445 0.0034317437 0.0477648839 0.0212430381 0.0314990657 0.0142032418 
        1076         1077         1078         1079         1083         1085         1086         1089         1090 
0.0019694645 0.1341423939 0.4312162824 0.1121824983 0.0317637790 0.0153475033 0.4507388272 0.2335293934 0.0098678263 
        1091         1092         1093         1094         1095         1096         1098         1099         1101 
0.0084276708 0.0234593776 0.0268265453 0.0231643026 0.1361749862 0.0550484152 0.1062549357 0.0367293277 0.1163324507 
        1103         1105         1106         1107         1109         1113         1114         1115         1116 
0.1248773319 0.0201944203 0.0396655849 0.0007346745 0.1089059830 0.2176585584 0.3954394962 0.0557789753 0.1020526254 
        1117         1118         1119         1121         1122         1124         1125         1127         1128 
0.0103335921 0.0243684027 0.1517158213 0.0132989867 0.0242755726 0.1208352286 0.7670280243 0.5489504125 0.0246859243 
        1129         1130         1131         1132         1133         1134         1136         1140         1142 
0.0819283464 0.0323983630 0.0998230238 0.0540131824 0.0220771681 0.0110514181 0.1260141170 0.1535181707 0.0114774928 
        1146         1147         1148         1149         1151         1152         1153         1154         1155 
0.0175786872 0.0534392710 0.0070473981 0.2105446534 0.0440518223 0.0817231457 0.0372426968 0.0446488664 0.0226057663 
        1156         1157         1160         1161         1163         1165         1166         1167         1168 
0.1378589157 0.2527277046 0.0488214092 0.0593929627 0.0084377619 0.0896629754 0.0449669558 0.7440886234 0.0558590310 
        1169         1170         1172         1173         1174         1175         1177         1178         1179 
0.2636024128 0.1889723985 0.5258016711 0.0155053508 0.9639897198 0.0200223123 0.2254031925 0.1274095949 0.0258873964 
        1181         1186         1187         1188         1189         1190         1191         1192         1193 
0.1210315392 0.0854254038 0.8686654985 0.0713590946 0.0268006750 0.0625866516 0.3351717662 0.0316996476 0.3755420112 
        1194         1195         1196         1198         1201         1203         1204         1205         1206 
0.0643476947 0.0151933503 0.1333751360 0.1028432497 0.0077891516 0.0638167484 0.0255760361 0.0318466714 0.2983905988 
        1207         1208         1211         1213         1214         1215         1216         1218         1219 
0.4669831671 0.0077153971 0.0502225081 0.1188619914 0.0233902409 0.1516977816 0.1166054475 0.0035832470 0.0148475286 
        1222         1224         1230         1231         1232         1233         1235         1236         1237 
0.0539995504 0.0163382828 0.0318566201 0.3816296877 0.0538599545 0.0376486353 0.0121268001 0.0165204159 0.0353605407 
        1238         1239         1240         1241         1242         1243         1244         1245         1246 
0.0432655232 0.0082488391 0.0252605458 0.0186087903 0.1272886311 0.0146731247 0.1118487188 0.0541099944 0.0360565037 
        1247         1248         1249         1250         1251         1252         1254         1256         1257 
0.0611798226 0.0443339342 0.0458779091 0.2584413117 0.0213008053 0.0349637498 0.0299057816 0.0162002905 0.0239662853 
        1258         1259         1261         1263         1264         1265         1266         1267         1268 
0.0066896958 0.0679779491 0.0145357007 0.0152958909 0.0113436541 0.0417687997 0.1048474826 0.3801377514 0.0159929147 
        1269         1272         1274         1275         1276         1277         1279         1280         1281 
0.0343032183 0.0778852034 0.0259242861 0.1645712565 0.0726629164 0.3194857901 0.1401367995 0.2820338821 0.0243862972 
        1282         1283         1284         1285         1286         1288         1289         1292         1293 
0.0403266991 0.0191387709 0.0296308435 0.0072360016 0.0327498334 0.1182118387 0.0091983759 0.0210196200 0.0239031347 
        1294         1295         1296         1298         1299         1301         1302         1304         1307 
0.0363460650 0.0072570909 0.0379661818 0.4671491538 0.2360589329 0.9065932471 0.0190315740 0.8114348665 0.0520843659 
        1308         1309         1311         1313         1314         1315         1316         1317         1318 
0.0178525480 0.0490313850 0.0195139400 0.7351528522 0.0179442806 0.0152167808 0.3170811632 0.0354372750 0.0356556529 
        1319         1320         1321         1322         1323         1324         1325         1327         1328 
0.0440391063 0.6731606123 0.0938294024 0.0784262587 0.0618454133 0.0091869573 0.0469341700 0.0088135837 0.0185687206 
        1330         1331         1334         1335         1336         1337         1339         1340         1341 
0.0916993119 0.1649885976 0.4686280342 0.2977577777 0.0170569771 0.0088503927 0.0317516253 0.0527705357 0.0944585276 
        1342         1344         1345         1346         1347         1348         1349         1351         1353 
0.0095043888 0.0711016174 0.2649628595 0.2226892027 0.0460878871 0.0143210962 0.1256886834 0.0141794070 0.0840164259 
        1354         1355         1356         1357         1358         1359         1360         1361         1362 
0.0450589005 0.0238357157 0.5438129265 0.1953110164 0.0562883922 0.2203988040 0.0495974430 0.0288512246 0.0983867886 
        1364         1365         1366         1367         1368         1369         1371         1372         1373 
0.0023682849 0.0248875663 0.0079567273 0.0547057198 0.0217250147 0.0497529434 0.0371215725 0.3591579327 0.1300763690 
        1374         1375         1378         1379         1380         1381         1382         1383         1384 
0.0217389722 0.3700568431 0.1660494848 0.0268143640 0.2620753817 0.0339683067 0.0587016561 0.0402524189 0.3997739880 
        1385         1386         1387         1388         1391         1392         1393         1395         1396 
0.0177899165 0.0465778712 0.0850201740 0.0474175687 0.1007458998 0.5094638181 0.0304909214 0.0910063964 0.2781154352 
        1399 
0.0126086698 
 [ reached getOption("max.print") -- omitted 2164 entries ]
#ee are now running a prediction function 
set.seed(88)
logistic_model_prediction <- rep("No", 3164)
logistic_model_prediction[logistic_model_probability> 0.5]<-"Yes"
table(logistic_model_prediction, logistic_model$y)
                         
logistic_model_prediction    0    1
                      No  2725  253
                      Yes   64  122
#here the interpretation is as follows, 
#2978 were predicted as No, and 186 as YES, out of 3164
#but just 2725 out of 2978 were correctly predicted as NO (91%)
#and just 122 out of 186 were correctly predicted as YES (65%)

#finally we run our model using our test data.
set.seed(77)
logistic_model <- glm(y~., data=test_data, family=binomial)
summary(logistic_model)

Call:
glm(formula = y ~ ., family = binomial, data = test_data)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-3.8000  -0.3266  -0.1891  -0.0840   2.8295  

Coefficients:
                     Estimate Std. Error z value Pr(>|z|)    
(Intercept)        -4.059e+00  1.243e+00  -3.265 0.001094 ** 
age                -2.906e-03  1.488e-02  -0.195 0.845169    
jobblue-collar     -3.887e-01  4.955e-01  -0.784 0.432771    
jobentrepreneur    -9.920e-01  1.149e+00  -0.864 0.387833    
jobhousemaid       -5.099e-01  8.506e-01  -0.599 0.548849    
jobmanagement       4.576e-02  4.730e-01   0.097 0.922933    
jobretired          9.037e-01  6.018e-01   1.502 0.133176    
jobself-employed    4.354e-01  7.433e-01   0.586 0.558013    
jobservices        -3.484e-01  5.726e-01  -0.608 0.542903    
jobstudent          1.910e+00  7.288e-01   2.621 0.008774 ** 
jobtechnician      -2.222e-02  4.712e-01  -0.047 0.962380    
jobunemployed      -1.223e+00  8.977e-01  -1.362 0.173181    
jobunknown          2.466e-01  1.179e+00   0.209 0.834292    
maritalmarried     -6.652e-01  3.570e-01  -1.863 0.062404 .  
maritalsingle      -4.614e-01  4.230e-01  -1.091 0.275379    
educationsecondary  1.969e-01  4.090e-01   0.481 0.630235    
educationtertiary   2.046e-01  4.714e-01   0.434 0.664266    
educationunknown   -6.887e-01  7.194e-01  -0.957 0.338404    
defaultyes          9.602e-01  8.711e-01   1.102 0.270365    
balance            -1.759e-05  2.992e-05  -0.588 0.556632    
housingyes         -1.681e-01  2.761e-01  -0.609 0.542592    
loanyes            -4.221e-01  4.144e-01  -1.019 0.308339    
contacttelephone   -5.199e-01  5.447e-01  -0.954 0.339857    
contactunknown     -2.169e+00  5.487e-01  -3.954 7.70e-05 ***
day                 4.539e-02  1.696e-02   2.676 0.007460 ** 
monthaug           -9.840e-02  4.837e-01  -0.203 0.838811    
monthdec           -9.126e-01  1.580e+00  -0.578 0.563430    
monthfeb            9.004e-01  5.484e-01   1.642 0.100626    
monthjan           -1.802e+00  7.962e-01  -2.263 0.023606 *  
monthjul           -5.563e-01  4.975e-01  -1.118 0.263454    
monthjun            1.343e+00  6.298e-01   2.132 0.033014 *  
monthmar            2.281e+00  7.352e-01   3.103 0.001918 ** 
monthmay           -1.170e+00  4.842e-01  -2.417 0.015638 *  
monthnov           -1.432e+00  5.767e-01  -2.482 0.013059 *  
monthoct            1.818e+00  6.500e-01   2.797 0.005154 ** 
monthsep            1.022e+00  7.815e-01   1.308 0.190912    
duration            4.365e-03  4.077e-04  10.706  < 2e-16 ***
campaign           -2.037e-01  7.467e-02  -2.728 0.006374 ** 
pdays               6.072e-03  1.735e-03   3.500 0.000466 ***
previous            5.285e-02  5.761e-02   0.917 0.358956    
poutcomeother      -4.624e-01  5.740e-01  -0.806 0.420469    
poutcomesuccess     2.978e+00  5.370e-01   5.546 2.92e-08 ***
poutcomeunknown     9.863e-01  6.292e-01   1.567 0.117006    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 926.69  on 1356  degrees of freedom
Residual deviance: 540.32  on 1314  degrees of freedom
AIC: 626.32

Number of Fisher Scoring iterations: 7
#here we have which ones are statistically significants. (variables) 
coef(logistic_model)
       (Intercept)                age     jobblue-collar    jobentrepreneur       jobhousemaid      jobmanagement 
     -4.0585260115      -0.0029058795      -0.3887379990      -0.9919776570      -0.5099348286       0.0457614486 
        jobretired   jobself-employed        jobservices         jobstudent      jobtechnician      jobunemployed 
      0.9036807117       0.4354300308      -0.3484000081       1.9100598967      -0.0222236797      -1.2226812783 
        jobunknown     maritalmarried      maritalsingle educationsecondary  educationtertiary   educationunknown 
      0.2465683914      -0.6651871142      -0.4614029532       0.1968938299       0.2045828644      -0.6886820319 
        defaultyes            balance         housingyes            loanyes   contacttelephone     contactunknown 
      0.9601571911      -0.0000175867      -0.1681194794      -0.4221052310      -0.5199038480      -2.1694838173 
               day           monthaug           monthdec           monthfeb           monthjan           monthjul 
      0.0453891762      -0.0984014541      -0.9125762962       0.9004353488      -1.8021860828      -0.5563402873 
          monthjun           monthmar           monthmay           monthnov           monthoct           monthsep 
      1.3426546518       2.2810050805      -1.1703382534      -1.4315058417       1.8182958891       1.0220701134 
          duration           campaign              pdays           previous      poutcomeother    poutcomesuccess 
      0.0043651722      -0.2036852409       0.0060720579       0.0528485504      -0.4624268693       2.9783174578 
   poutcomeunknown 
      0.9862868404 
#here we have the coefficient models 
logistic_model_probability  <- predict(logistic_model, type="response")
#here the predict function give us the PROBABILITY THAT THE ANSWER WILL BE YES GIVEN THE VALUES OF THE PREDICTORS
# TO INTERPRET THESE  VALUES WE NEED TO CONVERT THEM WITH E(^VALUE) 
logistic_model_probability
           1            3            4            6           19           31           34           35           39 
9.423998e-02 2.356954e-01 7.897764e-03 2.680194e-01 3.782444e-03 6.938937e-01 6.097742e-01 9.117484e-02 4.026908e-01 
          42           46           47           48           49           58           59           62           63 
4.985529e-02 1.438449e-03 4.138006e-03 5.993638e-03 7.791532e-02 6.853948e-02 1.585206e-02 5.844027e-01 6.531501e-02 
          66           67           74           83           91           95           96           97          101 
2.413305e-02 1.452112e-02 5.385350e-03 1.138020e-02 1.222479e-02 1.874291e-02 5.298436e-02 1.687303e-03 2.452522e-03 
         104          106          108          111          113          119          120          121          122 
4.021339e-03 1.049744e-01 1.787980e-01 9.859879e-01 3.528506e-02 2.515282e-02 2.763372e-01 3.981955e-01 2.036739e-02 
         125          139          141          150          151          154          163          164          166 
1.759059e-01 3.137934e-01 1.183411e-01 4.658016e-04 4.373939e-04 4.125920e-02 6.962129e-04 1.072691e-03 7.268097e-02 
         167          168          169          174          175          177          178          180          185 
9.362354e-02 1.102541e-01 1.678881e-03 3.084114e-02 1.605683e-02 7.749833e-03 3.373894e-02 8.139385e-03 1.216818e-02 
         188          189          190          191          193          203          208          209          211 
7.928814e-02 3.866400e-02 5.820160e-01 3.348689e-03 3.611977e-02 5.174030e-01 1.337072e-02 9.986585e-02 3.548263e-02 
         212          216          220          221          222          223          224          232          235 
1.897619e-02 2.133844e-01 4.142470e-02 6.723201e-02 1.803054e-03 1.371370e-03 2.022503e-02 8.407030e-03 1.343280e-01 
         240          243          244          245          246          254          261          264          266 
8.613078e-03 1.197065e-02 2.271023e-02 1.173475e-02 1.613135e-02 1.532297e-01 1.782388e-02 8.576111e-03 8.874644e-03 
         270          283          289          295          301          302          304          307          308 
2.964735e-02 1.013302e-02 3.832799e-02 4.213177e-02 2.549766e-01 6.642378e-01 4.247007e-02 2.842803e-01 1.849562e-04 
         314          322          325          330          338          345          348          350          355 
1.710967e-01 7.117219e-02 8.565046e-03 1.231081e-02 1.426769e-01 1.791785e-01 7.309699e-01 1.129212e-01 9.585387e-01 
         361          364          365          367          371          372          376          380          383 
6.217213e-03 1.681978e-02 4.557402e-02 5.326905e-02 6.897242e-03 3.119495e-01 3.730734e-02 1.400565e-02 6.510910e-01 
         385          387          389          390          393          394          396          398          409 
1.753426e-02 2.363417e-02 1.913630e-02 5.276081e-03 3.497652e-01 5.237843e-02 1.708932e-03 6.075391e-02 9.296936e-03 
         411          415          416          418          419          421          423          433          434 
1.856532e-02 1.243585e-02 9.123713e-01 1.513350e-02 8.583626e-02 5.659274e-03 2.238803e-01 9.017649e-02 3.543156e-02 
         439          442          447          452          453          457          465          467          474 
1.024110e-02 1.031289e-02 3.192231e-03 8.506447e-02 3.756868e-03 4.851180e-01 6.750747e-01 6.316407e-02 4.359793e-01 
         476          477          487          492          495          502          503          505          508 
5.918384e-04 8.489660e-04 3.616948e-01 5.578654e-03 9.717989e-01 7.774442e-03 4.977307e-02 4.069502e-01 4.695188e-02 
         511          512          513          518          527          530          532          535          538 
7.426653e-02 2.803017e-01 1.479435e-01 5.019267e-01 6.297596e-01 1.069855e-01 4.119102e-03 1.042307e-01 4.140167e-02 
         540          542          543          545          551          554          556          558          561 
3.884483e-03 1.731960e-01 4.331174e-03 5.474931e-02 2.206101e-02 8.121080e-06 6.902459e-01 1.848630e-01 7.897811e-03 
         562          563          566          569          571          575          580          584          586 
2.286500e-01 6.740032e-03 2.801548e-02 9.992681e-01 4.904696e-04 1.774982e-02 1.665658e-01 1.701886e-01 5.188279e-02 
         587          589          591          604          606          607          618          622          632 
8.095474e-03 9.244375e-03 2.048012e-02 4.973076e-02 2.802862e-02 4.587979e-03 9.888321e-02 3.045751e-02 2.212493e-02 
         635          636          637          642          648          651          655          659          661 
4.507761e-01 7.362343e-02 1.014127e-02 6.794069e-02 1.641534e-02 3.469980e-02 3.606644e-02 5.935110e-01 3.135469e-02 
         664          665          666          669          673          680          682          684          688 
7.068182e-02 2.572480e-03 3.021234e-01 2.255631e-01 3.059288e-03 1.476798e-02 6.952887e-02 1.312012e-01 6.818545e-04 
         695          697          698          705          708          715          718          722          724 
2.474182e-02 4.078967e-02 3.604242e-02 7.279991e-01 7.285658e-02 5.012253e-02 2.094585e-02 7.509337e-02 9.104911e-04 
         727          728          729          732          740          742          746          750          754 
1.638160e-02 1.347388e-01 3.806010e-03 9.018676e-03 2.380622e-02 3.013653e-01 1.237717e-02 1.563177e-03 5.136567e-02 
         756          757          758          761          762          764          765          766          769 
1.268622e-02 1.293610e-01 4.667217e-02 9.969752e-02 1.645348e-02 1.549317e-02 5.294533e-02 8.707558e-02 3.215097e-02 
         770          785          793          794          795          801          804          806          815 
1.609579e-01 2.083028e-03 1.263511e-01 2.830853e-02 9.583788e-01 5.176156e-02 7.121242e-01 1.440965e-02 6.691469e-02 
         818          819          832          837          840          844          845          848          851 
2.986126e-03 2.981675e-02 1.427812e-01 1.396830e-02 8.672174e-04 4.104646e-02 6.614879e-03 5.043962e-02 4.320859e-02 
         856          859          866          869          873          876          878          884          885 
9.567021e-01 3.089906e-01 3.520258e-02 1.016226e-01 2.758637e-02 1.122553e-01 2.745796e-02 8.194216e-03 9.744699e-02 
         888          892          896          897          908          917          920          921          926 
1.161552e-03 2.372173e-02 6.014836e-03 4.888144e-01 1.503317e-02 2.424927e-02 1.458374e-03 5.076303e-02 2.808635e-03 
         928          930          931          935          939          943          947          948          949 
6.146284e-03 3.787750e-03 2.063006e-02 2.271791e-01 2.568034e-03 3.435469e-02 2.555039e-02 1.568603e-03 7.139805e-03 
         953          968          970          971          973          974          975          976          981 
1.041397e-02 1.772348e-02 4.063971e-02 3.330834e-01 2.115367e-03 3.539088e-03 1.449835e-02 3.774908e-01 9.307439e-01 
         987          988          990          991          993          995          996         1003         1005 
2.166308e-02 1.270366e-02 3.608405e-01 5.250420e-02 1.426690e-03 5.450631e-03 3.711025e-02 3.237625e-03 3.110730e-02 
        1010         1014         1017         1022         1023         1024         1025         1026         1030 
8.964706e-03 6.705747e-02 1.522428e-03 4.120864e-02 1.271795e-03 1.480061e-03 2.373346e-02 6.719766e-02 6.038993e-02 
        1032         1037         1043         1045         1052         1054         1055         1060         1063 
4.389142e-02 3.716841e-03 8.805291e-03 1.114857e-02 3.897109e-03 1.304038e-01 3.079697e-02 5.809577e-02 4.668132e-02 
        1066         1068         1070         1072         1080         1081         1082         1084         1087 
7.344012e-02 2.911776e-03 4.232494e-03 7.888569e-03 2.484600e-02 1.029102e-03 3.289075e-02 3.802634e-01 3.120283e-02 
        1088         1097         1100         1102         1104         1108         1110         1111         1112 
2.207748e-02 3.820468e-02 5.666294e-02 2.409255e-02 8.633258e-03 2.737356e-02 2.143006e-01 2.302042e-02 5.772710e-01 
        1120         1123         1126         1135         1137         1138         1139         1141         1143 
2.933556e-02 2.358183e-02 2.330683e-02 2.753615e-02 1.022638e-02 1.566259e-03 1.586097e-02 1.265121e-03 7.015998e-01 
        1144         1145         1150         1158         1159         1162         1164         1171         1176 
7.043326e-03 1.228425e-02 3.473755e-02 1.261787e-02 2.885642e-01 2.178528e-01 5.695680e-04 4.300236e-02 4.531577e-01 
        1180         1182         1183         1184         1185         1197         1199         1200         1202 
1.873416e-01 3.190228e-01 2.865781e-03 6.494833e-03 6.301431e-02 9.880992e-02 6.593367e-02 4.437572e-02 1.358419e-01 
        1209         1210         1212         1217         1220         1221         1223         1225         1226 
1.265928e-02 1.203064e-01 1.359460e-02 4.451493e-01 2.902200e-02 1.269028e-01 5.325866e-02 1.415869e-02 3.033616e-02 
        1227         1228         1229         1234         1253         1255         1260         1262         1270 
8.756039e-02 1.891414e-03 1.561067e-02 9.539501e-04 2.602556e-02 1.312119e-02 2.685905e-01 7.065128e-03 2.420425e-02 
        1271         1273         1278         1287         1290         1291         1297         1300         1303 
2.119924e-03 9.600023e-02 2.245498e-01 8.793592e-03 1.640736e-02 2.737029e-02 1.165342e-01 1.649190e-02 3.080394e-02 
        1305         1306         1310         1312         1326         1329         1332         1333         1338 
1.483588e-02 6.352374e-04 1.307224e-01 8.586762e-02 8.276405e-02 5.233735e-03 3.649833e-02 1.418722e-01 3.956754e-01 
        1343         1350         1352         1363         1370         1376         1377         1389         1390 
8.392774e-01 9.093988e-01 1.894939e-02 3.495759e-03 8.294444e-02 1.790771e-02 4.673831e-02 9.883338e-03 9.430228e-02 
        1394         1397         1398         1402         1403         1405         1406         1407         1411 
3.014362e-02 8.433697e-04 1.960309e-03 7.923381e-04 3.464101e-01 2.311302e-02 1.117191e-02 3.471526e-02 2.375864e-03 
        1413         1417         1418         1420         1422         1433         1444         1449         1450 
3.237785e-01 1.787074e-03 1.289874e-03 3.489445e-02 3.386969e-01 6.814315e-02 8.856502e-02 1.283799e-03 9.021068e-01 
        1453         1454         1457         1460         1462         1466         1472         1473         1475 
1.553239e-02 1.382243e-02 1.199391e-03 9.567269e-01 1.051176e-01 1.811459e-02 9.868516e-02 1.304853e-02 1.489591e-01 
        1482         1483         1491         1493         1498         1499         1500         1501         1509 
2.947772e-04 1.957395e-02 5.390038e-02 6.837160e-04 7.585426e-02 2.730671e-02 2.589934e-02 4.608001e-02 8.539044e-02 
        1511         1514         1522         1524         1525         1528         1530         1532         1539 
5.361595e-02 6.254131e-03 9.460256e-02 2.447795e-02 5.148304e-02 4.075438e-03 2.566483e-01 1.990439e-02 1.502109e-02 
        1543         1544         1545         1548         1551         1554         1558         1563         1568 
1.554015e-02 4.256914e-02 1.242915e-02 9.049175e-03 2.793716e-02 8.301456e-02 8.918013e-01 5.357080e-04 1.074714e-01 
        1570         1575         1576         1577         1579         1580         1585         1592         1594 
5.563936e-03 1.036746e-01 2.855994e-02 3.737701e-01 1.865146e-02 5.902854e-02 7.482283e-03 1.978639e-01 2.231278e-02 
        1595         1599         1609         1613         1621         1624         1628         1629         1633 
3.820550e-02 2.026664e-03 1.437067e-03 1.173396e-02 4.123990e-02 6.110201e-03 9.719497e-04 1.466132e-02 2.435631e-02 
        1636         1637         1638         1640         1644         1647         1648         1653         1654 
2.874540e-02 2.070537e-02 7.333213e-04 6.926296e-03 1.821270e-03 1.053755e-01 2.804236e-02 2.412660e-02 6.582605e-01 
        1655         1657         1658         1659         1663         1664         1673         1676         1678 
7.715374e-03 1.757655e-02 3.751173e-02 5.960096e-02 8.036191e-04 3.389909e-02 3.119892e-01 4.821819e-02 1.661489e-02 
        1681         1682         1689         1691         1694         1695         1696         1698         1700 
2.766266e-01 4.574703e-03 3.233338e-02 1.724705e-03 1.088375e-01 3.876106e-03 8.868277e-01 3.049450e-02 3.635048e-03 
        1704         1705         1706         1716         1719         1720         1721         1724         1726 
1.171174e-01 5.867187e-01 2.845882e-01 6.493748e-03 6.912399e-03 6.494701e-01 3.807303e-03 1.734548e-02 7.161927e-01 
        1732         1737         1741         1745         1748         1749         1755         1761         1762 
1.072545e-01 9.155321e-01 2.061633e-02 5.835609e-02 4.514424e-03 9.362359e-02 8.553972e-01 5.168115e-01 9.129450e-04 
        1763         1766         1770         1771         1773         1774         1775         1777         1781 
1.868544e-01 1.450078e-03 7.929347e-04 9.853042e-04 3.162807e-03 3.798012e-02 2.527272e-02 3.528688e-03 4.103534e-03 
        1782         1785         1787         1789         1790         1795         1797         1801         1802 
1.507161e-01 5.911127e-05 4.360570e-02 1.120317e-02 1.524548e-03 5.498878e-03 3.968897e-02 2.379871e-03 8.162288e-03 
        1808         1813         1814         1816         1822         1828         1831         1835         1838 
3.549229e-02 1.796265e-02 2.307640e-02 2.395519e-02 4.128810e-03 1.487336e-02 1.551614e-01 1.453634e-02 2.648986e-01 
        1844         1850         1854         1857         1859         1863         1864         1867         1872 
6.000483e-02 1.049853e-02 4.697382e-03 6.284642e-02 2.085653e-03 8.546938e-01 4.518726e-01 2.672787e-01 4.453462e-02 
        1875         1876         1877         1886         1895         1900         1901         1902         1907 
9.437988e-03 5.605796e-02 2.129505e-01 8.333583e-02 6.481361e-03 9.097653e-01 2.596149e-01 2.434927e-02 7.267226e-03 
        1909         1915         1920         1921         1922         1923         1924         1927         1928 
9.467156e-04 9.502834e-01 1.195515e-01 4.947225e-03 1.260017e-03 5.490051e-02 6.157369e-02 1.288666e-01 1.077590e-01 
        1933         1934         1936         1937         1939         1942         1943         1947         1950 
3.127987e-03 2.615677e-02 2.343689e-02 4.200719e-02 1.007173e-02 1.593904e-02 5.047852e-02 4.040055e-01 1.544409e-02 
        1960         1962         1963         1964         1965         1967         1969         1972         1974 
2.122785e-01 1.809135e-02 1.410661e-01 5.924158e-02 1.011788e-02 2.761947e-02 3.543548e-02 6.923140e-03 5.878797e-03 
        1990         1991         1997         2000         2002         2005         2009         2011         2016 
1.926872e-02 3.282564e-03 3.696606e-02 1.433456e-03 2.691062e-05 2.527100e-01 5.958971e-03 1.539998e-02 3.544676e-01 
        2018         2019         2020         2024         2025         2026         2028         2030         2031 
4.602687e-01 6.142401e-01 1.790278e-02 1.274441e-02 2.869384e-02 7.591942e-02 2.731005e-03 2.367671e-02 7.241521e-03 
        2033         2035         2037         2039         2044         2048         2053         2055         2058 
1.433249e-01 1.504607e-02 9.055138e-03 9.464601e-03 9.710351e-03 1.257694e-01 9.301276e-03 6.603768e-02 3.921789e-02 
        2060         2062         2063         2066         2072         2092         2093         2102         2109 
1.522995e-03 1.392095e-03 4.458917e-02 2.337138e-02 1.250356e-02 1.149679e-02 7.746603e-02 2.132698e-03 8.845166e-04 
        2111         2113         2115         2120         2121         2125         2128         2129         2133 
8.067044e-02 6.679365e-02 3.571234e-02 6.400337e-03 8.255445e-02 1.538730e-03 6.730783e-02 1.884706e-02 6.633179e-02 
        2140         2141         2144         2145         2146         2151         2152         2154         2158 
1.844613e-02 2.284926e-01 1.024739e-01 6.127801e-02 1.371318e-02 1.105560e-02 9.078919e-02 2.576911e-02 3.708094e-02 
        2163         2164         2166         2168         2173         2187         2201         2207         2208 
4.124268e-02 4.448225e-02 3.369217e-02 1.498155e-02 5.760880e-03 1.248265e-02 2.202484e-03 3.978750e-02 1.275914e-03 
        2209         2211         2213         2216         2217         2218         2223         2227         2231 
2.093977e-02 3.803208e-03 6.491758e-01 3.067556e-02 3.808520e-03 7.038234e-01 9.877890e-03 1.170745e-02 1.083193e-02 
        2235         2240         2246         2250         2253         2257         2261         2262         2266 
1.571773e-02 1.105040e-02 1.098711e-02 3.859656e-01 1.873115e-02 2.797520e-01 1.012135e-01 9.071630e-02 1.644549e-04 
        2268         2270         2272         2274         2277         2280         2285         2289         2290 
2.143083e-02 1.239253e-03 5.097842e-02 5.493208e-04 2.068655e-03 1.792697e-01 1.937927e-03 2.648746e-02 4.550516e-02 
        2291         2292         2293         2298         2299         2300         2303         2304         2305 
3.132821e-02 9.782240e-02 6.483812e-03 8.821514e-02 1.675149e-03 1.850971e-02 9.320196e-02 1.288570e-02 5.467203e-02 
        2310         2311         2315         2321         2327         2328         2330         2335         2336 
1.694177e-02 2.872864e-02 2.807219e-02 1.654312e-05 1.896500e-03 1.289184e-03 1.882870e-02 3.660731e-03 3.919953e-02 
        2338         2339         2340         2344         2345         2349         2351         2354         2356 
5.835231e-03 2.972239e-02 3.549004e-02 1.683250e-02 2.401725e-03 4.908372e-02 5.087138e-02 6.017883e-02 9.896499e-02 
        2360         2363         2373         2376         2380         2382         2387         2389         2391 
1.293700e-02 5.421098e-02 6.084067e-01 6.776978e-01 5.456577e-02 4.479280e-03 2.242258e-03 1.047505e-02 7.125403e-03 
        2394         2401         2404         2407         2409         2412         2414         2416         2420 
6.083243e-03 1.142933e-01 2.842829e-02 2.247962e-01 1.339587e-02 7.088291e-02 7.924113e-03 1.954800e-01 1.244357e-01 
        2425         2431         2432         2436         2440         2441         2442         2444         2446 
3.366380e-02 1.086723e-02 5.378037e-02 3.277241e-02 1.060088e-03 2.391118e-01 3.961058e-03 7.344886e-02 5.057013e-02 
        2447         2454         2457         2458         2460         2463         2465         2466         2471 
8.426400e-02 2.489165e-02 3.894918e-03 3.411881e-02 3.177803e-02 3.410295e-03 8.576735e-02 1.367961e-02 2.051554e-01 
        2472         2473         2480         2484         2487         2489         2490         2491         2494 
1.493556e-01 1.165264e-02 2.546327e-02 1.048788e-02 6.936607e-01 4.043615e-03 2.437894e-02 8.621314e-02 4.282102e-02 
        2496         2497         2502         2503         2508         2513         2518         2519         2525 
1.036417e-02 2.044897e-02 4.772853e-03 1.519161e-02 1.036544e-02 7.076732e-02 5.118440e-04 7.552744e-02 1.055378e-01 
        2526         2529         2530         2531         2533         2538         2539         2542         2544 
1.882868e-03 1.089360e-03 2.012239e-03 3.899082e-02 1.936907e-02 2.762866e-02 5.034315e-02 1.243136e-02 8.641286e-02 
        2547         2549         2552         2554         2555         2557         2560         2566         2575 
2.304982e-03 4.657883e-04 1.490799e-02 1.084553e-01 7.222965e-03 4.185321e-01 3.173854e-03 7.490810e-03 3.580093e-04 
        2576         2578         2580         2581         2583         2586         2589         2590         2592 
1.451520e-03 8.803519e-04 1.008038e-03 5.447295e-04 8.514613e-02 3.864637e-02 1.168671e-01 9.123393e-03 5.577226e-01 
        2596         2599         2600         2606         2607         2608         2609         2612         2621 
4.079853e-02 1.312229e-01 1.269439e-02 1.220959e-03 5.562231e-03 5.906796e-02 1.921861e-01 3.190208e-02 6.281541e-02 
        2622         2623         2624         2628         2632         2633         2635         2641         2646 
5.385882e-04 3.912593e-02 5.519781e-02 3.509140e-02 7.205288e-02 3.293000e-02 6.962000e-03 7.998825e-02 1.056065e-01 
        2647         2651         2654         2657         2661         2665         2679         2680         2684 
1.780998e-02 2.376780e-03 9.774352e-01 2.637543e-02 1.198068e-03 2.703850e-02 1.760281e-02 1.772037e-02 2.082288e-02 
        2685         2690         2691         2694         2696         2699         2701         2702         2704 
5.067062e-03 6.854882e-02 1.670242e-01 7.631390e-03 3.523942e-02 4.951324e-02 2.921431e-01 1.098314e-01 6.109439e-03 
        2717         2718         2720         2722         2726         2730         2733         2735         2736 
6.608014e-02 1.043930e-01 2.314632e-01 3.064805e-03 4.850052e-02 1.246613e-03 2.333118e-02 3.195701e-02 1.673397e-02 
        2738         2740         2746         2747         2748         2750         2753         2760         2761 
4.844605e-03 3.085025e-02 3.348347e-01 3.142218e-01 1.571585e-03 2.183616e-01 1.829145e-02 1.054082e-02 5.392962e-01 
        2764         2769         2772         2774         2780         2781         2783         2784         2788 
1.833465e-02 1.751282e-03 1.462672e-02 5.149069e-01 2.127605e-02 3.470069e-01 1.173357e-03 2.495402e-02 7.242068e-02 
        2791         2797         2798         2800         2804         2805         2807         2808         2810 
6.089787e-03 7.013433e-03 5.411606e-04 3.253761e-02 4.750935e-03 1.546108e-01 2.479675e-02 1.290335e-02 1.510286e-01 
        2811         2812         2818         2824         2831         2832         2836         2840         2843 
8.479612e-03 2.110663e-02 1.747282e-03 3.093137e-01 5.938409e-03 3.936504e-02 2.456325e-02 1.667767e-02 8.056117e-03 
        2845         2851         2853         2855         2858         2860         2871         2872         2875 
1.652125e-04 4.952833e-03 2.518140e-01 5.156249e-02 3.984146e-02 4.322980e-02 7.297162e-02 7.375229e-02 8.859354e-03 
        2876         2879         2880         2881         2885         2887         2893         2895         2897 
9.838757e-01 2.286211e-02 2.616960e-01 6.098506e-03 9.895165e-03 3.037893e-03 3.675752e-03 3.206650e-02 1.314639e-01 
        2905         2907         2908         2914         2916         2917         2919         2923         2925 
4.125994e-01 1.084163e-01 9.169585e-02 9.482715e-02 3.988669e-02 1.614767e-02 2.490049e-01 3.998561e-01 3.686095e-02 
        2928         2930         2936         2945         2952         2953         2954         2955         2958 
3.740337e-03 3.288664e-02 2.371257e-03 5.230266e-01 3.944778e-02 3.121878e-03 6.305513e-01 9.476850e-02 1.900664e-02 
        2962         2964         2965         2968         2970         2971         2972         2975         2976 
2.004332e-02 4.979746e-01 1.143879e-02 3.493254e-02 5.535797e-01 3.496607e-02 2.778177e-01 6.794041e-02 1.798011e-02 
        2977         2978         2979         2980         2981         2984         2987         2992         2993 
2.038537e-03 3.780801e-03 1.218634e-02 1.319170e-02 8.375562e-01 3.788959e-02 1.651423e-01 1.713194e-02 9.370672e-02 
        2995         3000         3004         3005         3006         3012         3014         3020         3023 
8.923712e-03 2.003428e-02 9.582799e-02 6.912961e-03 6.318882e-01 3.280976e-02 2.301373e-01 2.236171e-02 2.581538e-02 
        3025         3029         3031         3032         3035         3040         3041         3044         3046 
1.942900e-02 2.593474e-03 1.538809e-03 1.037444e-01 1.765781e-03 2.331650e-01 1.825974e-02 9.563225e-03 2.897029e-02 
        3047         3051         3055         3061         3069         3077         3079         3082         3087 
5.595799e-03 1.876174e-02 4.836113e-02 1.227289e-01 3.964117e-02 1.794079e-01 4.496931e-02 9.250071e-02 1.694487e-02 
        3089         3091         3092         3095         3099         3106         3109         3112         3116 
6.888773e-01 2.797516e-02 3.085613e-01 3.032644e-01 6.010646e-03 2.879690e-02 3.582151e-04 4.782340e-02 2.351073e-02 
        3118         3122         3123         3131         3135         3136         3144         3156         3158 
1.663387e-01 4.516835e-02 2.251189e-03 9.197174e-03 5.475543e-04 2.918912e-01 2.942462e-03 1.041232e-02 6.758596e-01 
        3162         3164         3166         3172         3173         3175         3179         3180         3182 
1.828354e-01 1.120866e-01 1.653075e-02 4.503634e-02 3.663657e-02 5.884613e-03 9.079641e-02 1.675327e-02 1.273027e-02 
        3188         3189         3194         3195         3196         3199         3200         3203         3207 
1.348191e-01 4.179612e-03 2.114356e-01 1.219157e-02 5.155215e-03 4.938252e-02 3.880330e-02 5.115321e-01 1.005104e-02 
        3209         3212         3213         3218         3219         3225         3227         3233         3234 
8.872802e-04 1.852435e-02 1.305915e-02 3.179991e-02 6.950205e-03 5.756234e-01 1.538102e-02 8.849140e-03 5.382976e-02 
        3240         3241         3242         3243         3244         3250         3251         3255         3260 
4.825063e-01 3.618485e-02 6.273671e-03 3.382692e-02 9.473031e-01 6.104223e-03 9.951075e-01 1.483713e-03 4.765594e-03 
        3263 
3.728299e-02 
 [ reached getOption("max.print") -- omitted 357 entries ]
#ee are now running a prediction function 
set.seed(102)
logistic_model_prediction <- rep("No", 1357)
logistic_model_prediction[logistic_model_probability> 0.5]<-"Yes"
table(predicted=logistic_model_prediction, observed=logistic_model$y)
         observed
predicted    0    1
      No  1187   82
      Yes   24   64
#here the interpretation is as follows, 
#1269 were predicted as NO, 88 were predicted as YES 
#of which 93% of the NO were correctly predicted 
#and 72% of the yes cases were correctly predicted as YES. 
#and this is our result when running the logistic regression in our test data.

#we now fit a boosted tree to our bank data 
library(tidyverse)
package 㤼㸱tidyverse㤼㸲 was built under R version 3.6.3Registered S3 methods overwritten by 'dbplyr':
  method         from
  print.tbl_lazy     
  print.tbl_sql      
-- Attaching packages ------------------------------------------------------------------------------------ tidyverse 1.3.0 --
v tibble  3.0.4     v stringr 1.4.0
v tidyr   1.1.2     v forcats 0.5.0
v purrr   0.3.4     
package 㤼㸱tibble㤼㸲 was built under R version 3.6.3package 㤼㸱tidyr㤼㸲 was built under R version 3.6.3package 㤼㸱purrr㤼㸲 was built under R version 3.6.3package 㤼㸱stringr㤼㸲 was built under R version 3.6.3package 㤼㸱forcats㤼㸲 was built under R version 3.6.3-- Conflicts --------------------------------------------------------------------------------------- tidyverse_conflicts() --
x plyr::arrange()      masks dplyr::arrange()
x gridExtra::combine() masks dplyr::combine()
x purrr::compact()     masks plyr::compact()
x plyr::count()        masks dplyr::count()
x tidyr::expand()      masks Matrix::expand()
x plyr::failwith()     masks dplyr::failwith()
x dplyr::filter()      masks stats::filter()
x plyr::id()           masks dplyr::id()
x dplyr::lag()         masks stats::lag()
x purrr::lift()        masks caret::lift()
x plyr::mutate()       masks dplyr::mutate()
x tidyr::pack()        masks Matrix::pack()
x plyr::rename()       masks dplyr::rename()
x MASS::select()       masks dplyr::select()
x plyr::summarise()    masks dplyr::summarise()
x plyr::summarize()    masks dplyr::summarize()
x tidyr::unpack()      masks Matrix::unpack()
library(ggplot2)
library(caret)
library(caretEnsemble)
package 㤼㸱caretEnsemble㤼㸲 was built under R version 3.6.3
Attaching package: 㤼㸱caretEnsemble㤼㸲

The following object is masked from 㤼㸱package:ggplot2㤼㸲:

    autoplot
library(psych)

Attaching package: 㤼㸱psych㤼㸲

The following objects are masked from 㤼㸱package:ggplot2㤼㸲:

    %+%, alpha
library(Amelia)
package 㤼㸱Amelia㤼㸲 was built under R version 3.6.3Loading required package: Rcpp
package 㤼㸱Rcpp㤼㸲 was built under R version 3.6.3## 
## Amelia II: Multiple Imputation
## (Version 1.7.6, built: 2019-11-24)
## Copyright (C) 2005-2021 James Honaker, Gary King and Matthew Blackwell
## Refer to http://gking.harvard.edu/amelia/ for more information
## 
library(mice)
package 㤼㸱mice㤼㸲 was built under R version 3.6.3
Attaching package: 㤼㸱mice㤼㸲

The following object is masked from 㤼㸱package:stats㤼㸲:

    filter

The following objects are masked from 㤼㸱package:base㤼㸲:

    cbind, rbind
library(GGally)
package 㤼㸱GGally㤼㸲 was built under R version 3.6.3Registered S3 method overwritten by 'GGally':
  method from   
  +.gg   ggplot2
library(rpart)
package 㤼㸱rpart㤼㸲 was built under R version 3.6.3
library(randomForest)
package 㤼㸱randomForest㤼㸲 was built under R version 3.6.3randomForest 4.6-14
Type rfNews() to see new features/changes/bug fixes.

Attaching package: 㤼㸱randomForest㤼㸲

The following object is masked from 㤼㸱package:psych㤼㸲:

    outlier

The following object is masked from 㤼㸱package:gridExtra㤼㸲:

    combine

The following object is masked from 㤼㸱package:dplyr㤼㸲:

    combine

The following object is masked from 㤼㸱package:ggplot2㤼㸲:

    margin
library(e1071)
package 㤼㸱e1071㤼㸲 was built under R version 3.6.3
library(klaR)
package 㤼㸱klaR㤼㸲 was built under R version 3.6.3
library(tree)
package 㤼㸱tree㤼㸲 was built under R version 3.6.3Registered S3 method overwritten by 'tree':
  method     from
  print.tree cli 
library(gbm)
setwd( "C:/Users/mario/OneDrive/Desktop/Pgd Data Science LSE/All Modules/Machine Learning ST3189-02/Assignment")
bank_data <- read.csv("bank.csv")
describe(bank_data)
str(bank_data)
'data.frame':   4521 obs. of  17 variables:
 $ age      : int  30 33 35 30 59 35 36 39 41 43 ...
 $ job      : Factor w/ 12 levels "admin.","blue-collar",..: 11 8 5 5 2 5 7 10 3 8 ...
 $ marital  : Factor w/ 3 levels "divorced","married",..: 2 2 3 2 2 3 2 2 2 2 ...
 $ education: Factor w/ 4 levels "primary","secondary",..: 1 2 3 3 2 3 3 2 3 1 ...
 $ default  : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...
 $ balance  : int  1787 4789 1350 1476 0 747 307 147 221 -88 ...
 $ housing  : Factor w/ 2 levels "no","yes": 1 2 2 2 2 1 2 2 2 2 ...
 $ loan     : Factor w/ 2 levels "no","yes": 1 2 1 2 1 1 1 1 1 2 ...
 $ contact  : Factor w/ 3 levels "cellular","telephone",..: 1 1 1 3 3 1 1 1 3 1 ...
 $ day      : int  19 11 16 3 5 23 14 6 14 17 ...
 $ month    : Factor w/ 12 levels "apr","aug","dec",..: 11 9 1 7 9 4 9 9 9 1 ...
 $ duration : int  79 220 185 199 226 141 341 151 57 313 ...
 $ campaign : int  1 1 1 4 1 2 1 2 2 1 ...
 $ pdays    : int  -1 339 330 -1 -1 176 330 -1 -1 147 ...
 $ previous : int  0 4 1 0 0 3 2 0 0 2 ...
 $ poutcome : Factor w/ 4 levels "failure","other",..: 4 1 1 4 4 1 2 4 4 1 ...
 $ y        : Factor w/ 2 levels "no","yes": 1 1 1 1 1 1 1 1 1 1 ...
data <-bank_data
dt <- sort(sample(nrow(data), nrow(data)*.7))
train_data <-data[dt,]
test_data <-data[-dt,]
#We will fit a boosted tree with the bernoulli dsitrbution for binary classification problems 
set.seed(2340)
#lets encode Yes=1 and No=0 
train_data$y <-ifelse(train_data$y=="yes",1,0)
table(train_data$y)

   0    1 
2808  356 
#lets run the regression 
bosteed_tree_bank <- gbm(y~.,data=train_data, distribution = "bernoulli", n.trees = 5000, interaction.depth = 4)
bosteed_tree_bank 
gbm(formula = y ~ ., distribution = "bernoulli", data = train_data, 
    n.trees = 5000, interaction.depth = 4)
A gradient boosted model with bernoulli loss function.
5000 iterations were performed.
There were 16 predictors of which 15 had non-zero influence.
summary(bosteed_tree_bank)

#we now use the boosted model to predict y on the test set #

prediction_bank_tree <- predict(bosteed_tree_bank, newdata = test_data, n.trees = 5000)

#we try now but this time we  delete the duration variable 
setwd( "C:/Users/mario/OneDrive/Desktop/Pgd Data Science LSE/All Modules/Machine Learning ST3189-02/Assignment")
bank_data <- read.csv("bank.csv")
data <-bank_data
data <-bank_data[-c(12)]
dt <- sort(sample(nrow(data), nrow(data)*.7))
train_data <-data[dt,]
test_data <-data[-dt,]
set.seed(240)
#lets encode Yes=1 and No=0 
train_data$y <-ifelse(train_data$y=="yes",1,0)
table(train_data$y)

   0    1 
2788  376 
#lets run the regression 
bosteed_tree_bank <- gbm(y~.,data=train_data, distribution = "bernoulli", n.trees = 5000, interaction.depth = 4)
bosteed_tree_bank 
gbm(formula = y ~ ., distribution = "bernoulli", data = train_data, 
    n.trees = 5000, interaction.depth = 4)
A gradient boosted model with bernoulli loss function.
5000 iterations were performed.
There were 15 predictors of which 15 had non-zero influence.
summary(bosteed_tree_bank)

#we now use the boosted model to predict y on the test set #

prediction_bank_tree <- predict(bosteed_tree_bank, newdata = test_data, n.trees = 5000)
LS0tDQp0aXRsZTogIk1KUlUgTWFjaGluZSBMZWFybmluZyINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQpgYGB7cn0NCiNDb2RlIGZvciBQYXJ0IEkgb2YgdGhlIENvdXJzZXdvcmsNCmxpYnJhcnkoZmFjdG9leHRyYSkNCmxpYnJhcnkoY2x1c3RlcikNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGdyaWRFeHRyYSkNCnNldHdkKA0KICAiQzovVXNlcnMvbWFyaW8vT25lRHJpdmUvRGVza3RvcC9QZ2QgRGF0YSBTY2llbmNlIExTRS9BbGwgTW9kdWxlcy9NYWNoaW5lIExlYXJuaW5nIFNUMzE4OS0wMi9Bc3NpZ25tZW50Ig0KKQ0KcmF3ZGF0YSA8LQ0KICByZWFkLmNzdigNCiAgICBmaWxlLnBhdGgoDQogICAgICAiQzovVXNlcnMvbWFyaW8vT25lRHJpdmUvRGVza3RvcC9QZ2QgRGF0YSBTY2llbmNlIExTRS9BbGwgTW9kdWxlcy9NYWNoaW5lIExlYXJuaW5nIFNUMzE4OS0wMi9Bc3NpZ25tZW50IiwNCiAgICAgICJFV0NTMjAxNi5jc3YiDQogICAgKQ0KICApDQojRXhhbWluaW5nIGFuZCBwcmVwYXJpbmcgdGhlIGRhdGEgZm9yIGFuYWx5c2lzIA0KZml4KHJhd2RhdGEpDQpzdW0oaXMubmEocmF3ZGF0YSkpDQpQQ0EgPC0gcHJjb21wKHJhd2RhdGEsIHNjYWxlID0gVFJVRSkNClBDQSRyb3RhdGlvbg0KVGFibGUxIDwtIFBDQSRyb3RhdGlvbg0KcGRmKCJ0YWJsZTEucGRmIiwgd2lkdGggPSAyNSwgaGVpZ2h0ID0gMjUpICAgICAgICMgRXhwb3J0IFBERg0KZ3JpZC50YWJsZShUYWJsZTEpICNFeHBvcnQgUERGIA0KZGV2Lm9mZigpICAgICAgICAgI0V4cG9ydCBQREYNCnN1bW1hcnkoUENBKQ0KcGxvdChQQ0EpDQpiaXBsb3QoUENBKQ0KDQojQ2x1c3RlcmluZyANCmNsZWFuZWRfZGF0YSA8LSBuYS5vbWl0KHJhd2RhdGEpDQpjbGVhbmVkX2RhdGEgPC0gc2NhbGUocmF3ZGF0YSkNCnNldC5zZWVkKDIyMCkNCmNsdXN0ZXJlZF9kYXRhIDwtIGttZWFucyhjbGVhbmVkX2RhdGEsIDksIG5zdGFydCA9IDI1KQ0KYXR0cmlidXRlcyhjbHVzdGVyZWRfZGF0YSkNCndzc3Bsb3QgPC0gZnVuY3Rpb24oY2x1c3RlcmVkX2RhdGEsDQogICAgICAgICAgICAgICAgICAgIG5jID0gMTUsDQogICAgICAgICAgICAgICAgICAgIHNlZWQgPSAxMjM0KSB7DQogIHdzcyA8LSAobnJvdyhjbHVzdGVyZWRfZGF0YSkgLSAxKSAqIHN1bShhcHBseShjbHVzdGVyZWRfZGF0YSwgMiwgdmFyKSkNCiAgZm9yIChpIGluIDI6bmMpIHsNCiAgICBzZXQuc2VlZChzZWVkKQ0KICAgIHdzc1tpXSA8LSBzdW0oa21lYW5zKGNsdXN0ZXJlZF9kYXRhLCBjZW50ZXJzID0gaSkkd2l0aGluc3MpDQogIH0NCiAgcGxvdCgxOm5jLA0KICAgICAgIHdzcywNCiAgICAgICB0eXBlID0gImIiLA0KICAgICAgIHhsYWIgPSAiTnVtYmVyIG9mIENsdXN0ZXJzIiwNCiAgICAgICB5bGFiID0gIldpdGhpbiBncm91cHMgc3VtIG9mIHNxdWFyZXMiKQ0KfQ0KI2Nob29zaW5nIHRoZSB2YWx1ZSBvZiBrDQp3c3NwbG90KGNsZWFuZWRfZGF0YSwgbmMgPSAxMCkNCiNwbG90dGluZyB0aGUgZWxib3cgcGxvdA0KI3dlIHdpbGwgY2hvb3NlIHRoZW4gNCBhcyB0aGUgbnVtYmVycyBvZiBjbHVzdGVycywgYW5kIHdlIHJ1biB0aGUgY2x1c3RlciBhbmFseXNpcyBhZ2Fpbg0KZGlzdGFuY2UgPC0gZGlzdChjbGVhbmVkX2RhdGEsIG1ldGhvZCA9ICJldWNsaWRlYW4iKSAjY2hvb3NpbmcgdGhlIGRpc3RhbmNlIG1ldGhvZCANCnNldC5zZWVkKDIyMSkNCmNsdXN0ZXJlZF9kYXRhIDwtIGttZWFucyhjbGVhbmVkX2RhdGEsIDQsIG5zdGFydCA9IDI1KQ0KY2x1c3RlcmVkX2RhdGENCiNoaXJlYXJjaGljYWwgY2x1c3RlcmluZyANCmhjLmNvbXBsZXRlPC0gaGNsdXN0KGRpc3QoY2xlYW5lZF9kYXRhKSwgbWV0aG9kPSJhdmVyYWdlIikNCiNwbG90dGluZyBoaWVyYXJjaGljYWwgY2x1c3RlcmluZyANCnBsb3QoaGMuY29tcGxldGUpDQpoYyA8LSBhcy5kZW5kcm9ncmFtKGhjLmNvbXBsZXRlKQ0KcGxvdChoYykNCmN1dHJlZShoYy5jb21wbGV0ZSwgMSkNCg0KI1BhcnQgMiBsaW5lYXIgcmVncmVzc2lvbiANCiNsb2FkaW5nIGFuZCBjbGVhbmluZyBvdXIgZGF0YSAocmVtb3ZpbmcgdmFyaWFibGVzIDMxIGFuZCAzMikNCmxpYnJhcnkoSVNMUikNCnNldHdkKCAiQzovVXNlcnMvbWFyaW8vT25lRHJpdmUvRGVza3RvcC9QZ2QgRGF0YSBTY2llbmNlIExTRS9BbGwgTW9kdWxlcy9NYWNoaW5lIExlYXJuaW5nIFNUMzE4OS0wMi9Bc3NpZ25tZW50IikNCnN0dWRlbnRfbWF0IDwtIHJlYWQuY3N2KCJzdHVkZW50LW1hdC5jc3YiLCBzdHJpbmdzQXNGYWN0b3JzPVRSVUUpDQpmaXgoc3R1ZGVudF9tYXQpDQpzdHVkZW50X21hdCA8LSBzdHVkZW50X21hdFstYyAoMzE6MzIpXQ0KZml4KHN0dWRlbnRfbWF0KQ0KI3RyYWluaW5nIGFuZCB0ZXN0IGRhdGEgDQpkYXRhIDwtIHN0dWRlbnRfbWF0DQpkdCA8LSBzb3J0KHNhbXBsZShucm93KGRhdGEpLCBucm93KGRhdGEpKi43KSkNCnRyYWluX2RhdGFfbWF0aCA8LWRhdGFbZHQsXQ0KdGVzdF9kYXRhX21hdGggPC1kYXRhWy1kdCxdDQojbGluZWFyIHJlZ3Jlc3Npb24gb24gc3R1ZGVudCBtYXRoDQpzdHVkZW50bWF0IDwtDQogIGdsbSgNCiAgICBHMyB+IHNjaG9vbCArIHNleCArIGFnZSArIGFkZHJlc3MgKyBmYW1zaXplICsgUHN0YXR1cyArIE1lZHUgKyBGZWR1ICsgTWpvYiArDQogICAgICBGam9iICsgcmVhc29uICsgZ3VhcmRpYW4gKyB0cmF2ZWx0aW1lICsgc3R1ZHl0aW1lICsgZmFpbHVyZXMgKyBzY2hvb2xzdXAgKw0KICAgICAgZmFtc3VwICsgcGFpZCArIGFjdGl2aXRpZXMgKyBudXJzZXJ5ICsgaGlnaGVyICsgaW50ZXJuZXQgKyByb21hbnRpYyArIGZhbXJlbCArDQogICAgICBmcmVldGltZSArIGdvb3V0ICsgRGFsYyArIFdhbGMgKyBoZWFsdGggKyBhYnNlbmNlcywNCiAgICBkYXRhID0gdHJhaW5fZGF0YV9tYXRoDQogICkNCnN1bW1hcnkoc3R1ZGVudG1hdCkNCiN2YWxpZGF0aW5nIGluIG91ciB0ZXN0IGRhdGEgKG1hdGggc3R1ZGVudHMpDQpzZXQuc2VlZCgzMDApDQpwcmVkaWN0aW9uX21hdGhfc3R1ZGVudCA8LSBwcmVkaWN0LmdsbShzdHVkZW50bWF0LCBuZXdkYXRhPXRyYWluX2RhdGFfbWF0aCwgc2UuZml0PVRSVUUsIGludGVydmFsPSJjb25maWRlbmNlIikNCnByZWRpY3Rpb25fbWF0aF9zdHVkZW50X3QgPC0gcHJlZGljdC5nbG0oc3R1ZGVudG1hdCwgbmV3ZGF0YT10ZXN0X2RhdGFfbWF0aCwgc2UuZml0PVRSVUUsIGludGVydmFsPSJjb25maWRlbmNlIikNCnByZWRpY3Rpb25fbWF0aF9zdHVkZW50JHJlc2lkdWFsLnNjYWxlDQpwcmVkaWN0aW9uX21hdGhfc3R1ZGVudF90JHJlc2lkdWFsLnNjYWxlDQojTElORUFSIFJFR1JFU1NJT04gT04gUE9SVFVHRVNFIFNUVURFTlQgT04gT1VSIFRSQUlOSU5HIERBVEEgDQpzdHVkZW50cG9ydCA8LSByZWFkLmNzdigic3R1ZGVudC1wb3IuY3N2Iiwgc3RyaW5nc0FzRmFjdG9ycz1UUlVFKQ0Kc3R1ZGVudHBvcnQgPC1zdHVkZW50cG9ydFstYygzMTozMildDQpmaXgoc3R1ZGVudHBvcnQpDQojdHJhaW5pbmcgYW5kIGRhdGEgc2V0IA0KZGF0YSA8LSBzdHVkZW50cG9ydA0KZHQgPC0gc29ydChzYW1wbGUobnJvdyhkYXRhKSwgbnJvdyhkYXRhKSouNykpDQp0cmFpbl9kYXRhX3BvcnQgPC1kYXRhW2R0LF0NCnRlc3RfZGF0YV9wb3J0IDwtZGF0YVstZHQsXQ0KI2xpbmVhciByZWdyZXNzaW9uIG9uIHBvcnR1Z3Vlc2Ugc3R1ZGVudHMgDQpzdHVkZW50cG9ydCA8LSBnbG0oDQogIEczIH4gc2Nob29sICsgc2V4ICsgYWdlICsgYWRkcmVzcyArIGZhbXNpemUgKyBQc3RhdHVzICsgTWVkdSArIEZlZHUgKyBNam9iICsNCiAgICBGam9iICsgcmVhc29uICsgZ3VhcmRpYW4gKyB0cmF2ZWx0aW1lICsgc3R1ZHl0aW1lICsgZmFpbHVyZXMgKyBzY2hvb2xzdXAgKw0KICAgIGZhbXN1cCArIHBhaWQgKyBhY3Rpdml0aWVzICsgbnVyc2VyeSArIGhpZ2hlciArIGludGVybmV0ICsgcm9tYW50aWMgKyBmYW1yZWwgKw0KICAgIGZyZWV0aW1lICsgZ29vdXQgKyBEYWxjICsgV2FsYyArIGhlYWx0aCArIGFic2VuY2VzLA0KICBkYXRhID0gdHJhaW5fZGF0YV9wb3J0DQopDQpzdW1tYXJ5KHN0dWRlbnRwb3J0KQ0KI3ZhbGlkYXRpbmcgaW4gb3VyIHRlc3QgZGF0YSAocG9ydHVndWVzZSBzdHVkZW50cykNCnNldC5zZWVkKDI1MCkNCnByZWRpY3Rpb25fcG9ydF9zdHVkZW50IDwtIHByZWRpY3QuZ2xtKHN0dWRlbnRwb3J0LCBuZXdkYXRhPXRyYWluX2RhdGFfcG9ydCwgc2UuZml0PVRSVUUsIGludGVydmFsPSJjb25maWRlbmNlIikNCnByZWRpY3Rpb25fcG9ydF9zdHVkZW50X3QgPC0gcHJlZGljdC5nbG0oc3R1ZGVudHBvcnQsIG5ld2RhdGE9dGVzdF9kYXRhX3BvcnQsIHNlLmZpdD1UUlVFLCBpbnRlcnZhbD0iY29uZmlkZW5jZSIpDQpwcmVkaWN0aW9uX3BvcnRfc3R1ZGVudCRyZXNpZHVhbC5zY2FsZQ0KcHJlZGljdGlvbl9wb3J0X3N0dWRlbnRfdCRyZXNpZHVhbC5zY2FsZQ0KDQojV0UgV0lMTCBOT1cgVFJZIEJPT1NURUQgVFJFRVMgDQpsaWJyYXJ5KGdibSkNCnN0dWRlbnRfbWF0IDwtIHJlYWQuY3N2KCJzdHVkZW50LW1hdC5jc3YiLCBzdHJpbmdzQXNGYWN0b3JzPVRSVUUpDQpzdHVkZW50X21hdCA8LSBzdHVkZW50X21hdFstYyAoMzE6MzIpXQ0KZml4KHN0dWRlbnRfbWF0KQ0KI3NldCB0cmFpbmluZyBhbmQgdGVzdCBkYXRhIHNldHMgDQpkYXRhIDwtIHN0dWRlbnRfbWF0DQpkdCA8LSBzb3J0KHNhbXBsZShucm93KGRhdGEpLCBucm93KGRhdGEpKi43KSkNCnRyYWluX2RhdGFfbWF0IDwtZGF0YVtkdCxdDQp0ZXN0X2RhdGFfbWF0IDwtZGF0YVstZHQsXQ0KI3J1biB0aGUgYm9vc3RlZCB0cmVlIGZ1bmN0aW9uDQpzZXQuc2VlZCgxNSkNCnRyZWVzdHVkZW50bWF0IDwtDQogIGdibSgNCiAgICBHMyB+IHNjaG9vbCArIHNleCArIGFnZSArIGFkZHJlc3MgKyBmYW1zaXplICsgUHN0YXR1cyArIE1lZHUgKyBGZWR1ICsgTWpvYiArDQogICAgICBGam9iICsgcmVhc29uICsgZ3VhcmRpYW4gKyB0cmF2ZWx0aW1lICsgc3R1ZHl0aW1lICsgZmFpbHVyZXMgKyBzY2hvb2xzdXAgKw0KICAgICAgZmFtc3VwICsgcGFpZCArIGFjdGl2aXRpZXMgKyBudXJzZXJ5ICsgaGlnaGVyICsgaW50ZXJuZXQgKyByb21hbnRpYyArIGZhbXJlbCArDQogICAgICBmcmVldGltZSArIGdvb3V0ICsgRGFsYyArIFdhbGMgKyBoZWFsdGggKyBhYnNlbmNlcywNCiAgICBkYXRhID0gdHJhaW5fZGF0YV9tYXQsIGRpc3RyaWJ1dGlvbj0iZ2F1c3NpYW4iLCBuLnRyZWVzPTgwMDAsIGludGVyYWN0aW9uLmRlcHRoPTQNCiAgKQ0Kc3VtbWFyeSh0cmVlc3R1ZGVudG1hdCkNCiN2YWxpZGF0aW5nIHRoZSBkYXRhIA0Kc2V0LnNlZWQoMjMpDQpwcmVkaWN0aW9uX2Jvb3N0ZWRfdHJlZTwtIHByZWRpY3QodHJlZXN0dWRlbnRtYXQsIG5ld2RhdGE9dHJhaW5fZGF0YV9tYXRoLCBuLnRyZWVzID0gMTAwMDApDQpwcmVkaWN0aW9uX2Jvb3N0ZWRfdHJlZV90IDwtIHByZWRpY3QodHJlZXN0dWRlbnRtYXQsIG5ld2RhdGE9dGVzdF9kYXRhX21hdGgsIG4udHJlZXM9IDEwMDAwKQ0KbWVhbiAoKHByZWRpY3Rpb25fYm9vc3RlZF90cmVlKV4yKQ0KbWVhbigocHJlZGljdGlvbl9ib29zdGVkX3RyZWVfdCleMikNCiNvdXIgbW9kZWwgcGVyZm9ybSBzbGlnaGx0IHdvcnNlIGluIHRoZSB2YWxpZGF0aW9uIHNldC4gbGV0cyBzZWUgaWYgY2hhbmdpbmcgdGhlIGxhbWJkYSB2YWx1ZSAoc2hyaW5rYWdlIHZhbHVlKSBpbXByb3ZlcyBwZXJmb3JtYW5jZQ0KI3J1biB0aGUgYm9vc3RlZCB0cmVlIGZ1bmN0aW9uIHdpdGggYSBkaWZmZXJlbnQgbGFtYmRhIHZhbHVlIA0Kc2V0LnNlZWQoMTkpDQp0cmVlc3R1ZGVudG1hdCA8LQ0KICBnYm0oDQogICAgRzMgfiBzY2hvb2wgKyBzZXggKyBhZ2UgKyBhZGRyZXNzICsgZmFtc2l6ZSArIFBzdGF0dXMgKyBNZWR1ICsgRmVkdSArIE1qb2IgKw0KICAgICAgRmpvYiArIHJlYXNvbiArIGd1YXJkaWFuICsgdHJhdmVsdGltZSArIHN0dWR5dGltZSArIGZhaWx1cmVzICsgc2Nob29sc3VwICsNCiAgICAgIGZhbXN1cCArIHBhaWQgKyBhY3Rpdml0aWVzICsgbnVyc2VyeSArIGhpZ2hlciArIGludGVybmV0ICsgcm9tYW50aWMgKyBmYW1yZWwgKw0KICAgICAgZnJlZXRpbWUgKyBnb291dCArIERhbGMgKyBXYWxjICsgaGVhbHRoICsgYWJzZW5jZXMsDQogICAgZGF0YSA9IHRyYWluX2RhdGFfbWF0LCBkaXN0cmlidXRpb249ImdhdXNzaWFuIiwgbi50cmVlcz04MDAwLCBpbnRlcmFjdGlvbi5kZXB0aD00LCBzaHJpbmthZ2UgPSAwLjINCiAgKQ0KI3JlLXRlc3Qgb24gdGhlIHZhbGlkYXRpb24gc2V0IA0Kc2V0LnNlZWQoNjApDQpwcmVkaWN0aW9uX2Jvb3N0ZWRfdHJlZTwtIHByZWRpY3QodHJlZXN0dWRlbnRtYXQsIG5ld2RhdGE9dHJhaW5fZGF0YV9tYXRoLCBuLnRyZWVzID0gMTAwMDApDQpwcmVkaWN0aW9uX2Jvb3N0ZWRfdHJlZV90IDwtIHByZWRpY3QodHJlZXN0dWRlbnRtYXQsIG5ld2RhdGE9dGVzdF9kYXRhX21hdGgsIG4udHJlZXM9IDEwMDAwKQ0KbWVhbiAoKHByZWRpY3Rpb25fYm9vc3RlZF90cmVlKV4yKQ0KbWVhbigocHJlZGljdGlvbl9ib29zdGVkX3RyZWVfdCleMikNCg0KI2xldHMgc2VlIGlmIHdlIGNhbiBmaXQgYSBSaWRnZSBSZWdyZXNzaW9uIGZpcnN0IGFuZCBhIExhc3NvIGxhdGVyLiANCmxpYnJhcnkocGx5cikNCmxpYnJhcnkocmVhZHIpDQpsaWJyYXJ5KGRwbHlyKQ0KbGlicmFyeShjYXJldCkNCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkocmVwcikNCnNldHdkKA0KICAiQzovVXNlcnMvbWFyaW8vT25lRHJpdmUvRGVza3RvcC9QZ2QgRGF0YSBTY2llbmNlIExTRS9BbGwgTW9kdWxlcy9NYWNoaW5lIExlYXJuaW5nIFNUMzE4OS0wMi9Bc3NpZ25tZW50Ig0KKQ0Kc3R1ZGVudF9tYXQgPC0gcmVhZC5jc3YoInN0dWRlbnQtbWF0LmNzdiIsIHN0cmluZ3NBc0ZhY3RvcnM9VFJVRSkNCmxpYnJhcnkoZ2xtbmV0KQ0KZml4KHN0dWRlbnRfbWF0KQ0Kc3R1ZGVudF9tYXQgPC0gc3R1ZGVudF9tYXRbLWMoMzE6MzIpXQ0KZGF0YSA8LSBzdHVkZW50X21hdA0KZHQgPC0gc29ydChzYW1wbGUobnJvdyhkYXRhKSwgbnJvdyhkYXRhKSouNykpDQp0cmFpbl9kYXRhX21hdCA8LWRhdGFbZHQsXQ0KdGVzdF9kYXRhX21hdCA8LWRhdGFbLWR0LF0NCiNmaXR0aW5nIGEgUmlkZ2UgUmVncmVzc2lvbiANCiN3ZSBzdGFydCBwcmVwYXJpbmcgYSBncmlkIHdpdGggb3VyIHggKG9ubHkgb3VyIHByZWRpY3RvcnMpLCBhbmQgb3VyIHkgKG91ciBkZXBlbmRlbnQgdmFyaWFibGUpDQp4IDwtIG1vZGVsLm1hdHJpeChHM34uLHRyYWluX2RhdGFfbWF0KVssLTFdDQp5PXRyYWluX2RhdGFfbWF0JT4lc2VsZWN0KEczKSU+JSB1bmxpc3QoKSU+JSBhcy5udW1lcmljKCkgI2hlcmUgd2UgdHJhbnNmcm9tIHF1YWxpdGF0aXZlIHZhcmlhYmxlcyBpbnRvIGR1bW15IHZhcmlhYmxlcyANCiN3ZSBwcmVwYXJlIHRoZSBncmlkIHRvIGNvdmVyIGFsbCBzY2VuYXJpb3MgKGZyb20gYSBudWxsIG1vZGVsIHRvIGEgbGVhc3Qgc3F1YXJlIGZpdCAtd2hlbiBsYW1iZGEgc2kgcmVhbGx5IGJpZy0pDQpncmlkIDwtMTBec2VxKDEwLC0yICxsZW5ndGg9MTAwKSNoZXJlIHdlIGFyZSBjcmVhdGluZyBhIGdyaWQgd2l0aCB2YWx1ZXMgZnJvbSAxMCB0byB0aGUgMTB0aCB0byAxMCB0byB0aGUgbWludXNlIDIsIGxlbmdodD0xMDANCiNyaSBmd2UgY2hvb3NlIGxhbWJkYSB6ZXJvIGEgcmlkZ2Ugd2lsbCBiZSBjaG9vc2VuLCBsYW1iZGEgZXF1YWxzIDEgd2lsbCBiZSBhIExhc3NvIGZpdHRlcyANCnJpZGdlX3JlZ3Jlc3Npb25fc3R1ZGVudF9tYXRoIDwtIGdsbW5ldCh4LHksIGFscGhhPTAsIGxhbWJkYT1ncmlkKSAjcmVtZW1iZXIgdGhhdCBsYW1iZGEgaXMgb3VyIHNocmlua2FnZSBjb2VmZmljaWVudCANCmRpbShjb2VmKHJpZGdlX3JlZ3Jlc3Npb25fc3R1ZGVudF9tYXRoKSkNCmNvZWYocmlkZ2VfcmVncmVzc2lvbl9zdHVkZW50X21hdGgpDQpwbG90KHJpZGdlX3JlZ3Jlc3Npb25fc3R1ZGVudF9tYXRoKQ0KI2Nob29zZSB0aGUgYmVzdCBsYW1iZGEgdmFsdWUgDQpyaWRnZV9yZWdyZXNzaW9uX3N0dWRlbnRfbWF0aF9jdjwtIGN2LmdsbW5ldCh4LHksIGFscGhhPTAsIGxhbWJkYT1ncmlkKQ0KYmVzdF9sYW1iZGEgPC0gcmlkZ2VfcmVncmVzc2lvbl9zdHVkZW50X21hdGhfY3YkbGFtYmRhLm1pbg0KYmVzdF9sYW1iZGENCiN3ZSBub3cgcnVuIHRoZSByaWRnZSByZWdyZXNzaW9uIGFnYWluIHVzaW5nIGxhbWJkYT0zLjUxDQpyaWRnZV9yZWdyZXNzaW9uX3N0dWRlbnRfbWF0aCA8LSBnbG1uZXQoeCx5LCBhbHBoYT0wLCBsYW1iZGE9My41KQ0KcGxvdChyaWRnZV9yZWdyZXNzaW9uX3N0dWRlbnRfbWF0aCkNCnN1bW1hcnkocmlkZ2VfcmVncmVzc2lvbl9zdHVkZW50X21hdGgpDQpjb2VmZmljaWVudHMocmlkZ2VfcmVncmVzc2lvbl9zdHVkZW50X21hdGgpDQojZml0dGluZyBhIExhc3NvIA0Kc3R1ZGVudF9tYXQgPC0gcmVhZC5jc3YoInN0dWRlbnQtbWF0LmNzdiIsIHN0cmluZ3NBc0ZhY3RvcnM9VFJVRSkNCmZpeChzdHVkZW50X21hdCkNCnN0dWRlbnRfbWF0IDwtIHN0dWRlbnRfbWF0Wy1jKDMxOjMyKV0NCmRhdGEgPC0gc3R1ZGVudF9tYXQNCnNldC5zZWVkKDk5KQ0KZHQgPC0gc29ydChzYW1wbGUobnJvdyhkYXRhKSwgbnJvdyhkYXRhKSouNykpDQp0cmFpbl9kYXRhX21hdCA8LWRhdGFbZHQsXQ0KdGVzdF9kYXRhX21hdCA8LWRhdGFbLWR0LF0NCiN3ZSBzdGFydCBwcmVwYXJpbmcgYSBncmlkIHdpdGggb3VyIHggKG9ubHkgb3VyIHByZWRpY3RvcnMpLCBhbmQgb3VyIHkgKG91ciBkZXBlbmRlbnQgdmFyaWFibGUpDQp4IDwtIG1vZGVsLm1hdHJpeChHM34uLHRyYWluX2RhdGFfbWF0KVssLTFdDQp5PXRyYWluX2RhdGFfbWF0JT4lc2VsZWN0KEczKSU+JSB1bmxpc3QoKSU+JSBhcy5udW1lcmljKCkgI2hlcmUgd2UgdHJhbnNmcm9tIHF1YWxpdGF0aXZlIHZhcmlhYmxlcyBpbnRvIGR1bW15IHZhcmlhYmxlcyANCiN3ZSBwcmVwYXJlIHRoZSBncmlkIHRvIGNvdmVyIGFsbCBzY2VuYXJpb3MgKGZyb20gYSBudWxsIG1vZGVsIHRvIGEgbGVhc3Qgc3F1YXJlIGZpdCAtd2hlbiBsYW1iZGEgc2kgcmVhbGx5IGJpZy0pDQpncmlkIDwtMTBec2VxKDEwLC0yICxsZW5ndGg9MTAwKSNoZXJlIHdlIGFyZSBjcmVhdGluZyBhIGdyaWQgd2l0aCB2YWx1ZXMgZnJvbSAxMCB0byB0aGUgMTB0aCB0byAxMCB0byB0aGUgbWludXNlIDIsIGxlbmdodD0xMDANCiNyaSBmd2UgY2hvb3NlIGxhbWJkYSB6ZXJvIGEgcmlkZ2Ugd2lsbCBiZSBjaG9vc2VuLCBsYW1iZGEgZXF1YWxzIDEgd2lsbCBiZSBhIExhc3NvIGZpdHRlcyANCnNldC5zZWVkKDMzKQ0KbGFzc29fc3R1ZGVudF9tYXRoIDwtIGdsbW5ldCh4LHksIGFscGhhPTEpDQpsYXNzb19zdHVkZW50X21hdGhfYmVzdF9sYW1iZGEgPC0gY3YuZ2xtbmV0KHgseSwgYWxwaGE9MSwgc3RhbmRhcmRpemU9VFJVRSwgbmZvbGRzPTUpDQpsYXNzb19zdHVkZW50X21hdGhfYmVzdF9sYW1iZGEkbGFtYmRhLm1pbg0KbGFzc29fc3R1ZGVudF9tYXRoIDwtIGdsbW5ldCh4LHksIGFscGhhPTEsbGFtYmRhPTAuMjAzNTg5KQ0KcGxvdChsYXNzb19zdHVkZW50X21hdGgpDQpjb2VmZmljaWVudHMobGFzc29fc3R1ZGVudF9tYXRoKQ0KcHJlZGljdGlvbl9sYXNzb19tYXRoIDwtIHByZWRpY3QobGFzc29fc3R1ZGVudF9tYXRoLCB0eXBlPSJjb2VmZmljaWVudHMiKQ0KcHJlZGljdGlvbl9sYXNzb19tYXRoW3ByZWRpY3Rpb25fbGFzc29fbWF0aCE9MF0NCnN1bW1hcnkobGFzc29fc3R1ZGVudF9tYXRoKQ0KDQoNCg0KDQoNCiNQYXJ0IDM6IENsYXNzaWZpY2F0aW9uIFByb2JsZW1zIA0KDQojQXNzaWdubWVudCAzIExpbmVhciBEaXNjcm1pbmFudCBBbmFseXNpcyANCiNMREEgZGV0ZXJtaW5lcyBncm91cCBtZWFucyBhbmQgY29tcHV0ZXMsIGZvciBlYWNoIGluZGl2aWR1YWwsIHRoZSBwcm9iYWJpbGl0eSBvZiBiZWxvbmdpbmcgDQojdG8gdGhlIGRpZmZlcmVudCBncm91cHMuVGhlIGluZGl2aWR1YWwgaXMgdGhlbiBhZmZlY3RlZCB0byB0aGUgZ3JvdXAgd2l0aCB0aGUgaGlnaGVzdCBwcm9iYWJpbGl0eSBzY29yZS4NCmxpYnJhcnkoTUFTUykNCmxpYnJhcnkoZmFjdG9leHRyYSkNCmxpYnJhcnkoY2x1c3RlcikNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KGdyaWRFeHRyYSkNCmxpYnJhcnkoSVNMUikNCmxpYnJhcnkoZ2xtbmV0KQ0KbGlicmFyeShjYXJldCkNCnNldHdkKA0KICAiQzovVXNlcnMvbWFyaW8vT25lRHJpdmUvRGVza3RvcC9QZ2QgRGF0YSBTY2llbmNlIExTRS9BbGwgTW9kdWxlcy9NYWNoaW5lIExlYXJuaW5nIFNUMzE4OS0wMi9Bc3NpZ25tZW50Ig0KKQ0KYmFua19kYXRhIDwtIHJlYWQuY3N2KCJiYW5rLmNzdiIsIHN0cmluZ3NBc0ZhY3RvcnMgPSBUUlVFKQ0KZml4KGJhbmtfZGF0YSkNCnNldC5zZWVkKDIpDQpkYXRhIDwtIGJhbmtfZGF0YQ0KZHQgPC0gc29ydChzYW1wbGUobnJvdyhkYXRhKSwgbnJvdyhkYXRhKSAqIC43KSkNCnRyYWluX2RhdGEgPC0gZGF0YVtkdCwgXQ0KdGVzdF9kYXRhIDwtIGRhdGFbLWR0LCBdDQojTm93IHRoYXQgd2UgaGF2ZSBvdXIgZGF0YSBzb3J0ZWQgb3V0IG9uIHRyYWluaW5nIGFuZCB0ZXN0IGRhdGEsIHdlIGNhbiBzdGFydCBvdXIgZGlzY3JpbWluYW50IGFuYWx5c2lzIA0KZGlzY19hbmFseXNpcyA8LQ0KICBsZGEoDQogICAgeSB+IGFnZSArIGpvYiArIG1hcml0YWwgKyBlZHVjYXRpb24gKyBkZWZhdWx0ICsgYmFsYW5jZSArIGhvdXNpbmcgKyBsb2FuICsNCiAgICAgIGNvbnRhY3QgKyBkYXkgKyBtb250aCArIGR1cmF0aW9uICsgY2FtcGFpZ24gKyBwZGF5cyArIHByZXZpb3VzICsgcG91dGNvbWUsDQogICAgZGF0YSA9IHRyYWluX2RhdGEsDQogICAgDQogICkNCm5hbWVzKGRpc2NfYW5hbHlzaXMpDQpkaXNjX2FuYWx5c2lzDQpwbG90KGRpc2NfYW5hbHlzaXMpIA0KI2hlcmUgd2UgaGF2ZSBmb3VuZCBib3RoIHRoZSBjb2VmZmljaWVudHMgb2Ygb3VyIExEQSAodGhlIG9uZXMgdGhhdCB3ZSB3aWxsIHVzZSBmb3IgcHJlZGljaXRpb24pDQpkaXNjX2FuYWx5c2lzJHByaW9yDQojaGVyZSB3ZSBhcmUgdG9sZCB0aGF0IHByaW9yIHRvIG91ciBwcmVkaWNpdG9uLCA4OSUgb2Ygb3VyIGRhdGEgYmVsb25nIHRvIG5vJ3MgYW5kIDExJSB0byB5ZXMuIA0Kc2V0LnNlZWQoNCkNCmRpc2NfYW5hbHlzaXNfcHJlZGljdGlvbiA8LSBwcmVkaWN0KGRpc2NfYW5hbHlzaXMsIGRhdGE9dHJhaW5fZGF0YSkNCm5hbWVzKGRpc2NfYW5hbHlzaXNfcHJlZGljdGlvbikNCmRpc2NfYW5hbHlzaXNfcHJlZGljdGlvbiRjbGFzcw0KI2NsYXNzIHdpbGwgZ2l2ZSB1cyB0aGUgcHJlZGljdGlvbiBhYm91dCB0aGUgbW92ZW1lbnQgb2YgdGhlIG1hcmtldA0KdGFibGUoZGlzY19hbmFseXNpc19wcmVkaWN0aW9uJGNsYXNzKSNoZXJlIHdlIGFyZSB0cnlpbmcgdG8gaGF2ZSB0aGUgc2FtZSByZXN1bHQgaW4gYSBtb3JlIG9yZGVyZWQgd2F5IA0KI2hlcmUgOTIlIG9mIHRoZSBwcmVkaWNpdG9ucyBiZWxvbmdlZCB0byB0aGUgTk8sIGFuZCA4JSB0byB0aGUgWUVTDQojSGVyZSB3ZSB3b3VsZCBjaGFuZ2UgdGhlIHRocmVzaG9sZCBvZiBob3cgd2UgYWdncm91cCBvdXIgb2JzZXJ2YXRpb25zIGJldHdlZW4geWVzIGFuZCBuby4gDQpzZXQuc2VlZCg0NSkNCnN1bShkaXNjX2FuYWx5c2lzX3ByZWRpY3Rpb24kcG9zdGVyaW9yWywxXSA+PTAuNSkgI2hlcmUgd2UgY2hlY2sgdGhhdCB0aGUgbm8gdmFsdWVzIGFyZSB0aGUgc2FtZSANCnN1bShkaXNjX2FuYWx5c2lzX3ByZWRpY3Rpb24kcG9zdGVyaW9yWywxXSA8PTAuNSkgI2hlcmUgd2UgY2hlYyB0aGF0IHRoZSB5ZXMgdmFsdWVzIGFyZSB0aGUgc2FtZQ0KI2xldHMgc2VlIGlmIHdlIGNoYW5nZSB0aGUgdGhyZXNob2xkIA0Kc3VtKGRpc2NfYW5hbHlzaXNfcHJlZGljdGlvbiRwb3N0ZXJpb3JbLDFdID49MC43KQ0Kc3VtKGRpc2NfYW5hbHlzaXNfcHJlZGljdGlvbiRwb3N0ZXJpb3JbLDFdIDw9MC43KQ0KI2V2ZW4gY2hhbmdpbmcgdGhlIHRocmVzaG9sZCwgdGhlIG51bWJlcnMgZG9lcyBub3QgY2hhbmdlIHJhZGljYWxseSAoYnV0IHN0aWxsIGhhdmUgbW9yZSBvbiB0aGUgeWVzIHNpZGUpDQoNCiNMRVRTIE5PVyBUUlkgVEhFIE1PREVMIElOIE9VUiBURVNUIERBVEEgDQpkaXNjX2FuYWx5c2lzIDwtDQogIGxkYSgNCiAgICB5IH4gYWdlICsgam9iICsgbWFyaXRhbCArIGVkdWNhdGlvbiArIGRlZmF1bHQgKyBiYWxhbmNlICsgaG91c2luZyArIGxvYW4gKw0KICAgICAgY29udGFjdCArIGRheSArIG1vbnRoICsgZHVyYXRpb24gKyBjYW1wYWlnbiArIHBkYXlzICsgcHJldmlvdXMgKyBwb3V0Y29tZSwNCiAgICBkYXRhID0gdGVzdF9kYXRhLA0KICAgIA0KICApDQpkaXNjX2FuYWx5c2lzDQpkaXNjX2FuYWx5c2lzJHByaW9yDQojaGVyZSB3ZSBhcmUgdG9sZCB0aGF0IHByaW9yIHRvIG91ciBwcmVkaWNpdG9uLCA4OCUgb2Ygb3VyIGRhdGEgYmVsb25nIHRvIG5vJ3MgYW5kIDEyJSB0byB5ZXMuDQpkaXNjX2FuYWx5c2lzX3ByZWRpY3Rpb24gPC0gcHJlZGljdChkaXNjX2FuYWx5c2lzLCBkYXRhPXRlc3RfZGF0YSkNCmRpc2NfYW5hbHlzaXNfcHJlZGljdGlvbg0KI2hlcmUgOTElIGJlbG9uZ3MgdG8gdGhlIG5vIGdyb3VwIGFuZCA4JSB0byB0aGUgeWVzLg0KDQojTU9ERUwgVkFESUxJVFkgQ09ORlVTSU9OIE1BVFJJWCANCnRhYmxlXzEgPC0gdGFibGUobGlzdChwcmVkaWN0ZWQ9ZGlzY19hbmFseXNpc19wcmVkaWN0aW9uJGNsYXNzLCBvYnNlcnZlZCA9IHRlc3RfZGF0YSR5KSkNCnRhYmxlXzENCiNPVXIgbW9kZWwgcHJlZGljdGVkIDEzNTcgY2FzZXMNCiMxMDkgd2VyZSBwcmVkaWN0ZWQgYXMgWUVTLCBhbmQgMTI0OCBhcyBOTw0KI091dCBvZiB0aGUgMTA5IHByZWRpY3RlZCBZRVMsIGp1c3QgNjkgd2VyZSBjb3JyZWN0ZWQgcHJlZGljdGVkICgwLjYzJSkgYW5kIA0KI291dCBvZiB0aGUgMTM1NyAgcHJlZGljdGVkIE5PLCBqdXN0IDExNzEgd2VyZSBjb3JyZWN0ZWQgcHJlZGljdGVkICgwLjk0JSkNCiN0aGVuIG91ciBtb2RlbCBmaXR0ZWQgaW4gb3VyIHRlc3QgZGF0YSBjb3JyZWN0bHkgcHJlZGljdGVkIDYzJSBvZiB0aGUgeWVzIGNhc2VzIHVzaW5nIHRoZSBjb2VmZmljaWVudHMgZm9yIA0KI2VhY2ggdmFyaWFibGUgdGhhdCB3ZSBoYXZlIGZvdW5kIFdISUNIIElTIE9VUiBWQVJJQUJMRSBPRiBJTlRFUkVTVC4gDQojT1ZFUkFMTCBPVVIgTU9ERUwgU0VFTVMgVE8gQ09SUkVDVExZIFBSRURJQ1QgOTElIE9GIFRIRSBUSU1FLCBCVVQgSlVTVCBBIDYzJSBGT1IgUE9TSVRJVFZFIFJFU1BPTlNFUy4gDQoNCiNXZSBub3cgdHJ5IGZpdHRpbmcgYSBsb2dpc3RpYyByZWdyZXNzaW9uIG1vZGVsIA0Kc2V0LnNlZWQoNzcpDQpsb2dpc3RpY19tb2RlbCA8LSBnbG0oeX4uLCBkYXRhPXRyYWluX2RhdGEsIGZhbWlseT1iaW5vbWlhbCkNCnN1bW1hcnkobG9naXN0aWNfbW9kZWwpDQojaGVyZSB3ZSBoYXZlIHdoaWNoIG9uZXMgYXJlIHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnRzLiAodmFyaWFibGVzKSANCmNvZWYobG9naXN0aWNfbW9kZWwpDQojaGVyZSB3ZSBoYXZlIHRoZSBjb2VmZmljaWVudCBtb2RlbHMgDQpsb2dpc3RpY19tb2RlbF9wcm9iYWJpbGl0eSAgPC0gcHJlZGljdChsb2dpc3RpY19tb2RlbCwgdHlwZT0icmVzcG9uc2UiKQ0KI2hlcmUgdGhlIHByZWRpY3QgZnVuY3Rpb24gZ2l2ZSB1cyB0aGUgUFJPQkFCSUxJVFkgVEhBVCBUSEUgQU5TV0VSIFdJTEwgQkUgWUVTIEdJVkVOIFRIRSBWQUxVRVMgT0YgVEhFIFBSRURJQ1RPUlMNCiMgVE8gSU5URVJQUkVUIFRIRVNFICBWQUxVRVMgV0UgTkVFRCBUTyBDT05WRVJUIFRIRU0gV0lUSCBFKF5WQUxVRSkgDQpsb2dpc3RpY19tb2RlbF9wcm9iYWJpbGl0eQ0KI2VlIGFyZSBub3cgcnVubmluZyBhIHByZWRpY3Rpb24gZnVuY3Rpb24gDQpzZXQuc2VlZCg4OCkNCmxvZ2lzdGljX21vZGVsX3ByZWRpY3Rpb24gPC0gcmVwKCJObyIsIDMxNjQpDQpsb2dpc3RpY19tb2RlbF9wcmVkaWN0aW9uW2xvZ2lzdGljX21vZGVsX3Byb2JhYmlsaXR5PiAwLjVdPC0iWWVzIg0KdGFibGUobG9naXN0aWNfbW9kZWxfcHJlZGljdGlvbiwgbG9naXN0aWNfbW9kZWwkeSkNCiNoZXJlIHRoZSBpbnRlcnByZXRhdGlvbiBpcyBhcyBmb2xsb3dzLCANCiMyOTc4IHdlcmUgcHJlZGljdGVkIGFzIE5vLCBhbmQgMTg2IGFzIFlFUywgb3V0IG9mIDMxNjQNCiNidXQganVzdCAyNzI1IG91dCBvZiAyOTc4IHdlcmUgY29ycmVjdGx5IHByZWRpY3RlZCBhcyBOTyAoOTElKQ0KI2FuZCBqdXN0IDEyMiBvdXQgb2YgMTg2IHdlcmUgY29ycmVjdGx5IHByZWRpY3RlZCBhcyBZRVMgKDY1JSkNCg0KI2ZpbmFsbHkgd2UgcnVuIG91ciBtb2RlbCB1c2luZyBvdXIgdGVzdCBkYXRhLg0Kc2V0LnNlZWQoNzcpDQpsb2dpc3RpY19tb2RlbCA8LSBnbG0oeX4uLCBkYXRhPXRlc3RfZGF0YSwgZmFtaWx5PWJpbm9taWFsKQ0Kc3VtbWFyeShsb2dpc3RpY19tb2RlbCkNCiNoZXJlIHdlIGhhdmUgd2hpY2ggb25lcyBhcmUgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudHMuICh2YXJpYWJsZXMpIA0KY29lZihsb2dpc3RpY19tb2RlbCkNCiNoZXJlIHdlIGhhdmUgdGhlIGNvZWZmaWNpZW50IG1vZGVscyANCmxvZ2lzdGljX21vZGVsX3Byb2JhYmlsaXR5ICA8LSBwcmVkaWN0KGxvZ2lzdGljX21vZGVsLCB0eXBlPSJyZXNwb25zZSIpDQojaGVyZSB0aGUgcHJlZGljdCBmdW5jdGlvbiBnaXZlIHVzIHRoZSBQUk9CQUJJTElUWSBUSEFUIFRIRSBBTlNXRVIgV0lMTCBCRSBZRVMgR0lWRU4gVEhFIFZBTFVFUyBPRiBUSEUgUFJFRElDVE9SUw0KIyBUTyBJTlRFUlBSRVQgVEhFU0UgIFZBTFVFUyBXRSBORUVEIFRPIENPTlZFUlQgVEhFTSBXSVRIIEUoXlZBTFVFKSANCmxvZ2lzdGljX21vZGVsX3Byb2JhYmlsaXR5DQojZWUgYXJlIG5vdyBydW5uaW5nIGEgcHJlZGljdGlvbiBmdW5jdGlvbiANCnNldC5zZWVkKDEwMikNCmxvZ2lzdGljX21vZGVsX3ByZWRpY3Rpb24gPC0gcmVwKCJObyIsIDEzNTcpDQpsb2dpc3RpY19tb2RlbF9wcmVkaWN0aW9uW2xvZ2lzdGljX21vZGVsX3Byb2JhYmlsaXR5PiAwLjVdPC0iWWVzIg0KdGFibGUocHJlZGljdGVkPWxvZ2lzdGljX21vZGVsX3ByZWRpY3Rpb24sIG9ic2VydmVkPWxvZ2lzdGljX21vZGVsJHkpDQojaGVyZSB0aGUgaW50ZXJwcmV0YXRpb24gaXMgYXMgZm9sbG93cywgDQojMTI2OSB3ZXJlIHByZWRpY3RlZCBhcyBOTywgODggd2VyZSBwcmVkaWN0ZWQgYXMgWUVTIA0KI29mIHdoaWNoIDkzJSBvZiB0aGUgTk8gd2VyZSBjb3JyZWN0bHkgcHJlZGljdGVkIA0KI2FuZCA3MiUgb2YgdGhlIHllcyBjYXNlcyB3ZXJlIGNvcnJlY3RseSBwcmVkaWN0ZWQgYXMgWUVTLiANCiNhbmQgdGhpcyBpcyBvdXIgcmVzdWx0IHdoZW4gcnVubmluZyB0aGUgbG9naXN0aWMgcmVncmVzc2lvbiBpbiBvdXIgdGVzdCBkYXRhLg0KDQojd2Ugbm93IGZpdCBhIGJvb3N0ZWQgdHJlZSB0byBvdXIgYmFuayBkYXRhIA0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KGNhcmV0KQ0KbGlicmFyeShjYXJldEVuc2VtYmxlKQ0KbGlicmFyeShwc3ljaCkNCmxpYnJhcnkoQW1lbGlhKQ0KbGlicmFyeShtaWNlKQ0KbGlicmFyeShHR2FsbHkpDQpsaWJyYXJ5KHJwYXJ0KQ0KbGlicmFyeShyYW5kb21Gb3Jlc3QpDQpsaWJyYXJ5KGUxMDcxKQ0KbGlicmFyeShrbGFSKQ0KbGlicmFyeSh0cmVlKQ0KbGlicmFyeShnYm0pDQpzZXR3ZCggIkM6L1VzZXJzL21hcmlvL09uZURyaXZlL0Rlc2t0b3AvUGdkIERhdGEgU2NpZW5jZSBMU0UvQWxsIE1vZHVsZXMvTWFjaGluZSBMZWFybmluZyBTVDMxODktMDIvQXNzaWdubWVudCIpDQpiYW5rX2RhdGEgPC0gcmVhZC5jc3YoImJhbmsuY3N2IikNCmRlc2NyaWJlKGJhbmtfZGF0YSkNCnN0cihiYW5rX2RhdGEpDQpkYXRhIDwtYmFua19kYXRhDQpkdCA8LSBzb3J0KHNhbXBsZShucm93KGRhdGEpLCBucm93KGRhdGEpKi43KSkNCnRyYWluX2RhdGEgPC1kYXRhW2R0LF0NCnRlc3RfZGF0YSA8LWRhdGFbLWR0LF0NCiNXZSB3aWxsIGZpdCBhIGJvb3N0ZWQgdHJlZSB3aXRoIHRoZSBiZXJub3VsbGkgZHNpdHJidXRpb24gZm9yIGJpbmFyeSBjbGFzc2lmaWNhdGlvbiBwcm9ibGVtcyANCnNldC5zZWVkKDIzNDApDQojbGV0cyBlbmNvZGUgWWVzPTEgYW5kIE5vPTAgDQp0cmFpbl9kYXRhJHkgPC1pZmVsc2UodHJhaW5fZGF0YSR5PT0ieWVzIiwxLDApDQp0YWJsZSh0cmFpbl9kYXRhJHkpDQojbGV0cyBydW4gdGhlIHJlZ3Jlc3Npb24gDQpib3N0ZWVkX3RyZWVfYmFuayA8LSBnYm0oeX4uLGRhdGE9dHJhaW5fZGF0YSwgZGlzdHJpYnV0aW9uID0gImJlcm5vdWxsaSIsIG4udHJlZXMgPSA1MDAwLCBpbnRlcmFjdGlvbi5kZXB0aCA9IDQpDQpib3N0ZWVkX3RyZWVfYmFuayANCnN1bW1hcnkoYm9zdGVlZF90cmVlX2JhbmspDQojd2Ugbm93IHVzZSB0aGUgYm9vc3RlZCBtb2RlbCB0byBwcmVkaWN0IHkgb24gdGhlIHRlc3Qgc2V0ICMNCg0KcHJlZGljdGlvbl9iYW5rX3RyZWUgPC0gcHJlZGljdChib3N0ZWVkX3RyZWVfYmFuaywgbmV3ZGF0YSA9IHRlc3RfZGF0YSwgbi50cmVlcyA9IDUwMDApDQoNCiN3ZSB0cnkgbm93IGJ1dCB0aGlzIHRpbWUgd2UgIGRlbGV0ZSB0aGUgZHVyYXRpb24gdmFyaWFibGUgDQpzZXR3ZCggIkM6L1VzZXJzL21hcmlvL09uZURyaXZlL0Rlc2t0b3AvUGdkIERhdGEgU2NpZW5jZSBMU0UvQWxsIE1vZHVsZXMvTWFjaGluZSBMZWFybmluZyBTVDMxODktMDIvQXNzaWdubWVudCIpDQpiYW5rX2RhdGEgPC0gcmVhZC5jc3YoImJhbmsuY3N2IikNCmRhdGEgPC1iYW5rX2RhdGENCmRhdGEgPC1iYW5rX2RhdGFbLWMoMTIpXQ0KZHQgPC0gc29ydChzYW1wbGUobnJvdyhkYXRhKSwgbnJvdyhkYXRhKSouNykpDQp0cmFpbl9kYXRhIDwtZGF0YVtkdCxdDQp0ZXN0X2RhdGEgPC1kYXRhWy1kdCxdDQpzZXQuc2VlZCgyNDApDQojbGV0cyBlbmNvZGUgWWVzPTEgYW5kIE5vPTAgDQp0cmFpbl9kYXRhJHkgPC1pZmVsc2UodHJhaW5fZGF0YSR5PT0ieWVzIiwxLDApDQp0YWJsZSh0cmFpbl9kYXRhJHkpDQojbGV0cyBydW4gdGhlIHJlZ3Jlc3Npb24gDQpib3N0ZWVkX3RyZWVfYmFuayA8LSBnYm0oeX4uLGRhdGE9dHJhaW5fZGF0YSwgZGlzdHJpYnV0aW9uID0gImJlcm5vdWxsaSIsIG4udHJlZXMgPSA1MDAwLCBpbnRlcmFjdGlvbi5kZXB0aCA9IDQpDQpib3N0ZWVkX3RyZWVfYmFuayANCnN1bW1hcnkoYm9zdGVlZF90cmVlX2JhbmspDQojd2Ugbm93IHVzZSB0aGUgYm9vc3RlZCBtb2RlbCB0byBwcmVkaWN0IHkgb24gdGhlIHRlc3Qgc2V0ICMNCg0KcHJlZGljdGlvbl9iYW5rX3RyZWUgPC0gcHJlZGljdChib3N0ZWVkX3RyZWVfYmFuaywgbmV3ZGF0YSA9IHRlc3RfZGF0YSwgbi50cmVlcyA9IDUwMDApDQoNCg0KDQoNCg0KYGBgDQoNCg==