Laporan ke-2 Pemograman Statistik

library(DT)
## Warning: package 'DT' was built under R version 4.0.3

Grafik

Plot

  • Bentuk umum syntax plot adalah plot(x,y,...)
  • Bentuk Tipe gambar pada grafik adalah sbb
No Type To be Drawn fungsi
1 p gambar titik
2 l gambar garis
3 b both
4 c the lines part alone of b
5 o overplotted
6 h like histogram
7 s stair steps
8 S other steps
9 n no plotting

dasar Plot

# membangkitkan data x
x <- 1:40
y <- round(rnorm(40,5, 1),2)
# membuat data tabel
data1 <- (data.frame(x,y))
datatable(data1)
# Fungsi Plot titik bulat kosong
plot(data1,type="p")

# Fungsi plot garis
plot(data1,type="l")

# Fungsi plot dan garis dibagung
plot(data1,type="b")

# Fungsi plot dan garis dibagung
plot(data1,type="c")

# Fungsi plot titik bulat kosong dan terhubung garis dimana gambar garis diatas plot titik
plot(data1,type="o")

# Fungsi plot untuk membuat histogram pada data dalam bentuk garis
plot(data1,type="h")

# Fungsi plot untuk membuat grafik seperti berbentuk tangga
plot(data1,type="s")

# Fungsi plot untuk membuat grafik seperti berbentuk tangga
plot(data1,type="S")

# Fungsi yang menghilangkan gambar plot
plot(x,y,type="n")

Warna Grafik

  • Untuk membuat warna grafik ada beberapa cara
No Type warna gafik fungsi
1 Numeric 1-8 (recycle) bentuk warna dasar dimana angka 1-8 mewakili suatu warna
2 Character colorname(colors()) menuliskan warnanya misalnya red, blue, dll untuk lihat warna (colours())
3 Fungsi rainbow(), rgb() Untuk buat gradasi warna contoh rainbow(7)-> barti ada 7 gradasi warna, rgb(red=20, green=10, blue=5) -> cara pebnulisannya (dimana angkanya 1-255)
4 Package colorspace, colourpicker, RColorBrewer inu untuk package warna
5 dll
  • Fungsi Plot lengkap, dimana xlab= judul sumbu X, ylab= judul sumbu y, main= judul grafik
  • Berikut adalah bentuk plot data yang dikodekan menjadi kode pch dengan col seperti dibawah ini

Kode pcd dan col

# contoh plot titik dengan wanra jingga pada titik
plot(data1,type="p",xlab="Sumbu X", ylab="Sumbu Y", main="Bilangan Acak Normal", col=2, pch=16)

# contoh plot titik dengan warna pelangi pada titik, dimana `cex` untuk ubah ukuran titik, xlim=c(0,50) menentukan area titik sumbu x yang diwarnai, ylim = c(1.5,7.5) area titik sumbu y yang mau diwarnai
plot(data1,type="p",xlab="Sumbu x",ylab="Sumbu y",
main="Bilangan Acak Normal",col=rainbow(40),
pch=16,cex=2,xlim=c(0,50),ylim=c(2.5,7.5))

# Tambah amatan dari plot yang sudah ada
plot(data1,type="p",xlab="Sumbu x",ylab="Sumbu y",
main="Bilangan Acak Normal",col=rainbow(40),
pch=16,cex=2,xlim=c(0,50),ylim=c(2.5,7.5))

x1 <- 41:50
y1 <- rnorm(10,5,1)
points(x1,y1,cex=2)

# Menambahkan garis dari plot yang sudah ada
plot(data1,type="p",xlab="Sumbu x",ylab="Sumbu y",
main="Bilangan Acak Normal",col=rainbow(40),
pch=16,cex=2,xlim=c(0,50),ylim=c(2.5,7.5))
x1 <- 41:50
y1 <- rnorm(10,5,1)
points(x1,y1,cex=2)

x2 <- rep(40.5,20) # membuat data 40.5 sebanyak 20 di sumbu x
y2 <- seq(min(c(y,y1)),max(c(y,y1)),length=20) # membuat data sumbu y dari nilai minimum y1 sampai maximum y1 dengan panjang titik 20
lines(x2,y2,col=4,lwd=2,lty=2) # col warna garis, lwd=lebar garis, lty= garis putus-2

