Seorang mahasiswa ingin mengetahui pengaruh jam belajar terhadap nilai ujian. Dari hasil pengamatan, peningkatan nilai sangat cepat ketika jam belajar masih sedikit. Namun setelah melewati sekitar 5 jam belajar per hari, peningkatan nilai mulai melambat karena efek belajar tambahan semakin kecil. Oleh karena itu digunakan regresi piecewise untuk memodelkan dua pola hubungan yang berbeda.

data <- read.csv("D:/Youtube/Regresi/Piecedata.csv")
data
##       X jam_belajar    nilai
## 1     1    1.000000 45.75810
## 2     2    1.060403 47.56251
## 3     3    1.120805 55.20128
## 4     4    1.181208 49.73170
## 5     5    1.241611 50.45004
## 6     6    1.302013 57.27637
## 7     7    1.362416 52.74299
## 8     8    1.422819 46.32231
## 9     9    1.483221 49.11836
## 10   10    1.543624 50.56635
## 11   11    1.604027 57.72854
## 12   12    1.664430 54.75469
## 13   13    1.724832 55.40174
## 14   14    1.785235 54.72461
## 15   15    1.845638 52.54174
## 16   16    1.906040 62.39597
## 17   17    1.966443 57.72295
## 18   18    2.026846 48.34830
## 19   19    2.087248 59.50341
## 20   20    2.147651 55.29004
## 21   21    2.208054 53.39313
## 22   22    2.268456 57.27575
## 23   23    2.328859 54.52685
## 24   24    2.389262 56.19853
## 25   25    2.449664 57.09716
## 26   26    2.510067 53.33376
## 27   27    2.570470 63.91491
## 28   28    2.630872 61.66047
## 29   29    2.691275 56.97765
## 30   30    2.751678 67.02868
## 31   31    2.812081 64.20250
## 32   32    2.872483 61.79958
## 33   33    2.932886 67.04359
## 34   34    2.993289 67.45884
## 35   35    3.053691 67.71585
## 36   36    3.114094 67.66731
## 37   37    3.174497 67.61164
## 38   38    3.234899 65.63155
## 39   39    3.295302 65.13857
## 40   40    3.355705 65.32375
## 41   41    3.416107 64.55003
## 42   42    3.476510 66.98041
## 43   43    3.536913 63.23372
## 44   44    3.597315 77.45435
## 45   45    3.657718 74.09359
## 46   46    3.718121 65.25253
## 47   47    3.778523 68.61665
## 48   48    3.838926 68.84479
## 49   49    3.899329 74.31449
## 50   50    3.959732 71.34438
## 51   51    4.020134 73.17435
## 52   52    4.080537 72.53011
## 53   53    4.140940 72.95603
## 54   54    4.201342 79.08515
## 55   55    4.261745 73.19088
## 56   56    4.322148 80.64306
## 57   57    4.382550 68.86539
## 58   58    4.442953 77.88208
## 59   59    4.503356 76.52226
## 60   60    4.563758 77.37383
## 61   61    4.624161 78.51185
## 62   62    4.684564 75.46722
## 63   63    4.744966 76.62690
## 64   64    4.805369 74.36865
## 65   65    4.865772 74.63901
## 66   66    4.926174 80.62351
## 67   67    4.986577 81.68546
## 68   68    5.046980 80.30598
## 69   69    5.107383 83.90383
## 70   70    5.167785 88.53591
## 71   71    5.228188 78.49225
## 72   72    5.288591 71.34051
## 73   73    5.348993 84.72094
## 74   74    5.409396 77.98199
## 75   75    5.469799 78.18756
## 76   76    5.530201 85.16269
## 77   77    5.590604 80.04212
## 78   78    5.651007 76.41914
## 79   79    5.711409 82.14803
## 80   80    5.771812 80.98806
## 81   81    5.832215 81.68749
## 82   82    5.892617 83.32636
## 83   83    5.953020 80.42340
## 84   84    6.013423 84.60435
## 85   85    6.073826 81.26570
## 86   86    6.134228 83.59558
## 87   87    6.194631 86.77662
## 88   88    6.255034 84.25079
## 89   89    6.315436 81.32715
## 90   90    6.375839 87.34691
## 91   91    6.436242 86.84650
## 92   92    6.496644 85.18688
## 93   93    6.557047 84.06902
## 94   94    6.617450 80.72328
## 95   95    6.677852 88.79831
## 96   96    6.738255 81.07547
## 97   97    6.798658 92.34665
## 98   98    6.859060 89.84856
## 99   99    6.919463 82.89612
## 100 100    6.979866 79.85405
## 101 101    7.040268 81.23891
## 102 102    7.100671 85.22888
## 103 103    7.161074 83.33538
## 104 104    7.221477 83.05278
## 105 105    7.281879 80.75728
## 106 106    7.342282 84.50445
## 107 107    7.402685 81.66575
## 108 108    7.463087 78.25441
## 109 109    7.523490 83.52607
## 110 110    7.583893 88.84377
## 111 111    7.644295 82.98720
## 112 112    7.704698 87.84125
## 113 113    7.765101 79.05867
## 114 114    7.825503 85.42876
## 115 115    7.885906 87.84944
## 116 116    7.946309 87.09723
## 117 117    8.006711 86.43613
## 118 118    8.067114 83.57140
## 119 119    8.127517 82.85622
## 120 120    8.187919 82.27932
## 121 121    8.248322 86.96723
## 122 122    8.308725 82.82755
## 123 123    8.369128 84.77603
## 124 124    8.429530 85.83469
## 125 125    8.489933 94.35531
## 126 126    8.550336 84.49287
## 127 127    8.610738 88.16302
## 128 128    8.671141 87.65413
## 129 129    8.731544 83.61566
## 130 130    8.791946 87.29866
## 131 131    8.852349 93.48290
## 132 132    8.912752 89.63152
## 133 133    8.973154 88.11124
## 134 134    9.033557 86.37713
## 135 135    9.093960 79.97493
## 136 136    9.154362 92.83407
## 137 137    9.214765 82.58697
## 138 138    9.275168 91.51013
## 139 139    9.335570 96.30756
## 140 140    9.395973 83.01637
## 141 141    9.456376 91.71989
## 142 142    9.516779 87.98477
## 143 143    9.577181 82.86579
## 144 144    9.637584 83.21650
## 145 145    9.697987 82.98983
## 146 146    9.758389 87.39315
## 147 147    9.818792 83.79056
## 148 148    9.879195 92.51006
## 149 149    9.939597 98.27963
## 150 150   10.000000 84.85188
plot(data$jam_belajar,data$nilai,
     pch = 19,
     col = "blue",
     xlab = "Jam Belajar",
     ylab = "Nilai")

