#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
[37m-- [1mAttaching packages[22m ------------------------------------------------------------------------------------ tidyverse 1.3.0 --[39m
[37m[32mv[37m [34mtibble [37m 3.0.4 [32mv[37m [34mstringr[37m 1.4.0
[32mv[37m [34mtidyr [37m 1.1.2 [32mv[37m [34mforcats[37m 0.5.0
[32mv[37m [34mpurrr [37m 0.3.4 [39m
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[37m-- [1mConflicts[22m --------------------------------------------------------------------------------------- tidyverse_conflicts() --
[31mx[37m [34mplyr[37m::[32marrange()[37m masks [34mdplyr[37m::arrange()
[31mx[37m [34mgridExtra[37m::[32mcombine()[37m masks [34mdplyr[37m::combine()
[31mx[37m [34mpurrr[37m::[32mcompact()[37m masks [34mplyr[37m::compact()
[31mx[37m [34mplyr[37m::[32mcount()[37m masks [34mdplyr[37m::count()
[31mx[37m [34mtidyr[37m::[32mexpand()[37m masks [34mMatrix[37m::expand()
[31mx[37m [34mplyr[37m::[32mfailwith()[37m masks [34mdplyr[37m::failwith()
[31mx[37m [34mdplyr[37m::[32mfilter()[37m masks [34mstats[37m::filter()
[31mx[37m [34mplyr[37m::[32mid()[37m masks [34mdplyr[37m::id()
[31mx[37m [34mdplyr[37m::[32mlag()[37m masks [34mstats[37m::lag()
[31mx[37m [34mpurrr[37m::[32mlift()[37m masks [34mcaret[37m::lift()
[31mx[37m [34mplyr[37m::[32mmutate()[37m masks [34mdplyr[37m::mutate()
[31mx[37m [34mtidyr[37m::[32mpack()[37m masks [34mMatrix[37m::pack()
[31mx[37m [34mplyr[37m::[32mrename()[37m masks [34mdplyr[37m::rename()
[31mx[37m [34mMASS[37m::[32mselect()[37m masks [34mdplyr[37m::select()
[31mx[37m [34mplyr[37m::[32msummarise()[37m masks [34mdplyr[37m::summarise()
[31mx[37m [34mplyr[37m::[32msummarize()[37m masks [34mdplyr[37m::summarize()
[31mx[37m [34mtidyr[37m::[32munpack()[37m masks [34mMatrix[37m::unpack()[39m
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==