# Menambahkan garis lurus dimana pada kasus in menambahkan gari rata-2 dari y dan garis regresi
plot(data1,type="p",xlab="Sumbu x",ylab="Sumbu y",
main="Bilangan Acak Normal",col=rainbow(40),
pch=16,cex=2,xlim=c(0,50),ylim=c(2.5,7.5))
x1 <- 41:50
y1 <- rnorm(10,5,1)
points(x1,y1,cex=2)
x2 <- rep(40.5,20)
y2 <- seq(min(c(y,y1)),max(c(y,y1)),length=20) 
lines(x2,y2,col=4,lwd=2,lty=2) 

abline(h=mean(data1$y),col="red",lwd=2.5) # membuat garis rataan warna merah dengan ketebalan 2.5 dimana h=horizontal
abline(a=2,b=1/10,col="maroon3",lwd=2,lty=2) # menambahkan garis regresi warna maron lebar 2 dan garis putus-2

# Menambahkan tanda panah pada pada grafik
plot(data1,type="p",xlab="Sumbu x",ylab="Sumbu y",
main="Bilangan Acak Normal",col=rainbow(40),
pch=16,cex=2,xlim=c(0,50),ylim=c(2.5,7.5))
x1 <- 41:50
y1 <- rnorm(10,5,1)
points(x1,y1,cex=2)
x2 <- rep(40.5,20)
y2 <- seq(min(c(y,y1)),max(c(y,y1)),length=20) 
lines(x2,y2,col=4,lwd=2,lty=2) 
abline(h=mean(data1$y),col="red",lwd=2.5) 
abline(a=2,b=1/10,col="maroon3",lwd=2,lty=2)

arrows(x0=30,y0=3.5,x1=40,y1=mean(data1$y)-.1,lwd=2) # menambahkan garis panah dengan mengidentifikasi posisi-nya yaitu awal (x0,y0) dan posisi akhir (x1,y1)

# Menambahkan Tulisan pada pada grafik
plot(data1,type="p",xlab="Sumbu x",ylab="Sumbu y",
main="Bilangan Acak Normal",col=rainbow(40),
pch=16,cex=2,xlim=c(0,50),ylim=c(2.5,7.5))
x1 <- 41:50
y1 <- rnorm(10,5,1)
points(x1,y1,cex=2)
x2 <- rep(40.5,20)
y2 <- seq(min(c(y,y1)),max(c(y,y1)),length=20) 
lines(x2,y2,col=4,lwd=2,lty=2) 
abline(h=mean(data1$y),col="red",lwd=2.5) 
abline(a=2,b=1/10,col="maroon3",lwd=2,lty=2)
arrows(x0=30,y0=3.5,x1=40,y1=mean(data1$y)-.1,lwd=2) 

text(x=29,y=3.3,labels="Titik potong",cex=0.7) # menambahkan txt titik potong dengan menentukan posisi text dan cex adalah besaran tulisan

text(x=3,y=7.3,labels="Data awal",cex=0.7) # menambakan text data awal pada posisi (3,7.3)
text(x=46,y=7.3,labels="Data baru",cex=0.7)# menambakan text data baru pada posisi (3,7.3)

Latihan 1

Latihan 1

# membuat grafik fungsi sinus dengan dari -pi sampai dengan 2*pi
plot(sin,-pi, 2*pi)

# membuat grafik bar pada distribusi poison dengan n=100 dan lamda=5, h=grfik bentuk seperti histogram, col=red warna garis merah, lwd=1 lebar garis 1
plot(table(rpois(100,5)),type="h",col="red",
lwd=1,main="rpois(100,lambda=5)")

Latihan 2

Latihan 2

# Membuat plot dimana tiap titik amatan diberikan lambang hurf w
a1 <- 1:25
a2 <- rnorm(25,4,2)
plot(a1,a2, pch="w", main = "Bentuk Plot 'w'")

Latihan 3

Latihan 3

# Mengosongkan canvas grafik plot a1,a2 lalu dibentuk kembali plot dengan huruf w dengan warna pelangi sebanyak 25 warna dengan ketebalan huruf 0.8
plot(a1,a2,type="n",main="Bentuk Plot 'w'")
text(a1,a2,labels=paste("W",1:25,sep=""),col=rainbow(25),cex=0.8)