Membuat Breakpoint

c <- 5
# Variabel Tambahan
data$x_piece <- pmax(0,data$jam_belajar - c)
data
##       X jam_belajar    nilai    x_piece
## 1     1    1.000000 45.75810 0.00000000
## 2     2    1.060403 47.56251 0.00000000
## 3     3    1.120805 55.20128 0.00000000
## 4     4    1.181208 49.73170 0.00000000
## 5     5    1.241611 50.45004 0.00000000
## 6     6    1.302013 57.27637 0.00000000
## 7     7    1.362416 52.74299 0.00000000
## 8     8    1.422819 46.32231 0.00000000
## 9     9    1.483221 49.11836 0.00000000
## 10   10    1.543624 50.56635 0.00000000
## 11   11    1.604027 57.72854 0.00000000
## 12   12    1.664430 54.75469 0.00000000
## 13   13    1.724832 55.40174 0.00000000
## 14   14    1.785235 54.72461 0.00000000
## 15   15    1.845638 52.54174 0.00000000
## 16   16    1.906040 62.39597 0.00000000
## 17   17    1.966443 57.72295 0.00000000
## 18   18    2.026846 48.34830 0.00000000
## 19   19    2.087248 59.50341 0.00000000
## 20   20    2.147651 55.29004 0.00000000
## 21   21    2.208054 53.39313 0.00000000
## 22   22    2.268456 57.27575 0.00000000
## 23   23    2.328859 54.52685 0.00000000
## 24   24    2.389262 56.19853 0.00000000
## 25   25    2.449664 57.09716 0.00000000
## 26   26    2.510067 53.33376 0.00000000
## 27   27    2.570470 63.91491 0.00000000
## 28   28    2.630872 61.66047 0.00000000
## 29   29    2.691275 56.97765 0.00000000
## 30   30    2.751678 67.02868 0.00000000
## 31   31    2.812081 64.20250 0.00000000
## 32   32    2.872483 61.79958 0.00000000
## 33   33    2.932886 67.04359 0.00000000
## 34   34    2.993289 67.45884 0.00000000
## 35   35    3.053691 67.71585 0.00000000
## 36   36    3.114094 67.66731 0.00000000
## 37   37    3.174497 67.61164 0.00000000
## 38   38    3.234899 65.63155 0.00000000
## 39   39    3.295302 65.13857 0.00000000
## 40   40    3.355705 65.32375 0.00000000
## 41   41    3.416107 64.55003 0.00000000
## 42   42    3.476510 66.98041 0.00000000
## 43   43    3.536913 63.23372 0.00000000
## 44   44    3.597315 77.45435 0.00000000
## 45   45    3.657718 74.09359 0.00000000
## 46   46    3.718121 65.25253 0.00000000
## 47   47    3.778523 68.61665 0.00000000
## 48   48    3.838926 68.84479 0.00000000
## 49   49    3.899329 74.31449 0.00000000
## 50   50    3.959732 71.34438 0.00000000
## 51   51    4.020134 73.17435 0.00000000
## 52   52    4.080537 72.53011 0.00000000
## 53   53    4.140940 72.95603 0.00000000
## 54   54    4.201342 79.08515 0.00000000
## 55   55    4.261745 73.19088 0.00000000
## 56   56    4.322148 80.64306 0.00000000
## 57   57    4.382550 68.86539 0.00000000
## 58   58    4.442953 77.88208 0.00000000
## 59   59    4.503356 76.52226 0.00000000
## 60   60    4.563758 77.37383 0.00000000
## 61   61    4.624161 78.51185 0.00000000
## 62   62    4.684564 75.46722 0.00000000
## 63   63    4.744966 76.62690 0.00000000
## 64   64    4.805369 74.36865 0.00000000
## 65   65    4.865772 74.63901 0.00000000
## 66   66    4.926174 80.62351 0.00000000
## 67   67    4.986577 81.68546 0.00000000
## 68   68    5.046980 80.30598 0.04697987
## 69   69    5.107383 83.90383 0.10738255
## 70   70    5.167785 88.53591 0.16778523
## 71   71    5.228188 78.49225 0.22818792
## 72   72    5.288591 71.34051 0.28859060
## 73   73    5.348993 84.72094 0.34899329
## 74   74    5.409396 77.98199 0.40939597
## 75   75    5.469799 78.18756 0.46979866
## 76   76    5.530201 85.16269 0.53020134
## 77   77    5.590604 80.04212 0.59060403
## 78   78    5.651007 76.41914 0.65100671
## 79   79    5.711409 82.14803 0.71140940
## 80   80    5.771812 80.98806 0.77181208
## 81   81    5.832215 81.68749 0.83221477
## 82   82    5.892617 83.32636 0.89261745
## 83   83    5.953020 80.42340 0.95302013
## 84   84    6.013423 84.60435 1.01342282
## 85   85    6.073826 81.26570 1.07382550
## 86   86    6.134228 83.59558 1.13422819
## 87   87    6.194631 86.77662 1.19463087
## 88   88    6.255034 84.25079 1.25503356
## 89   89    6.315436 81.32715 1.31543624
## 90   90    6.375839 87.34691 1.37583893
## 91   91    6.436242 86.84650 1.43624161
## 92   92    6.496644 85.18688 1.49664430
## 93   93    6.557047 84.06902 1.55704698
## 94   94    6.617450 80.72328 1.61744966
## 95   95    6.677852 88.79831 1.67785235
## 96   96    6.738255 81.07547 1.73825503
## 97   97    6.798658 92.34665 1.79865772
## 98   98    6.859060 89.84856 1.85906040
## 99   99    6.919463 82.89612 1.91946309
## 100 100    6.979866 79.85405 1.97986577
## 101 101    7.040268 81.23891 2.04026846
## 102 102    7.100671 85.22888 2.10067114
## 103 103    7.161074 83.33538 2.16107383
## 104 104    7.221477 83.05278 2.22147651
## 105 105    7.281879 80.75728 2.28187919
## 106 106    7.342282 84.50445 2.34228188
## 107 107    7.402685 81.66575 2.40268456
## 108 108    7.463087 78.25441 2.46308725
## 109 109    7.523490 83.52607 2.52348993
## 110 110    7.583893 88.84377 2.58389262
## 111 111    7.644295 82.98720 2.64429530
## 112 112    7.704698 87.84125 2.70469799
## 113 113    7.765101 79.05867 2.76510067
## 114 114    7.825503 85.42876 2.82550336
## 115 115    7.885906 87.84944 2.88590604
## 116 116    7.946309 87.09723 2.94630872
## 117 117    8.006711 86.43613 3.00671141
## 118 118    8.067114 83.57140 3.06711409
## 119 119    8.127517 82.85622 3.12751678
## 120 120    8.187919 82.27932 3.18791946
## 121 121    8.248322 86.96723 3.24832215
## 122 122    8.308725 82.82755 3.30872483
## 123 123    8.369128 84.77603 3.36912752
## 124 124    8.429530 85.83469 3.42953020
## 125 125    8.489933 94.35531 3.48993289
## 126 126    8.550336 84.49287 3.55033557
## 127 127    8.610738 88.16302 3.61073826
## 128 128    8.671141 87.65413 3.67114094
## 129 129    8.731544 83.61566 3.73154362
## 130 130    8.791946 87.29866 3.79194631
## 131 131    8.852349 93.48290 3.85234899
## 132 132    8.912752 89.63152 3.91275168
## 133 133    8.973154 88.11124 3.97315436
## 134 134    9.033557 86.37713 4.03355705
## 135 135    9.093960 79.97493 4.09395973
## 136 136    9.154362 92.83407 4.15436242
## 137 137    9.214765 82.58697 4.21476510
## 138 138    9.275168 91.51013 4.27516779
## 139 139    9.335570 96.30756 4.33557047
## 140 140    9.395973 83.01637 4.39597315
## 141 141    9.456376 91.71989 4.45637584
## 142 142    9.516779 87.98477 4.51677852
## 143 143    9.577181 82.86579 4.57718121
## 144 144    9.637584 83.21650 4.63758389
## 145 145    9.697987 82.98983 4.69798658
## 146 146    9.758389 87.39315 4.75838926
## 147 147    9.818792 83.79056 4.81879195
## 148 148    9.879195 92.51006 4.87919463
## 149 149    9.939597 98.27963 4.93959732
## 150 150   10.000000 84.85188 5.00000000

