Pengenalan R

Uiwang Nur Thoriq

2025-08-30

Import data

Contoh data berat sapi Holstein (Torrie,1980)

# library(readxl) -> Jika ingin import data dari excel
# Jika belum punya instal dengan fungsi (hilangkan pagar):
# install.packages("readxl")
# Gunakan library
library(googlesheets4) # Jika ingin import data dari spreadsheet

DataSapi<-read_sheet("https://docs.google.com/spreadsheets/d/1dIuj3MwHgd0BBB9JShhAdKR7uFUPBwz4XwWSOUhVCAw/edit?hl=id&gid=0#gid=0",sheet="Pengenalan") # Tempat file disesuaikan
DataSapi
## # A tibble: 14 × 2
##    `Berat Sapi Kontrol` `Berat Sapi Vitamin A`
##                   <dbl>                  <dbl>
##  1                  175                    142
##  2                  132                    311
##  3                  218                    337
##  4                  151                    262
##  5                  200                    302
##  6                  219                    195
##  7                  234                    253
##  8                  149                    199
##  9                  187                    236
## 10                  123                    216
## 11                  248                    211
## 12                  206                    176
## 13                  179                    249
## 14                  206                    214
summary(DataSapi$`Berat Sapi Kontrol`)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   123.0   157.0   193.5   187.6   215.0   248.0
summary(DataSapi$`Berat Sapi Vitamin A`)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   142.0   202.0   226.0   235.9   259.8   337.0

Membuat Histogram

par(mfrow=c(1,2)) # Membagi halaman
hist(DataSapi$`Berat Sapi Kontrol`, main="Histogram Berat Sapi Kontrol", xlab="Berat", ylab="Frekuensi", col="lightblue", border="black")
hist(DataSapi$`Berat Sapi Vitamin A`, main="Histogram Berat Sapi Vitamin A", xlab="Berat", ylab="Frekuensi", col="lightgreen", border="black")

Membuat Boxplot

boxplot(DataSapi, 
        main="Boxplot Berat Sapi", 
        xlab="Kelompok", 
        ylab="Berat Sapi", 
        col=c("lightblue", "lightgreen"),
        border="black")

Uji t

Sebanyak 28 ekor sapi Holstein dikelompokkan menjadi dua, kelompok pertama sebanyak 14 ekor sapi diberi vitamin A, sedangkan kelompok kedua tidak diberi vitamin A sebagai kontrol. Digunakan uji t untuk mengetahui perbedaan berat kedua kelompok sapi.

Hipotesis:
\(H_0\) : Tidak ada perbedaan antara berat sapi kontrol dengan berat sapi vitamin A
\(H_1\) : Terdapat perbedaan antara berat sapi kontrol dengan berat sapi vitamin A

t.test(x = DataSapi$`Berat Sapi Kontrol`,
       y = DataSapi$`Berat Sapi Vitamin A`,
       mu = 0,
       conf.level = 0.95)
## 
##  Welch Two Sample t-test
## 
## data:  DataSapi$`Berat Sapi Kontrol` and DataSapi$`Berat Sapi Vitamin A`
## t = -2.7242, df = 23.306, p-value = 0.01201
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -84.92613 -11.64530
## sample estimates:
## mean of x mean of y 
##  187.6429  235.9286
db<-length( DataSapi$`Berat Sapi Kontrol`)+length( DataSapi$`Berat Sapi Vitamin A`)-2
qt(0.975,db)
## [1] 2.055529
qt(0.025,db,lower.tail = FALSE)
## [1] 2.055529

Berdasarkan perhitungan uji t diperoleh p-value sebesar 0,012 yang lebih kecil dari taraf nyata 5% dan nilai t-kritis sebesar 2,05 yang lebih kecil dari |t-hitung| = 2.72, sehingga tolak \(H_0\) Maka dapat disimpulkan bahwa pada taraf nyata 5%, terdapat perbedaan berat antara kelompok sapi yang diberi vitamin A dengan yang tidak diberi vitamin A.

Model Umum

Model umum dengan notasi matrix