Latihan 4

Latihan 4

# membuat grafik chi-square dengan jumlah observasi yang dibangkitkan sebesar 100 dan derajat bebas 4, dibuat histogram dari x dimana frekuensi FALSE sehingga sumby y density dan ylim batasnya dari 0 sampai 0.2, lalu ditambahkan fungsi kurva chi-suare x dengan warna kode 2; dengan lty=2 (bentuk garis putus-2); lwd=2(ketebalan garis 2); dan menambahkan grafik garis pada saut ccanvas dengan histogram
x <- rchisq(100,df=4)
hist(x,freq=FALSE,ylim=c(0,0.2))
curve(dchisq(x,df=4),col=2,lty=2,lwd=2,add=TRUE)

Multiple Graphic

  • fungsi disini digunakan untuk menampilkan satu kanvas menjadi beberapa garafik dimana sebelumnya satu canvas satu grafik
# Menampilkan grafik Bilangan Acak Normal, Grafik Sinus, Grafik rpois, da grafik plot W dalam satu canvas dengan urutan per baris 
par(mfrow=c(2,2))
plot(1:40,y,type="p",xlab="Sumbu x",ylab="Sumbu y",
main="Bilangan Acak Normal",col=2,pch=16)
plot(sin,-pi, 2*pi, main="Grafik Sinus")
plot(table(rpois(100,5)),type="h",col="red",
lwd=1,main="rpois(100,lambda=5)")
plot(a1,a2,type="n",main="Bentuk Plot 'w'")
text(a1,a2,labels=paste("w",1:25,sep=""),
col=rainbow(25),cex=0.8)

# Menampilkan grafik Bilangan Acak Normal, Grafik Sinus, Grafik rpois, da grafik plot W dalam satu canvas dengan urutan per kolom
par(mfcol=c(2,2))
plot(1:40,y,type="p",xlab="Sumbu x",ylab="Sumbu y",
main="Bilangan Acak Normal",col=2,pch=16)
plot(sin,-pi, 2*pi,  main="Grafik Sinus")
plot(table(rpois(100,5)),type="h",col="red",lwd=1,
main="rpois(100,lambda=5)")
plot(a1,a2,type="n",main="Bentuk Plot 'w'")
text(a1,a2,labels=paste("w",1:25,sep=""),
col=rainbow(25),cex=0.8)

Latihan 5

Latihan 5

windows()
yb <- rnorm(100,5,1)
split.screen(c(2,2))
## [1] 1 2 3 4
screen(3)
boxplot(yb)
title("Boxplot Bilangan Acak Normal",cex.main=0.7)
screen(4)
xb <- 1:100
plot(xb,yb,type="l",lwd=2,col="blue")
title("Line Plot Bilangan Acak Normal",cex.main=0.7)
screen(2)
hist(yb,freq=FALSE,main=NULL,ylim=c(0,0.5))
x <- yb
curve(dnorm(x,5,1),col="red",lty=2,lwd=2,add=TRUE)
title("Histogram Bilangan Acak Normal",cex.main=0.7)
screen(1)
plot(xb,yb,pch=16,col=rainbow(100))
title("Scatter Plot Bilangan Acak Normal",cex.main=0.7)

Fungsi Pembangkitan Bilangan Acak dalam R

Pembangkitan Bilangan Acak pada Sebaran

  • Pembangkitan Bilangan Acak pada beberapa sebaran
No Nama Distribusi Nama di R
1 Beta beta
2 Binomial binom
3 Cauchy cauchy
4 Chi-square chisq
5 Exponential exp
6 F (Fisher) f
7 Gamma gamma
8 Geometric geom
9 Hypergeometric hyper
10 Log-Normal lnorm
11 Uniform unif
12 Binomial Negatif nbinom
13 Normal norm
14 Poisson pois
15 t-students t

Perintah yang sama untuk semua sebaran, pada contoh ini menggunakan sebaran uniform + runif() -> dengan ada huruf r dan diikuti syntax dari sebaran berarti ini berfungsi untuk membangkitkan bilangan acak + dunif() -> dengan ada huruf d dan diikuti syntax dari sebaran berarti ini berfungsi untuk menghitung nilai fkp atau fmp dari suatu sebaran + pinf() -> dengan ada huruf p dan diikuti syntax dari sebaran berarti ini untuk menghitung peluang peubah acak marginal yang defaultnya lebih kecil dari (<=) + qunif() -> dengan ada huruf q dan diikuti syntax dari sebaran berarti ini untuk menghitung quantil atau nilai x pada suatu sebaran (contoh untuk distribusi normal baku mencari niai z=1.96)

