Contoh‐contoh fungsi

15.5. Contoh‐contoh fungsi

Selanjutnya akan diberikan beberapa contoh fungsi dengan menggunakan perintah ‐perintah yang sudah dijelaskan di bagian sebelumnya. Contoh‐contoh ini diharapkan dapat lebih memberi pemahaman tentang bagaimana mendefiniskan fungsi baru di R. Sebelum mengetikkan script fungsi ini pada R‐Editor, perintah‐perintah berikut disarankan untuk dicoba terlebih dahulu baris per baris pada R‐Console. Jika urutan sudah benar, baik secara logic maupun syntax, maka urutan‐urutan perintah pada R‐Console dapat dicopy, kemudian dipaste ke R‐Editor. Cara ini akan membantu proses mencari kesalahan dalam program (debugging).

ƒ Uji t dengan sampel tunggal Berikut ini adalah contoh fungsi untuk uji rata‐rata sampel tunggal dengan

varians tidak diketahui dengan menggunakan statistik uji t. Pada fungsi berikut, diberi nama uji_t, dengan argumen x sebagai vektor data yang akan diuji, mu0 sebagai nilai rata ‐rata yang dihipotesiskan, dan arah sebagai identifikasi apakah hipotesis alternatif pengujian bersifat dua arah, kurang dari atau lebih dari.

uji_t = function(x,mu0,arah) { df=length(x)-1 T=abs((mean(x)-mu0)/(sd(x)/sqrt(length(x)))) if (arah==0) P=2*(1-pt(abs(T),df)) else if (arah==-1) P=pt(T,df)

else P=pt(T,df,lower.tail=FALSE) else P=pt(T,df,lower.tail=FALSE)

n=",length(x),"\n") cat("T = ",T,",df = ",df," ,P = ",P,"\n") }

Sebelum menjalankan, simpan terlebih dulu fungsi itu dengan nama uji_t.R dan kemudian disourcekan. Untuk menjalankan akan digunakan data bakteri seperti yang dibahas pada Bab 7. Sehingga, perbandingan hasil fungsi ini dapat dilakukan dengan output uji sampel tunggal pada R di Bab 7 tersebut.

> bakteri=c(175,190,215,198,184,207,210,193,196,180)

> uji_t(bakteri,200,0)

Uji t Sampel Tunggal Ho:mu= 200 H1:mu!= 200 Mean = 194.8 stdev = 13.13858 n = 10 T = 1.251570 ,df = 9 P = 0.2422777

> uji_t(bakteri,200,1)

Uji t Sampel Tunggal Ho:mu= 200 H1:mu> 200 Mean = 194.8 stdev = 13.13858 n = 10 T = ‐1.251570 ,df = 9 P = 0.8788612

> uji_t(bakteri,200,‐1)

Uji t Sampel Tunggal Ho:mu= 200 H1:mu< 200 Mean = 194.8 stdev = 13.13858 n = 10 T = ‐1.251570 ,df = 9 P = 0.1211388

ƒ Regresi Linear Sederhana Berikut ini akan diberikan contoh fungsi regresi untuk mengestimasi persamaan

regresi linear sederhana. Fungsi ini mempunyai 2 argumen, yaitu y sebagai variabel respon dan x sebagai variabel prediktor. Estimasi dilakukan dengan metode kuadrat terkecil. Selanjutnya berturut‐turut dihitung standard error hasil estimasi, t hitung dan nilai p. Sebagai validasi, hasil perhitungan dapat dibandingkan dengan output menu regresi seperti pada Bab 8.

regresi<-function(y,x) { if (length(y)!=length(x)) cat("Banyak data tidak sama\n") k=1 n=length(x) for (i in 1:n) k[i]=1 X=cbind(k,x) b=(solve(t(X)%*%X))%*%t(X)%*%y y_hat=X%*%b e=y-y_hat SSR=sum((y_hat-mean(y))^2) SSE=sum((y-y_hat)^2) MSR=SSR/1 MSE=SSE/(n-1-1) cov_b=solve(t(X)%*%X)*MSE se_b=sqrt(diag(cov_b)) t_value=(1/se_b)*b p_value=2*(1-pt(abs(t_value),n-2)) cat(" estimate std.error t_value p \n") for (i in 1:2)

{ if (i==1) cat("intercept ",b[i],se_b[i],t_value[i],p_value[i],"\n") else cat( "x ",b[i],se_b[i],t_value[i],p_value[i],"\n") } }

Untuk menjalankan, misalkan digunakan data berikut ini.

> y=c(11,13,15,12,14,16,18) > x=c(2,4,5,3,6,7,8) > regresi(y,x)

estimate std.error t_value p intercept 8.785714 0.7498299 11.71694 7.960169e‐05 x 1.071429 0.1392399 7.694838 0.0005912413