kangguru abu-abu dalam satuan millimeter dengan data yang sudah diurutkan
menurut variable x sebagai berikut :
(nasal
=
X Y
hidung
)XNO
1 49.3 18.9
2 55.9 21.3
3 56.2 21.6
4 56.4 20.7
5 56.5 20.4
6 58 22.5
7 59.6 22
8 59.7 21.9
9 60.6 22.6
10 60.9 24.1
11 61.5 22.8
12 61.6 22
13 62 23.3
14 62.9 22.2
15 62.9 21.1
16 63 21.5
17 63.5 23.6
18 63.6 20.1
19 64.5 24.7
20 66 24
21 67.2 23.1
22 67.5 21.7
23 67.7 23.7
24 68.6 25.1
25 69.2 23.8
26 70.1 23.8
27 71 27.8
28 71 22.1
29 71.7 23.1
30 72.7 27.1
31 73 28.1
32 73.7 27.5
33 74 23.4
34 75.5 26.8
35 76.3 29.2
36 77.8 26.3
37 77.8 27.9
38 80.3 25.5
39 81 28.4
40 81.6 27.5
41 82.3 27.2
42 83 28.8
43 83.8 28.1
44 85.5 30.8
45 86.4 30.6
Jawab :
Untuk menjelaskan hubungan antara dua peubah Y dan X dapat kita hitung
melalui persamaan garis lurus: Ŷi = a + bXi ; i=1,2,3,...,n
Dengan adanya persamaan garis dapat dilakukan interpolasi atau menduga nilai Y
untuk X tertentu yang tidak diamati tetapi masih berada dalam selang X yang
diteliti.
Langkah awal dalam penelusuran pola hubungan nasal length (x) dengan
nasal width (y) adalah melalui scatter plot (xi,yi).
> data=read.csv("kangaroo1.csv", sep=",")
> data
X Y
1 49.3 18.9
2 55.9 21.3
3 56.2 21.6
4 56.4 20.7
5 56.5 20.4
6 58.0 22.5
7 59.6 22.0
8 59.7 21.9
9 60.6 22.6
10 60.9 24.1
11 61.5 22.8
12 61.6 22.0
13 62.0 23.3
14 62.9 22.2
15 62.9 21.1
16 63.0 21.5
17 63.5 23.6
18 63.6 20.1
19 64.5 24.7
20 66.0 24.0
21 67.2 23.1
22 67.5 21.7
23 67.7 23.7
24 68.6 25.1
25 69.2 23.8
26 70.1 23.8
27 71.0 27.8
28 71.0 22.1
29 71.7 23.1
30 72.7 27.1
31 73.0 28.1
32 73.7 27.5
33 74.0 23.4
34 75.5 26.8
35 76.3 29.2
36 77.8 26.3
37 77.8 27.9
38 80.3 25.5
39 81.0 28.4
40 81.6 27.5
41 82.3 27.2
42 83.0 28.8
43 83.8 28.1
44 85.5 30.8
45 86.4 30.6
> x=data$X
> y=data$Y
> plot(y~x)
> abline(lm(y~x))
Jika dilihat dari scatter plot diatas antara nasal length (x) dan nasal width (y)
terlihat adanya suatu pola garis lurus, dimana dalam grafik tersebut titik-titik
mengumpul membentuk pola garis lurus.
Untuk memeriksa apakah pola tersebut benar lurus atau lengkung, diperlukan
paling sedikit tiga titik yang dapat mewakili seluruh titik-titik yang ada.
Dengan menghubungkan ketiga titik tersebut dengan dua penggalan garis,
masing-masing menghubungkan dua titik yang berdekatan, pola garis lurus
itu dapat diperiksa.
Jika rasio koefisien b kedua penggalan garis tersebut, sangat jauh dari nilai 1,
maka hal tsb. menunjukkan adanya pola lengkung.
Jika dilihat dari scatter plot hampir semua titik-titik (xi,yi) mengumpul di
sekitar garis lurus, maka perhitungan koefisien a dan b dapat dilakukan
dengan “Metode Kuadrat Terkecil” (Draper dan Smith, 1981) yang
merupakan metode baku dalam analisis regresi.
Prosedur perhitungan yang ditempuh adalah sebagai berikut :
1. Membagi data menjadi 3 kelompok :
> data1=read.csv("kangaroo2.csv", sep=",")
> data1
xb yb xt yt xa ya
1 49.3 18.9 63.0 21.5 73.0 28.1
2 55.9 21.3 63.5 23.6 73.7 27.5
3 56.2 21.6 63.6 20.1 74.0 23.4
4 56.4 20.7 64.5 24.7 75.5 26.8
5 56.5 20.4 66.0 24.0 76.3 29.2
6 58.0 22.5 67.2 23.1 77.8 26.3
7 59.6 22.0 67.5 21.7 77.8 27.9
8 59.7 21.9 67.7 23.7 80.3 25.5
9 60.6 22.6 68.6 25.1 81.0 28.4
10 60.9 24.1 69.2 23.8 81.6 27.5
11 61.5 22.8 70.1 23.8 82.3 27.2
12 61.6 22.0 71.0 27.8 83.0 28.8
13 62.0 23.3 71.0 22.1 83.8 28.1
14 62.9 22.2 71.7 23.1 85.5 30.8
15 62.9 21.1 72.7 27.1 86.4 30.6
> resist=function(xb,yb,xt,yt,xa,ya){
+ mxb=median(xb);myb=median(yb)
+ mxt=median(xt); myt=median(yt)
+ mxa=median(xa); mya=median(ya)
+ b=((mya-myb)/(mxa-mxb))
+ a=((mya+myt+myb)-(b*(mxa+mxt+mxb)))/3
+ bb=(myt-myb)/(mxt-mxb)
+ ba=(mya-myt)/(mxa-mxt)
+ ratio=(ba/bb)
+ ringkasan=data.frame(b=c(b),a=c(a),ratio=c(ratio))
+}
> resisten=resist(xb,yb,xt,yt,xa,ya)
> resisten
b a ratio
0.2864078 4.704369 1.568627
Dapat kita lihat rasio koefisien b kedua penggalan garis tersebut, mendekati
nilai 1, maka hal tersebut tidak menunjukan indikasi cukup kuat akan adanya
kelengkungan ( rasio = 1.57 ) dan persamaan garis resistennya yaitu
^y =4.7044+ 0.286 X
Artinya, model terdapat bermakna bahwa terdapat hubungan positif antara
panjang dengan lebar hidung kangguru. Semakin panjang hidung seekor
kangguru maka semakin lembar pula hidung kangguru. Untuk setiap 1mm
penambahan panjang hidung (Nasal Length), lebar hidung (Nasal Width )
akan bertambah rata-rata 0.286 mm dengan konstanta awal 4.7044.
2. Iterasi 2
Untuk iterasi kedua kita perlu juga menghitung dugaan y yang pertama (ŷ1)
serta residual atau selisih antara dugaan dengan data aktual.
Mencari nilai ŷ1
> ar=4.704369
> br=0.2864078
> data$Y1=ar+(br*X)
> attach(data)
> data
X Y Y1
1 49.3 18.9 18.82427
2 55.9 21.3 20.71457
3 56.2 21.6 20.80049
4 56.4 20.7 20.85777
5 56.5 20.4 20.88641
6 58.0 22.5 21.31602
7 59.6 22.0 21.77427
8 59.7 21.9 21.80291
9 60.6 22.6 22.06068
10 60.9 24.1 22.14660
11 61.5 22.8 22.31845
12 61.6 22.0 22.34709
13 62.0 23.3 22.46165
14 62.9 22.2 22.71942
15 62.9 21.1 22.71942
16 63.0 21.5 22.74806
17 63.5 23.6 22.89126
18 63.6 20.1 22.91991
19 64.5 24.7 23.17767
20 66.0 24.0 23.60728
21 67.2 23.1 23.95097
22 67.5 21.7 24.03690
23 67.7 23.7 24.09418
24 68.6 25.1 24.35194
25 69.2 23.8 24.52379
26 70.1 23.8 24.78156
27 71.0 27.8 25.03932
28 71.0 22.1 25.03932
29 71.7 23.1 25.23981
30 72.7 27.1 25.52622
31 73.0 28.1 25.61214
32 73.7 27.5 25.81262
33 74.0 23.4 25.89855
34 75.5 26.8 26.32816
35 76.3 29.2 26.55728
36 77.8 26.3 26.98690
37 77.8 27.9 26.98690
38 80.3 25.5 27.70292
39 81.0 28.4 27.90340
40 81.6 27.5 28.07525
41 82.3 27.2 28.27573
42 83.0 28.8 28.47622
43 83.8 28.1 28.70534
44 85.5 30.8 29.19224
45 86.4 30.6 29.45000
Mencari nilai residu 1
> data$res1=y-Y1
> attach(data)
> data
X Y Y1 res1
1 49.3 18.9 18.82427 0.07572646
2 55.9 21.3 20.71457 0.58543498
3 56.2 21.6 20.80049 0.79951264
4 56.4 20.7 20.85777 -0.15776892
5 56.5 20.4 20.88641 -0.48640970
6 58.0 22.5 21.31602 1.18397860
7 59.6 22.0 21.77427 0.22572612
8 59.7 21.9 21.80291 0.09708534
9 60.6 22.6 22.06068 0.53931832
10 60.9 24.1 22.14660 1.95339598
11 61.5 22.8 22.31845 0.48155130
12 61.6 22.0 22.34709 -0.34708948
13 62.0 23.3 22.46165 0.83834740
14 62.9 22.2 22.71942 -0.51941962
15 62.9 21.1 22.71942 -1.61941962
16 63.0 21.5 22.74806 -1.24806040
17 63.5 23.6 22.89126 0.70873570
18 63.6 20.1 22.91991 -2.81990508
19 64.5 24.7 23.17767 1.52232790
20 66.0 24.0 23.60728 0.39271620
21 67.2 23.1 23.95097 -0.85097316
22 67.5 21.7 24.03690 -2.33689550
23 67.7 23.7 24.09418 -0.39417706
24 68.6 25.1 24.35194 0.74805592
25 69.2 23.8 24.52379 -0.72378876
26 70.1 23.8 24.78156 -0.98155578
27 71.0 27.8 25.03932 2.76067720
28 71.0 22.1 25.03932 -2.93932280
29 71.7 23.1 25.23981 -2.13980826
30 72.7 27.1 25.52622 1.57378394
31 73.0 28.1 25.61214 2.48786160
32 73.7 27.5 25.81262 1.68737614
33 74.0 23.4 25.89855 -2.49854620
34 75.5 26.8 26.32816 0.47184210
35 76.3 29.2 26.55728 2.64271586
36 77.8 26.3 26.98690 -0.68689584
37 77.8 27.9 26.98690 0.91310416
38 80.3 25.5 27.70292 -2.20291534
39 81.0 28.4 27.90340 0.49659920
40 81.6 27.5 28.07525 -0.57524548
41 82.3 27.2 28.27573 -1.07573094
42 83.0 28.8 28.47622 0.32378360
43 83.8 28.1 28.70534 -0.60534264
44 85.5 30.8 29.19224 1.60776410
45 86.4 30.6 29.45000 1.14999708
Mencari nilai ŷ1 dari kelompok bawah
> b=data.frame(xb=c(data1$xb),yb=c(data1$yb))
> b$Y1B=ar+(br*xb)
> attach(b)
>b
xb yb Y1B
1 49.3 18.9 18.82427
2 55.9 21.3 20.71457
3 56.2 21.6 20.80049
4 56.4 20.7 20.85777
5 56.5 20.4 20.88641
6 58.0 22.5 21.31602
7 59.6 22.0 21.77427
8 59.7 21.9 21.80291
9 60.6 22.6 22.06068
10 60.9 24.1 22.14660
11 61.5 22.8 22.31845
12 61.6 22.0 22.34709
13 62.0 23.3 22.46165
14 62.9 22.2 22.71942
15 62.9 21.1 22.71942
Mencari nilai ŷ1 dari kelompok tengah
> t=data.frame(xt=c(data1$xt),yt=c(data1$yt))
> t$Y1T=ar+(br*xt)
> attach(t)
>t
xt yt Y1T
1 63.0 21.5 22.74806
2 63.5 23.6 22.89126
3 63.6 20.1 22.91991
4 64.5 24.7 23.17767
5 66.0 24.0 23.60728
6 67.2 23.1 23.95097
7 67.5 21.7 24.03690
8 67.7 23.7 24.09418
9 68.6 25.1 24.35194
10 69.2 23.8 24.52379
11 70.1 23.8 24.78156
12 71.0 27.8 25.03932
13 71.0 22.1 25.03932
14 71.7 23.1 25.23981
15 72.7 27.1 25.52622
Mencari nilai ŷ1 dari kelompok atas
> a=data.frame(xa=c(data1$xa),ya=c(data1$ya))
> a$Y1A=ar+(br*xa)
> attach(a)
>a
xa ya Y1A
1 73.0 28.1 25.61214
2 73.7 27.5 25.81262
3 74.0 23.4 25.89855
4 75.5 26.8 26.32816
5 76.3 29.2 26.55728
6 77.8 26.3 26.98690
7 77.8 27.9 26.98690
8 80.3 25.5 27.70292
9 81.0 28.4 27.90340
10 81.6 27.5 28.07525
11 82.3 27.2 28.27573
12 83.0 28.8 28.47622
13 83.8 28.1 28.70534
14 85.5 30.8 29.19224
15 86.4 30.6 29.45000
Ket : misal, a=data.frame(xa=c(data1$xa),ya=c(data1$ya)) menggunakan
syntax tersebut digunakan untuk membuat frame masing-masing kelompok
bawah, atas, dan tengah.
> b$res1B=yb-Y1B
> attach(b)
>b
xb yb Y1B res1B
1 49.3 18.9 18.82427 0.07572646
2 55.9 21.3 20.71457 0.58543498
3 56.2 21.6 20.80049 0.79951264
4 56.4 20.7 20.85777 -0.15776892
5 56.5 20.4 20.88641 -0.48640970
6 58.0 22.5 21.31602 1.18397860
7 59.6 22.0 21.77427 0.22572612
8 59.7 21.9 21.80291 0.09708534
9 60.6 22.6 22.06068 0.53931832
10 60.9 24.1 22.14660 1.95339598
11 61.5 22.8 22.31845 0.48155130
12 61.6 22.0 22.34709 -0.34708948
13 62.0 23.3 22.46165 0.83834740
14 62.9 22.2 22.71942 -0.51941962
15 62.9 21.1 22.71942 -1.61941962
> data$Y2<-ar+(b2*x)
> data$res2=y-Y2
> attach(data)
> data
X Y Y1 res1 Y2 res2
1 49.3 18.9 18.82427 0.07572646 19.41328 -0.51327926
2 55.9 21.3 20.71457 0.58543498 21.38242 -0.08242343
3 56.2 21.6 20.80049 0.79951264 21.47193 0.12807001
4 56.4 20.7 20.85777 -0.15776892 21.53160 -0.83160102
5 56.5 20.4 20.88641 -0.48640970 21.56144 -1.16143654
6 58.0 22.5 21.31602 1.18397860 22.00897 0.49103070
7 59.6 22.0 21.77427 0.22572612 22.48634 -0.48633759
8 59.7 21.9 21.80291 0.09708534 22.51617 -0.61617311
9 60.6 22.6 22.06068 0.53931832 22.78469 -0.18469277
10 60.9 24.1 22.14660 1.95339598 22.87420 1.22580068
11 61.5 22.8 22.31845 0.48155130 23.05321 -0.25321243
12 61.6 22.0 22.34709 -0.34708948 23.08305 -1.08304794
13 62.0 23.3 22.46165 0.83834740 23.20239 0.09760998
14 62.9 22.2 22.71942 -0.51941962 23.47091 -1.27090968
15 62.9 21.1 22.71942 -1.61941962 23.47091 -2.37090968
16 63.0 21.5 22.74806 -1.24806040 23.50075 -2.00074519
17 63.5 23.6 22.89126 0.70873570 23.64992 -0.04992278
18 63.6 20.1 22.91991 -2.81990508 23.67976 -3.57975830
19 64.5 24.7 23.17767 1.52232790 23.94828 0.75172204
20 66.0 24.0 23.60728 0.39271620 24.39581 -0.39581073
21 67.2 23.1 23.95097 -0.85097316 24.75384 -1.65383694
22 67.5 21.7 24.03690 -2.33689550 24.84334 -3.14334349
23 67.7 23.7 24.09418 -0.39417706 24.90301 -1.20301453
24 68.6 25.1 24.35194 0.74805592 25.17153 -0.07153419
25 69.2 23.8 24.52379 -0.72378876 25.35055 -1.55054729
26 70.1 23.8 24.78156 -0.98155578 25.61907 -1.81906695
27 71.0 27.8 25.03932 2.76067720 25.88759 1.91241339
28 71.0 22.1 25.03932 -2.93932280 25.88759 -3.78758661
29 71.7 23.1 25.23981 -2.13980826 26.09644 -2.99643524
30 72.7 27.1 25.52622 1.57378394 26.39479 0.70520958
31 73.0 28.1 25.61214 2.48786160 26.48430 1.61570303
32 73.7 27.5 25.81262 1.68737614 26.69315 0.80685441
33 74.0 23.4 25.89855 -2.49854620 26.78265 -3.38265215
34 75.5 26.8 26.32816 0.47184210 27.23018 -0.43018491
35 76.3 29.2 26.55728 2.64271586 27.46887 1.73113094
36 77.8 26.3 26.98690 -0.68689584 27.91640 -1.61640182
37 77.8 27.9 26.98690 0.91310416 27.91640 -0.01640182
38 80.3 25.5 27.70292 -2.20291534 28.66229 -3.16228977
39 81.0 28.4 27.90340 0.49659920 28.87114 -0.47113839
40 81.6 27.5 28.07525 -0.57524548 29.05015 -1.55015150
41 82.3 27.2 28.27573 -1.07573094 29.25900 -2.05900012
42 83.0 28.8 28.47622 0.32378360 29.46785 -0.66784875
43 83.8 28.1 28.70534 -0.60534264 29.70653 -1.60653289
44 85.5 30.8 29.19224 1.60776410 30.21374 0.58626331
45 86.4 30.6 29.45000 1.14999708 30.48226 0.11774365
> b$Y2B=ar+(b2*xb)
> b$res2B=yb-Y2B
> attach(b)
>b
xb yb Y1B res1B Y2B res2B
1 49.3 18.9 18.82427 0.07572646 19.41328 -0.51327926
2 55.9 21.3 20.71457 0.58543498 21.38242 -0.08242343
3 56.2 21.6 20.80049 0.79951264 21.47193 0.12807001
4 56.4 20.7 20.85777 -0.15776892 21.53160 -0.83160102
5 56.5 20.4 20.88641 -0.48640970 21.56144 -1.16143654
6 58.0 22.5 21.31602 1.18397860 22.00897 0.49103070
7 59.6 22.0 21.77427 0.22572612 22.48634 -0.48633759
8 59.7 21.9 21.80291 0.09708534 22.51617 -0.61617311
9 60.6 22.6 22.06068 0.53931832 22.78469 -0.18469277
10 60.9 24.1 22.14660 1.95339598 22.87420 1.22580068
11 61.5 22.8 22.31845 0.48155130 23.05321 -0.25321243
12 61.6 22.0 22.34709 -0.34708948 23.08305 -1.08304794
13 62.0 23.3 22.46165 0.83834740 23.20239 0.09760998
14 62.9 22.2 22.71942 -0.51941962 23.47091 -1.27090968
15 62.9 21.1 22.71942 -1.61941962 23.47091 -2.37090968
> t$Y2T<-ar+(b2*xt)
> t$res2T<-yt-Y2T
> attach(t)
>t
xt yt Y1T res1T Y2T res2T
1 63.0 21.5 22.74806 -1.2480604 23.50075 -2.00074519
2 63.5 23.6 22.89126 0.7087357 23.64992 -0.04992278
3 63.6 20.1 22.91991 -2.8199051 23.67976 -3.57975830
4 64.5 24.7 23.17767 1.5223279 23.94828 0.75172204
5 66.0 24.0 23.60728 0.3927162 24.39581 -0.39581073
6 67.2 23.1 23.95097 -0.8509732 24.75384 -1.65383694
7 67.5 21.7 24.03690 -2.3368955 24.84334 -3.14334349
8 67.7 23.7 24.09418 -0.3941771 24.90301 -1.20301453
9 68.6 25.1 24.35194 0.7480559 25.17153 -0.07153419
10 69.2 23.8 24.52379 -0.7237888 25.35055 -1.55054729
11 70.1 23.8 24.78156 -0.9815558 25.61907 -1.81906695
12 71.0 27.8 25.03932 2.7606772 25.88759 1.91241339
13 71.0 22.1 25.03932 -2.9393228 25.88759 -3.78758661
14 71.7 23.1 25.23981 -2.1398083 26.09644 -2.99643524
15 72.7 27.1 25.52622 1.5737839 26.39479 0.70520958
> a$Y2A<-ar+(b2*xa)
> a$res2A<-ya-Y2A
> attach(a)
>a
xa ya Y1A res1A Y2A res2A
1 73.0 28.1 25.61214 2.4878616 26.48430 1.61570303
2 73.7 27.5 25.81262 1.6873761 26.69315 0.80685441
3 74.0 23.4 25.89855 -2.4985462 26.78265 -3.38265215
4 75.5 26.8 26.32816 0.4718421 27.23018 -0.43018491
5 76.3 29.2 26.55728 2.6427159 27.46887 1.73113094
6 77.8 26.3 26.98690 -0.6868958 27.91640 -1.61640182
7 77.8 27.9 26.98690 0.9131042 27.91640 -0.01640182
8 80.3 25.5 27.70292 -2.2029153 28.66229 -3.16228977
9 81.0 28.4 27.90340 0.4965992 28.87114 -0.47113839
10 81.6 27.5 28.07525 -0.5752455 29.05015 -1.55015150
11 82.3 27.2 28.27573 -1.0757309 29.25900 -2.05900012
12 83.0 28.8 28.47622 0.3237836 29.46785 -0.66784875
13 83.8 28.1 28.70534 -0.6053426 29.70653 -1.60653289
14 85.5 30.8 29.19224 1.6077641 30.21374 0.58626331
15 86.4 30.6 29.45000 1.1499971 30.48226 0.11774365
Menghitung persamaan garis resisten baru untuk mendapatkan nilai b2’
> resist<-function(xb,yb,xt,yt,xa,ya){
+ mxb<-median(xb);myb<-median(yb)
+ mxt<-median(xt); myt<-median(yt)
+ mxa<-median(xa); mya<-median(ya)
+ b<-((mya-myb)/(mxa-mxb))
+ a<-((mya+myt+myb)-(b*(mxa+mxt+mxb)))/3
+ bb<-(myt-myb)/(mxt-mxb)
+ ba<-(mya-myt)/(mxa-mxt)
+ ratio<-(ba/bb)
+ ringkasan<-data.frame(b2aksen=c(b),a2aksen=c(a),
+ ratio=c(ratio))
+}
> resisten3<-resist(xb,res2B,xt,res2T,xa,res2A)
> resisten3
b2aksen a2aksen ratio
1 0.0007378251 -0.8870899 -0.6439887
> b1aksen=0.01194738
> b2aksen=0.0007378251
> b3<-b2-b2aksen*((b2-br)/(b2aksen-b1aksen))
> b3
[1] 0.2991416
Iterasi berhenti jika nilai bn+1’ sudah cukup kecil. Jika nilainya sudah lebih
kecil dari 1% dikali nilai b awal.
Nilai b2’ = 0.0007378251 < 1% x 0.0286
= 0.0007378251< 0.00286
Artinya, iterasi berhenti pada iterasi ke-3.
Persamaan taksiran garis resistennya adalah ŷ3=4.7044+0.2991416x