# membangkitkan data sebanyak 10, karena tidak ditentukan besarnya mean dan sd maka dianggap menyebar normal baku dimana mean =0 dan sd=1
x <- rnorm(10) # x ~ N(0,1)
x
##  [1]  0.89607276  0.60396447  0.19358043 -0.17485372  0.55653883  1.10915472
##  [7]  2.37870259  0.28274502  0.22086359 -0.05483353
# membangkitkan data sebanyak 10  pada disttribusi normal mean =3 dan sd=2
x1 <- rnorm(10,3,2) # x ~ N(mean=3,sd=2)
x1
##  [1] 3.8354954 4.0871777 3.3470708 0.5248405 3.3911328 3.3257337 6.7666998
##  [8] 5.9996802 4.6166676 2.6462812
# membangkitkan data sebanyak 10 pada distribusi binomial dengan x=1 dan p=0.4 atau bisa dikatakan menyebar bernouli karena sukses pertama
x2 <- rbinom(10,1,0.4) # x2 ~ Bernouli(0.4)
x2
##  [1] 0 1 1 1 0 0 0 1 1 0

Peluang Kumulatif Peubah Acak

# Mencari peluang z lebih kecil dari 1.645 pada sebaran normal
p1 <- pnorm(1.645) # P(z<1.645)=0.95
p1
## [1] 0.9500151
# Mencari peluang z lebih kecil dari 1.96 pada sebaran normal
p2 <- pnorm(1.96) # P(z<1.96)=0.975
p2
## [1] 0.9750021
# Mencari peluang z lebih kecil dari -1.96 pada sebaran normal
p3 <- pnorm(-1.96) # P(z<-1.96)=0.025
p3
## [1] 0.0249979
# hitung peluang pada sebaran F pada quantil ke 15 dengan derajat bebas 1 =10 dan 2=15
p4 <- pf(15,df1=10,df2 = 15) 
p4
## [1] 0.9999955

Nilai kuantil dari suatu Sebaran

# mencari nilai z dengan peluang 0.975 pada sebaran Normal Baku (mean=0, sd=1)
q1 <- qnorm(0.975)
q1
## [1] 1.959964
# mencari nilai z dengan peluang 0.95 dan mean=2 serta sd=1 pada sebaran Normal
q2 <- qnorm(0.95,mean=2,sd=1) # X~ N(2,1), P(X<x)=0.95
q2
## [1] 3.644854

Plot Density Sebaran

# Memnbuat plot antara a dan da
a <- seq(-4,4,length=1000) # mengurutkan -4 samapi 4 dengan pangjang bilangan 1000
da <- dnorm(a) #pdf sebaran normal baku
plot(a,da)

Pembangakitan Bilangan Acak dapat dilakukan dengan 3 cara: + Invers Transform Method + Acceptance-Rejection method + Direct Transformation

Invers Transform Method

  1. Ide dasar
  • 0 <= F(x) <= 1, sehingga U =F(X)~Uniform (0,1)
  • Jika X = F.inv(u) maka X~f(x)
  1. Algoritme
  • Tentukan fsk F(x) dari sebaran yang diinginkan
  • Tentukan F.inv(x)
  • Bangkitkan U~Uniform(0,1)
  • Transformasi X = F.inv(u)
  1. Keunggulan: bisa digunakan untuk berbagai sebaran (termasuk sebaran diskret)

  2. Kesulitan Utama: memperoleh kebalikan dari fungsi sebaran kumulatif

Latihan 1

Latihan 1

# Eksponensial dengan lamda = 3
# Agar hasil bangkitan selalu sama tambahkan fungsi `set.seed()`

eks <- function(n,lambda){
U <- runif(n)
X <- -log(1-U)/lambda # di R ln=log()
return(X)
}
yy1 <- eks(1000,3) #inverse transform method
yy2 <- rexp(1000,rate=3) #fungsi bawaan R
par(mfrow=c(1,2))
hist(yy1,main="Exp dari Inverse Transform")
hist(yy2,main="Exp dari fungsi rexp")