\[ E(\underline{y})=X\underline{\beta}+\underline{ε}, \underline{ε} \sim N(0,\sigma^2I),\underline{y} \sim N(X\underline{\beta},\sigma^2I) \]

Dimana:
\(\underline{y}\) = vektor pengamatan respon.
\(X\) = matrix model yang berukuran nxp dimana n adalah banyaknya pengamatan dan p adalah banyaknya parameter dalam model.
\(\underline{\beta}\) = vektor koefisien model.
\(\underline{ε}\) = vektor dari error (komponen acak).
\(\sigma^2\) = galat percobaan.

Pengacakan

Misalkan diketahui banyaknya perlakuan yang dicobakan adalah 6 dengan masing-masing 4 ulangan. Maka dibutuhkan 6x4 = 24 unit percobaan.

Rand<-data.frame(
  Perlakuan = rep(1:6,4),
  AngkaRandom = runif(24)
)
Rand
##    Perlakuan AngkaRandom
## 1          1  0.70368302
## 2          2  0.98870679
## 3          3  0.13463869
## 4          4  0.09128905
## 5          5  0.36135406
## 6          6  0.33132371
## 7          1  0.46965844
## 8          2  0.18166409
## 9          3  0.09036528
## 10         4  0.99434084
## 11         5  0.26268767
## 12         6  0.04965269
## 13         1  0.33590503
## 14         2  0.58422070
## 15         3  0.88106018
## 16         4  0.44631886
## 17         5  0.92555271
## 18         6  0.81955943
## 19         1  0.23546515
## 20         2  0.78908673
## 21         3  0.87222430
## 22         4  0.99741636
## 23         5  0.77462726
## 24         6  0.73709237
sorted<-Rand[order(Rand$AngkaRandom),]
sorted
##    Perlakuan AngkaRandom
## 12         6  0.04965269
## 9          3  0.09036528
## 4          4  0.09128905
## 3          3  0.13463869
## 8          2  0.18166409
## 19         1  0.23546515
## 11         5  0.26268767
## 6          6  0.33132371
## 13         1  0.33590503
## 5          5  0.36135406
## 16         4  0.44631886
## 7          1  0.46965844
## 14         2  0.58422070
## 1          1  0.70368302
## 24         6  0.73709237
## 23         5  0.77462726
## 20         2  0.78908673
## 18         6  0.81955943
## 21         3  0.87222430
## 15         3  0.88106018
## 17         5  0.92555271
## 2          2  0.98870679
## 10         4  0.99434084
## 22         4  0.99741636

Menentukan Ulangan

Formula 1

\[ r\geq 2(Z_{\alpha/2}+Z_{\beta})^2(\frac{\sigma}{\delta})^2 \]

Misalkan pada penelitian sebelumnya diketahui bahwa \(\sigma\)=3. Berapakah ulangan yang diperlukan pada \(\alpha= 5%\) dan \(\beta=10%\) dan maksimal perbedaan rataan yang diinginkan adalah 5 (\(\delta=5\))

# lower.tail=T akan membuat nilai Z negatif, karena akan menghitung kuantil dari kiri
Za<-qnorm(0.05/2,lower.tail = FALSE)
Zb<-qnorm(0.1,lower.tail = FALSE)
r<-2*((Za+Zb)^2)*(3/5)^2

# ceiling untuk membulatkan ke atas
ceiling(r)
## [1] 8
# Bisa juga dibuat dalam bentuk fungsi
Ulangan<-function(alpha,beta,sigma,delta)
{
  Za=qnorm(alpha/2,lower.tail=F)
  Zb=qnorm(beta,lower.tail=F)
  r=2*((Za+Zb)^2)*(sigma/delta)^2
  return(ceiling(r))
}
Ulangan(0.05,0.10,3,5)
## [1] 8

Formula 2

\[ t(r-1)\geq15 \]

Misalkan perlakuan yang ingin dicobakan sebanyak 6 perlakuan. Berapakah ulangan minimal untuk masing-masing percobaan?

t<-6
r<-(15/t)+1
ceiling(r)
## [1] 4