Pemodelan

model <- lm(nilai~jam_belajar+x_piece,
            data=data)
summary(model)
## 
## Call:
## lm(formula = nilai ~ jam_belajar + x_piece, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -9.5727 -2.4193 -0.2783  2.4877  9.5527 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  39.9877     1.1320   35.32   <2e-16 ***
## jam_belajar   8.0881     0.3051   26.51   <2e-16 ***
## x_piece      -6.4081     0.4827  -13.28   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.795 on 147 degrees of freedom
## Multiple R-squared:  0.9122, Adjusted R-squared:  0.911 
## F-statistic:   764 on 2 and 147 DF,  p-value: < 2.2e-16

Prediksi

Prediksi <- predict(model)
Prediksi
##        1        2        3        4        5        6        7        8 
## 48.07581 48.56436 49.05290 49.54145 50.02999 50.51854 51.00708 51.49563 
##        9       10       11       12       13       14       15       16 
## 51.98417 52.47272 52.96126 53.44981 53.93835 54.42690 54.91544 55.40399 
##       17       18       19       20       21       22       23       24 
## 55.89254 56.38108 56.86963 57.35817 57.84672 58.33526 58.82381 59.31235 
##       25       26       27       28       29       30       31       32 
## 59.80090 60.28944 60.77799 61.26653 61.75508 62.24362 62.73217 63.22071 
##       33       34       35       36       37       38       39       40 
## 63.70926 64.19780 64.68635 65.17489 65.66344 66.15199 66.64053 67.12908 
##       41       42       43       44       45       46       47       48 
## 67.61762 68.10617 68.59471 69.08326 69.57180 70.06035 70.54889 71.03744 
##       49       50       51       52       53       54       55       56 
## 71.52598 72.01453 72.50307 72.99162 73.48016 73.96871 74.45725 74.94580 
##       57       58       59       60       61       62       63       64 
## 75.43434 75.92289 76.41144 76.89998 77.38853 77.87707 78.36562 78.85416 
##       65       66       67       68       69       70       71       72 
## 79.34271 79.83125 80.31980 80.50729 80.60877 80.71024 80.81172 80.91320 
##       73       74       75       76       77       78       79       80 
## 81.01467 81.11615 81.21763 81.31911 81.42058 81.52206 81.62354 81.72501 
##       81       82       83       84       85       86       87       88 
## 81.82649 81.92797 82.02944 82.13092 82.23240 82.33388 82.43535 82.53683 
##       89       90       91       92       93       94       95       96 
## 82.63831 82.73978 82.84126 82.94274 83.04422 83.14569 83.24717 83.34865 
##       97       98       99      100      101      102      103      104 
## 83.45012 83.55160 83.65308 83.75455 83.85603 83.95751 84.05899 84.16046 
##      105      106      107      108      109      110      111      112 
## 84.26194 84.36342 84.46489 84.56637 84.66785 84.76933 84.87080 84.97228 
##      113      114      115      116      117      118      119      120 
## 85.07376 85.17523 85.27671 85.37819 85.47966 85.58114 85.68262 85.78410 
##      121      122      123      124      125      126      127      128 
## 85.88557 85.98705 86.08853 86.19000 86.29148 86.39296 86.49444 86.59591 
##      129      130      131      132      133      134      135      136 
## 86.69739 86.79887 86.90034 87.00182 87.10330 87.20477 87.30625 87.40773 
##      137      138      139      140      141      142      143      144 
## 87.50921 87.61068 87.71216 87.81364 87.91511 88.01659 88.11807 88.21955 
##      145      146      147      148      149      150 
## 88.32102 88.42250 88.52398 88.62545 88.72693 88.82841

Visualisasi

plot(data$jam_belajar,data$nilai,
     pch = 19,
     col = "blue",
     xlab = "Jam Belajar",
     ylab = "Nilai")

lines(data$jam_belajar,
      Prediksi,
      col = "red",
      lwd = 4)