Acceptance-Rejection Method

Acceptance-Rejection Method

Acceptance-Rejection Method

Latihan 2

Latihan 2

ar <- function(n,x0,x1,f) {
xx <- seq(x0,x1,length=10000)
c <- max(f(xx))
terima <- 0; iterasi <- 0
hasil <- numeric(n)
while(terima<n) {
x <- runif(1,x0,x1)
y1<- runif(1,0,c)
y2<- f(x)
if(y1<=y2) {
terima <- terima+1
hasil[terima]<-x }
iterasi <- iterasi+1 }
list(hasil=hasil,iterasi=iterasi)
}
set.seed(10)
f <- function(x) {3*x^2}
yyy <- ar(100,0,1,f)
yyy
## $hasil
##   [1] 0.8647212 0.7751099 0.8382877 0.7707715 0.5355970 0.8613824 0.2036477
##   [8] 0.7979930 0.7438394 0.3443435 0.9837322 0.6935082 0.6331153 0.8880315
##  [15] 0.7690405 0.6483695 0.8795432 0.9360689 0.7233519 0.7620444 0.9868082
##  [22] 0.8760261 0.7240640 0.8140516 0.5588949 0.8900940 0.7456896 0.8480646
##  [29] 0.8703302 0.8223331 0.8508123 0.7709219 0.8953595 0.5803863 0.5982260
##  [36] 0.9235285 0.7367755 0.6898170 0.8301572 0.9293209 0.9095163 0.5347576
##  [43] 0.3478601 0.8759762 0.7286815 0.8749293 0.6988356 0.8312562 0.5572238
##  [50] 0.6647687 0.7400502 0.9806898 0.3800746 0.7553169 0.5184889 0.8879149
##  [57] 0.9177773 0.8084086 0.8537441 0.4232184 0.7604306 0.3405763 0.3886568
##  [64] 0.4774175 0.5387605 0.9485434 0.7124685 0.9081691 0.9457656 0.7716899
##  [71] 0.6946655 0.5368832 0.8481593 0.8242752 0.5123742 0.3152032 0.9924487
##  [78] 0.9327120 0.9892809 0.6283590 0.5254605 0.8810815 0.5291748 0.5765517
##  [85] 0.7231807 0.8761180 0.3995670 0.8986123 0.9335217 0.7859216 0.7784128
##  [92] 0.6955333 0.9060413 0.9916424 0.4729846 0.9770567 0.9386110 0.9959093
##  [99] 0.8543663 0.8309547
## 
## $iterasi
## [1] 322
par(mfrow=c(1,1))
hist(yyy$hasil,
main="f(x)=3*x^2", prob=T)
x <- seq(0, 1, 0.01)
lines(x, f(x), lwd=2, col=4)

Direct Transformation

Direct Transformation

Direct Transformation

Latihan 3

  • Pembuatan Model Analisis Regresi dengan membangkitkan Bilangan Acak
set.seed(123) # pengacakan dengan angka 123
X1 <- runif(25,10,25)
X2 <- runif(25,90,200)
Y <- 10 + 2.3*X1 + 0.7*X2 + rnorm(25,0,9) # nilai parameter ditentukan sendiri dan epsilon ditentukan sendiri
model1 <- lm(Y~X1) # membuat model linear antara y dengan X1
summary(model1)
## 
## Call:
## lm(formula = Y ~ X1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -29.991 -17.738  -2.632  17.896  33.171 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  131.846     19.741   6.679 8.18e-07 ***
## X1             1.049      1.015   1.033    0.312    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 22.42 on 23 degrees of freedom
## Multiple R-squared:  0.04433,    Adjusted R-squared:  0.002775 
## F-statistic: 1.067 on 1 and 23 DF,  p-value: 0.3124
model2 <- lm(Y~X2)# membuat model linear antara y dengan X2
summary(model2)
## 
## Call:
## lm(formula = Y ~ X2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -31.804  -4.850  -1.606  10.011  20.569 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 70.83913   13.86879   5.108 3.57e-05 ***
## X2           0.58213    0.09767   5.960 4.46e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 14.38 on 23 degrees of freedom
## Multiple R-squared:  0.607,  Adjusted R-squared:  0.5899 
## F-statistic: 35.52 on 1 and 23 DF,  p-value: 4.464e-06
model3 <- lm(Y~X1+X2)# membuat model linear antara y dengan X1 dan X2
summary(model3)
## 
## Call:
## lm(formula = Y ~ X1 + X2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -14.8291  -4.5994  -0.4576   5.0602  20.5307 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.62881   13.40229  -0.047    0.963    
## X1           2.72951    0.40701   6.706 9.67e-07 ***
## X2           0.72459    0.06105  11.869 4.91e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.427 on 22 degrees of freedom
## Multiple R-squared:  0.8709, Adjusted R-squared:  0.8592 
## F-statistic: 74.21 on 2 and 22 DF,  p-value: 1.66e-10
model4 <- lm(Y~X1:X2)# membuat model linear antara y dengan interaksi antara X1 dan X2
summary(model4)
## 
## Call:
## lm(formula = Y ~ X1:X2)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -20.929  -7.009  -1.430   2.856  37.374 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 80.645221  10.481428   7.694 8.32e-08 ***
## X1:X2        0.027491   0.003929   6.997 3.94e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 12.97 on 23 degrees of freedom
## Multiple R-squared:  0.6804, Adjusted R-squared:  0.6665 
## F-statistic: 48.96 on 1 and 23 DF,  p-value: 3.942e-07
model5 <- lm(Y~X1*X2)# membuat model linear antara y dengan X1, X2, dan interaksi X1 dan X2 secara bersama
summary(model5)
## 
## Call:
## lm(formula = Y ~ X1 * X2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -14.4425  -4.5808  -0.6702   4.6431  20.2409 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)  
## (Intercept) 11.625896  37.941991   0.306   0.7623  
## X1           2.063573   1.967526   1.049   0.3062  
## X2           0.635870   0.263687   2.411   0.0251 *
## X1:X2        0.004905   0.014165   0.346   0.7326  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 8.6 on 21 degrees of freedom
## Multiple R-squared:  0.8716, Adjusted R-squared:  0.8533 
## F-statistic: 47.53 on 3 and 21 DF,  p-value: 1.548e-09
# membuat matrix perbandingan R2 dan R2 adjusted untuk semua model yang telah dibentuk
R2 <- matrix(c(summary(model1)$r.squared,
summary(model1)$adj.r.squared,
summary(model2)$r.squared,
summary(model2)$adj.r.squared,
summary(model3)$r.squared,
summary(model3)$adj.r.squared,
summary(model4)$r.squared,
summary(model4)$adj.r.squared,
summary(model5)$r.squared,
summary(model5)$adj.r.squared), 5, byrow=T)
colnames(R2)<-c("R2","R2.adj"); R2*100
##             R2     R2.adj
## [1,]  4.432592  0.2774876
## [2,] 60.699195 58.9904640
## [3,] 87.090357 85.9167529
## [4,] 68.036265 66.6465370
## [5,] 87.163648 85.3298839
# setalah dibandingkan model terbaik adalah model 13 karena memiliki R2 adjusted lebih besar dari yang lain dengan R2 yang cukup besar
coef(model3) # menampilkan nilai parameter atau koofesien dari variabel
## (Intercept)          X1          X2 
##  -0.6288095   2.7295126   0.7245911
confint(model3) # confidence interval
##                   2.5 %     97.5 %
## (Intercept) -28.4234482 27.1658292
## X1            1.8854322  3.5735929
## X2            0.5979779  0.8512044
cbind(coef(model3), confint(model3)) # menggabungkan nilai parameter dengan confidence interval
##                              2.5 %     97.5 %
## (Intercept) -0.6288095 -28.4234482 27.1658292
## X1           2.7295126   1.8854322  3.5735929
## X2           0.7245911   0.5979779  0.8512044
anova(model3) # bila mau mengeluarkan nilai anova
## Analysis of Variance Table
## 
## Response: Y
##           Df  Sum Sq Mean Sq  F value    Pr(>F)    
## X1         1   536.4   536.4   7.5538   0.01173 *  
## X2         1 10002.4 10002.4 140.8614 4.911e-11 ***
## Residuals 22  1562.2    71.0                       
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
par(mfrow=c(2,2)); plot(model3) #Plot pengecekkan asumsi