STA511 - Analisis Statistika

Praktikum 01

Materi

Tugas

Diketahui sebuah data mahasiswa STK57 sebanyak 79 orang, terdiri dari mahasiswa berasal dari jabodetabek(J) dan Non-Jabodetabek(N). Data berupa excel yang dapat diinput kedalam R dengan menggunakan packages readxl

library(readxl) #mengaktifkan package readxl

#mengimput data berupa excel ke R, pastikan excel data dan file dalam 1 directory
data.test <- read_excel('datastk57.xlsx')

#melihat isi data 6 teratas
head(data.test)
# A tibble: 6 x 2
    Mhs Asal 
  <dbl> <chr>
1    42 N    
2    46 N    
3    12 N    
4    39 J    
5    35 J    
6    65 J    
#proporsi mahasiswa J dan N
proporsi <- (table(data.test$Asal))/(nrow(data.test))

#J : proporsi mahasiswa asal Jabodetabek
#N : proporsi mahassiwa asal Non-Jabodetabek
proporsi

        J         N 
0.4683544 0.5316456 

Data di atas merupakan parameter berupa proporsi. Namun, terkadang di dunia nyata sangat sulit untuk mendapatkan parameter karena tidak diketahui jumlah pasti populasi atau terbatasnya untuk mengakses populasi, sehingga diperlukan sampel. Diharapkan, dengan sampel yang diuji akan menghasilkan nilai penduga yang mendekati nilai parameternya.

Dalam kasus mahasiswa STK57 ini, akan diambil sampel 10 orang dan 30 orang untuk melihat pengambilan sampel mana yang lebih baik.

set.seed(123) #fungsi agar hasl random tidak berubah

#mengambil acak 10 orang
sample.10 <- data.test[sample(data.test$Mhs,size=10),]
sample.10
# A tibble: 10 x 2
     Mhs Asal 
   <dbl> <chr>
 1    10 J    
 2    57 N    
 3    19 N    
 4    48 N    
 5    52 N    
 6    74 J    
 7    69 N    
 8    33 N    
 9    41 J    
10    20 J    
#proporsi jika diambiul sampel 10 orang
(prop.sample10 <- (table(sample.10$Asal))/(nrow(sample.10)))

  J   N 
0.4 0.6 
set.seed(123) #fungsi agar hasl random tidak berubah

#mengambil acak 30 orang
sample.30 <- data.test[sample(data.test$Mhs,size=30),]
sample.30
# A tibble: 30 x 2
     Mhs Asal 
   <dbl> <chr>
 1    10 J    
 2    57 N    
 3    19 N    
 4    48 N    
 5    52 N    
 6    74 J    
 7    69 N    
 8    33 N    
 9    41 J    
10    20 J    
# ... with 20 more rows
#proporsi jika diambiul sampel 30 orang
(prop.sample30 <- (table(sample.30$Asal))/(nrow(sample.30)))

        J         N 
0.4333333 0.5666667 

Jika melihat dari pemilihan acak 10 orang dan 30 orang di atas, proporsi pengambilan acak 30 orang lebih mendekati nilai paramaternya. Hal demikian sejalan dengan teori yang ada, dimana jika pengambilan n acak semakin besar mendekati jumlah populasinya, maka penduganya akan semakin baik. Namun demikian, diperlukan banyak ulangan pemilihan acak untuk mendapatkan nilai penduga yang semakin konsisten

#pemilihan acak 10 sampel dengan 100 kali ulangan

loop1 <- c() #menyimpan hasil dalam vektor kosong


#ulangan 100 kali
for (i in 1:100){
  sample10 <- data.test[sample(data.test$Mhs,size = 10),]
  
  #menghitung persentase
  j <- table(sample10$Asal)/nrow(sample10)
  
  loop1 <- c(loop1,j[1])
}

#mean sampel 10 @100 ulangan
mean(loop1)
[1] 0.469
#varian sampel 10 @100 ulangan
var(loop1)
[1] 0.02216061
#pemilihan acak 30 sampel dengan 100 kali ulangan
loop2 <- c() #menyimpan hasil dalam vektor kosong


#ulangan 100 kali
for (i in 1:100){
  sample30 <- data.test[sample(data.test$Mhs,size = 30),]
  
  #menghitung persentase
  j <- table(sample30$Asal)/nrow(sample30)
  
  loop2 <- c(loop2,j[1])
}

#mean sampel 10 @100 ulangan
mean(loop2)
[1] 0.4743333
#varian sampel 10 @100 ulangan
var(loop2)
[1] 0.006640965
#perbadingngan mean
(data.frame(mean(loop1),mean(loop2)))
  mean.loop1. mean.loop2.
1       0.469   0.4743333
#perbandingan varian
(data.frame(var(loop1),var(loop2)))
  var.loop1.  var.loop2.
1 0.02216061 0.006640965

Dengan melihat varian dari masing-masing pengambilan acak, diperoleh bahwa pengambilan acak 30 orang merupakan yang terbaik karena nilai variansinya lebih kecil. Dengan demikian, dapat disimpulkan bahwa jumlah sample memiliki peran penting dalam mengestimasi nilai penduga parameter.

Praktikum 03

Materi

Diskusi 1 (Kemiripan Sebaran Binom dan Normal)

par(mfrow=c(1,3))

m <- 200 #ulangan
p <- 0.5
n1 <- 5

(res <- rbinom(m,n1,p)) #membangkitkan data sebaran normal
 [1] 3 2 3 4 3 2 2 3 1 3 3 4 2 2 4 2 4 3 2 3 1 4 4 3 4 3 3 3 2 2 2 4 3 1 4 3 3 1
[39] 2 3 4 1 2 2 3 1 4 2 2 2 4 3 2 2 3 2 2 4 2 4 3 4 3 1 3 4 0 1 3 2 5 3 3 2 5 2
[77] 4 3 3 3 4 3 0 1 4 2 3 3 4 3
 [ reached getOption("max.print") -- omitted 110 entries ]
hist(res,probability = TRUE,main = "n1=5")
curve(dnorm(x,n1*p,sqrt(n1*p*(1-p))),add = T)

n2 <- 15

(res <- rbinom(m,n2,p)) #membangkitkan data sebaran normal
 [1]  7  7 10  4  4  7  7 10  8  5  5  5  9  7 11  9  6 10  8 12  5  9 11  9  9
[26] 11  7  7  6  7  7  8  7  5  8  4  6 11  8  6  2  7 10  6  7  8  7  9  9  7
[51]  6  8  6  9  6  7  5  6  9  7  7  6  6  8  9  6  6 10  5  3  6  8  8  7  6
[76] 11  9  7  5  8  8  8  9  8  5  9  4 11 11  9
 [ reached getOption("max.print") -- omitted 110 entries ]
hist(res,probability = TRUE,main = "n2=15")
curve(dnorm(x,n2*p,sqrt(n2*p*(1-p))),add = T)


n3 <- 25

(res <- rbinom(m,n3,p)) #membangkitkan data sebaran normal
 [1]  9  9 15 12 15 12 12 11 12 11 15 12 14 15 15 12 13  9 10 10 10  8 11  8  8
[26] 11 10 10 13 10 14 17 14 17 16 19 11 14 14 12 14 10  8 10 14 11 12 16 12 14
[51] 13 15 13 12 12  9 13 13 10 12 11 12 14 18 13 15 17 12 16  8 14 12 11 15 13
[76] 13 12 13 16 15 19 12 15 12  9 12 12 14 11 12
 [ reached getOption("max.print") -- omitted 110 entries ]
hist(res,probability = TRUE,main = "n3=25")
curve(dnorm(x,n3*p,sqrt(n3*p*(1-p))),add = T)

Dari grafik di atas, dapat dilihat bahwa semakin besar n dalam sebaran binomial, maka sebarannya akan mendekati sebaran normal

m <- 200 #ulangan
p <- 0.2
n1 <- 25
n2 <- 3
n3 <- 5

par(mfrow=c(1,3))

res1 <- rbinom(m,n1,p)
qqnorm(res1, main="n=25")
qqline(rnorm(200,mean = n1*p, sd = sqrt(n1*p*(1-p))))

res2 <- rbinom(m,n2,p)
qqnorm(res2, main="n=3")
qqline(rnorm(200,mean = n2*p, sd = sqrt(n2*p*(1-p))))

res3 <- rbinom(m,n3,p)
qqnorm(res3, main="n=5")
qqline(rnorm(200,mean = n3*p, sd = sqrt(n3*p*(1-p))))

qqline menjelaskan, jika data semakin mengikuti garis linier, maka data cenderung mengikuti sebaran normal

Diskusi 2 (Menghitung Z Tabel)

What is the approximate z critical value for each pf the following confidence level?

#Mencari nilai Z
cl1 = 0.95
cl2 = 0.90
cl3 = 0.80
cl4 = 0.85

#Nilai kritis untuk cl1 = 0.95
#alpha1 = 1-cl1
qnorm(p=0.975,mean = 0,sd=1) #p=1-(alpha1/2)
[1] 1.959964
#Nilai kritis untuk cl2 = 0.90
#alpha2 = 1-cl2
qnorm(p=0.95,mean = 0,sd=1) #p=1-(alpha2/2)
[1] 1.644854
#Nilai kritis untuk cl3 = 0.80
#alpha3 = 1-cl3 = 1-0.8 = 0.2
qnorm(p=0.90,mean = 0,sd=1) #p=1-(alpha2/2)=1-(0.2/2)
[1] 1.281552
#Nilai kritis untuk cl3 = 0.85
#alpha3 = 1-cl3 = 1-0.85 = 0.15
qnorm(p=0.925,mean = 0,sd=1) #p=1-(alpha2/2)=1-(0.15/2)
[1] 1.439531

Diskusi 3 (Menghitung BOE)

USA Today melaporkan 36% pengemudi menyatakan mereka pernah menggunakan HP saat mengendara. Proporsi ini didapatkan dari 1004 pengemudi, serta diklaim bahwa boe-nya 3.1%. Apakah kita setuju dengan nilai boe tersebut?

ztab <- qnorm(0.975,mean = 0,sd=1)
p <- 0.36
q <- 1-p
n <- 1004

#nilai boe/moe
(boe <- ztab*sqrt(p*q/n))
[1] 0.02969084

Jadi, tidak cukup percaya bahwa boe-nya sebesar 36%. Dari perhitungan, boenya adalah 2.97%.

Diskusi 4 (Pengujian Hipotesis)

Sebanyak 40% bersedia mengisi formulir dan mengembalikan kuesioner. Seseorang tidak percaya bahwa kuesioner yang mengembalikan 40%. Dari hasil 200 kuesioner yang disebarkan, diperolah 109 kuesioner yang dikembalikan

Jawab H0 : p <= 40% H1 > p > 40%

Bersambung...................

Tugas

No.9

The correlations between xbar and std depends on the paretnt distributions. For a normal distribution the two are actually independent. For other distributions, this isn’t so. To investigate, we can simulate both statistics from a simple of size 10 and observe the their correlation with a scatterplot and the cor() function

Normal distribution

xbar = c()
std = c()
for (i in 1:500){
  sample = rnorm(n=10)
  xbar[i]= mean(sample)
  std[i]= sd(sample)
}
plot(xbar,std)

cor(xbar,std)
[1] -0.037979

t-student distribution

xbar = c()
std = c()
for (i in 1:500){
  sample = rt(n=10,df=10)
  xbar[i]= mean(sample)
  std[i]= sd(sample)
}
plot(xbar,std)

cor(xbar,std)
[1] 0.05484227

exponential distribution

xbar = c()
std = c()
for (i in 1:500){
  sample = rexp(n=10,rate=10)
  xbar[i]= mean(sample)
  std[i]= sd(sample)
}
plot(xbar,std)

cor(xbar,std)
[1] 0.7780231

Jawaban

Berdasarkan simulasi di atas, xbar dan std pada sebaran t-student tidak saling berkorelasi (terlihat dari nilai korelasi 0.04~mendekati 0 atau pada plot grafik yang tersebar bebas, tidak berpola linear).

Sedangkan xbar dan std pada sebaran eksponensial saling berkorelasi (terlihat pada nilai korelasi =0.7~mendekati 1 atau dapat dilihat dari plot grafik yang membnetuk pola linear)

No. 10

The prasing, “The true value,p, is in the confidence interval with 95% probability” requires soma care. Either p is or isn’t in a given interval. What it means is that if we repeated the sampling, there is a 95% chance the true value is in he random interval. We can investigate this with a simulation. The commands below will find several confidence interval at once.

m <- 50 #ulangan
n <- 20 #sample
p<- 0.5 
alpha <- 0.1 #tingkat kepercayaan
zstar <- qnorm(1-alpha/2)
phat <- rbinom(m,n,p)/n
SE <- sqrt(phat*(1-phat)/n)

we cand find the proportion that contains p using

sum(phat-zstar*SE < p & p < phat + zstar*SE)/m
[1] 0.86

and draw nice graph with

matplot(rbind(phat-zstar*SE,phat+zstar*SE),rbind(1:m,1:m),type = "l",lty = 1)

#### Jawaban: Nilai p=0.5 dalam 50 ulangan berada pada selang kepercayaan 94%

Praktikum 04

Materi

Tugas

Suatu perusahaan perkebunan buah naga di kota A melakukan uji coba pemberian pupuk organik yang diharapkan dapat meningkatkan produksi buah naga. Uji coba dilakukan pada 8 petak lahan yang kondisi lahannya relatif sama. Hasil panen buah naga pada masing-masing petak lahan adalah sebagai berikut:

v.exp <- c(2,2,3,3,3,4,4,5) #Pupuk organik
v.res <- c(100,120,140,150,165,190,200,220) #Produksi buah naga
data <- data.frame(v.res,v.exp)
data
  v.res v.exp
1   100     2
2   120     2
3   140     3
4   150     3
5   165     3
6   190     4
7   200     4
8   220     5

a. Membuat grafik

plot(v.res,v.exp,
     type="p",
     xlab = "Pupuk organik", 
     ylab = "Produksi buah naga",
     pch=16)

b. Korelasi

corrplot::corrplot(cor(data),data=data, method = "number")

Nilai korelasi = 0.9697241. Artinya, variabel Pupuk organik dan Produksi buah naga memiliki keeratan linier.

c. Peubah penjelas dan peubah respon

  • Peubah penjelas (v.exp) : Pupuk organik
  • Peubah respon (v.res) : Produksi buah naga

d. Persamaan regresi

(model <- lm(v.res~v.exp))

Call:
lm(formula = v.res ~ v.exp)

Coefficients:
(Intercept)        v.exp  
       35.5         38.5  

Persamaan regresi berdasarkan hasil di atas yaitu:
Y(duga) = 35.5 + 38.5X

Interpretasi : Nilai Beta1(duga) dari persamaan di atas yaitu jika Pupuk organik meningkat sebesar satu satuan, maka produksi buah naga akan meningkat 38.5 kali.

Uji Hipotesis

Uji hipotesis pada taraf nyata 5% dilakukan untuk melihat apakah pupuk organik memberikan pengaruh terhadap produksi buah naga

summary(model)

Call:
lm(formula = v.res ~ v.exp)

Residuals:
   Min     1Q Median     3Q    Max 
-12.50  -8.75  -0.25   8.25  14.00 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)   35.500     13.423   2.645   0.0383 *  
v.exp         38.500      3.958   9.727 6.78e-05 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 10.84 on 6 degrees of freedom
Multiple R-squared:  0.9404,    Adjusted R-squared:  0.9304 
F-statistic: 94.61 on 1 and 6 DF,  p-value: 6.781e-05

Berdasarkan hasil di atas didapatkan p-value sebesar 0.00 < alpha=0.05 yang berarti TOLAK H0. Sehingga, cukup bukti bahwa pupuk organik berpengaruh terhadap produksi pupuk buah naga

Dugaan produksi buah naga

Dugaan produksi buah naga jika diberikan pupuk 1Kg dan 3.5 kg

new.vexp <- data.frame(v.exp=c(1,3.5))
y.duga <- 35.5 + 38.5*new.vexp
y.duga
   v.exp
1  74.00
2 170.25
#Selang Kepercayaan bagi dugaan

predict(model,newdata = new.vexp,interval = "predict")
     fit       lwr      upr
1  74.00  38.41446 109.5855
2 170.25 142.01316 198.4868

Pemberian pupuk organik sebanyak 1Kg akan menghasilkan produksi buah naga sebesar 74.00. Pada tingkat kepercayaan 95%, buah naga yang akan dihasilkan berada pada interval 38.41446 109.5855

Pemberian pupuk organik sebanyak 3.5Kg akan menghasilkan produksi buah naga sebesar 170.25. Pada tingkat kepercayaan 95%, buah naga yang akan dihasilkan berada pada interval 142.01316 198.4868

Cek Asumsi Analisis Regresi Linier

Asumsi 1 : Nilai harapan sisaan sama dengan nol
sisaan <- resid(model)
mean(sisaan)
[1] 7.21645e-16

Berdasarkan penghitungan nilai sisaan, diperoleh nilai sangat kecil mendekati nol

Asumsi 2 : Ragam sisaan homogen
plot(model,3)

Berdasarkan grafik di atas, dapat dilihat bahwa sisaan tersebar merata di atas dan di bawah garis,sehingga dapat diasumsikan ragam sisaannya homogen.

Asumsi 3 : Antar sisaan saling bebas

Untuk menguji sisaan yang saling bebas, digunakan uji Durbin Watson.

H0 : Sisaan saling bebas (autokorelasi sama dengan nol) H1 : Sisaan tidak saling bebas (autokorelasi tidak sama dengan nol)

library(car)
durbinWatsonTest(model)
 lag Autocorrelation D-W Statistic p-value
   1      -0.3560284      2.399645   0.864
 Alternative hypothesis: rho != 0

Dari uji Durbin Watson, diperoleh p-value =0.876 > alpha=5%, sehingga ( Terima H0 ), berarti tidak cukup bukti untuk menyatakan pada sisaan tidak saling bebas

Asumsi 4 : Sisaan menyebar normal
plot(model,2,pch=16)

Berdasarkan pada grafik di atas, dapat dilihat bahwa semua titik berada di sekitar garis, sehinga dapat disimpulkan bahwa sisaan menyebar normal

Kesimpulan dari pengecekan asumsi regresi linier

Dari pengecekan terhadap 4 asumsi regresi linier, dapat disimpulkan bahwa analisis yang dilakukan sudah memenuhi asumsi regresi linier.

Apabila asumsi regresi linier tidak terpenuhi ada beberapa penanganan yang dapat dilakukan : • Transformasi data • Menggunakan metode kuadrat terkecil terboboti (weighted least square) • Menggunakan metode kuadrat terkecil terampat • Menggunakan model deret waktu • Prosedur Hildreth-Lu untuk mengatasi autokorelasi

Praktikum 05

Materi

Tugas

Permasalahan

Diketahui 20 sampel data pengukuran lemak tubuh (body fat), ketebalan lipatan kulit tricep (TST), lingkar paha (TC), dan lingkar lengan tengah (MC). Peda pengujian ini, lemak tubuh merupakan variabel respon, sedangkan TST, TC, dan MC merupakan vaiabel penjelas.

   Subject  TST   TC   MC Body_Fat
1        1 19.5 43.1 29.1     11.9
2        2 24.7 49.8 28.2     22.8
3        3 30.7 51.9 37.0     18.7
4        4 29.8 54.3 31.1     20.1
5        5 19.1 42.2 30.9     12.9
6        6 25.6 53.9 23.7     21.7
7        7 31.4 58.5 27.6     27.1
8        8 27.9 52.1 30.6     25.4
9        9 22.1 49.9 23.2     21.3
10      10 25.5 53.5 24.8     19.3
11      11 31.1 56.6 30.0     25.4
12      12 30.4 56.7 28.3     27.2
13      13 18.7 46.5 23.0     11.7
14      14 19.7 44.2 28.6     17.8
15      15 14.6 42.7 21.3     12.8
16      16 29.5 54.4 30.1     23.9
17      17 27.7 55.3 25.7     22.6
18      18 30.2 58.6 24.6     25.4
 [ reached 'max' / getOption("max.print") -- omitted 2 rows ]

Belum diketahui secara pasti, apakah variabel penjelas (TST,TC,MC) berpengaruh atau tidak terhadap lemak tubuh. Sehingga diperlukan analisis Statistika untuk mengetahui eksistensi TST, TC, dan MC terhadap lemak tubuh (body fat)

Metode Penyelesaian

Kajian ini akan melihat apakah variabel penjelas (TST,TC,dan MC) memiliki pengaruh atau tidak terhadap body fat. Kajian ini bertujuan untuk mendapatkan model regresi linier terbaik. Kajian yang dilakukan di antaranya dengan menyajikan model regresi linier, menentukan variabel penjelas yang berpengaruh, mengecek asumsi regresi linier, serta melihat adakah atau tidak data pencilan yang menyebabkan model terpengaruh.

Pendekatan Penyelesaian

Model Regresi Linier

Pembuatan model regresi linier di dalam kajian ini, body fat merupakan variabel respon, sedangkan TST,TC,dan MC merupakan varianle penejelas


Call:
lm(formula = Body_Fat ~ ., data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.7454 -1.6169  0.3749  1.4760  4.1162 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)
(Intercept) 117.12230  103.07247   1.136    0.274
Subject       0.00213    0.11181   0.019    0.985
TST           4.33651    3.11695   1.391    0.184
TC           -2.85934    2.66988  -1.071    0.301
MC           -2.18582    1.64785  -1.326    0.205

Residual standard error: 2.561 on 15 degrees of freedom
Multiple R-squared:  0.8014,    Adjusted R-squared:  0.7484 
F-statistic: 15.13 on 4 and 15 DF,  p-value: 3.812e-05

Berdasarkan hasil di atas, diperoleh persamaan regresi Y(duga) = 0.00213 + 4.33651TST - 2.85934TC - 2.18582MC

Mengecek Variabel Penjelas Berpengaruh

Uji Hipotesis diperlukan untuk melihat apakah varibel penjelas(TST,TC,MC) berpengaruh terhadap variabel responnya(Body_Fat)


Call:
lm(formula = Body_Fat ~ ., data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.7454 -1.6169  0.3749  1.4760  4.1162 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)
(Intercept) 117.12230  103.07247   1.136    0.274
Subject       0.00213    0.11181   0.019    0.985
TST           4.33651    3.11695   1.391    0.184
TC           -2.85934    2.66988  -1.071    0.301
MC           -2.18582    1.64785  -1.326    0.205

Residual standard error: 2.561 on 15 degrees of freedom
Multiple R-squared:  0.8014,    Adjusted R-squared:  0.7484 
F-statistic: 15.13 on 4 and 15 DF,  p-value: 3.812e-05

Berdasarkan hasil di atas, pada taraf alpha = 0.05 (5%), dapat disimpulkan bahwa belum cukup bukti untuk menyatakan bahwa varibel penjelas TST, TC. dan MC berpengaruh terhadap lemak tubuh.

Dengan Adjusted R-squared 74.8% yang cukup tinggi, tidak diperoleh variabel yang nyata. Hal ini mengindikasikan adanya multikolinearitas di antara variabel penjelas.

Mengecek Kemungkinan Multikolinearitas

Multikolinieritas merupakan kondisi saat peubah penjelas saling memiliki pola hubungan linier. Ciri-ciri adanya multikolinieritas, yaitu:`

  1. Nilai VIF besar
  2. Korelasi peubah penjelas tinggi
  3. R2 tinggi, tetapi koefisien tidak berpengaruh nyata

Nilai VIF

   Subject        TST         TC         MC 
  1.267172 710.020547 565.705547 104.611988 

Berdasarkan hasil di atas, diperoleh bahwa nilai VIF yang besar, diduga sebagai faktor yang menyebabkan multikolinearitas.

Korelasi

Dari tabel korelasi di atas, dapat dilihat bahwa nilai korelasi dari TC dan TST cukup besar, sehingga berpotensi menjadi penyebab multikolinearitas jika dimasukkan ke dalam model. Sedangkan variabel MC cukup aman jika akan dimasukkan ke dalam model.

Mengecek Kehomogenan Ragam

Salah satu asumsi yang harus dipenuhi dalam analisis regresi yaitu ragam sisaan homogen.

Keheteregonan ragam dapat menyebabkan penduga ragam koefisien berbias, sehingga ragam koefisien tidak minimum.

Deteksi kehomogenan ragam:

Berikut merupakan plot sisaan vs nilai prediksi persamaan regresi

Dengan melihat plot di atas, terlihat ragam homogen karena tesebar merata di bawah dan di atas garis 0.

Mengecek Data Pencilan

par(mfrow = c(1,3))

plot(data$TST,data$Body_Fat,data=data,
     main = "Plot Body Fat dan TST",
     type="p",
     xlab = "TST",
     ylab = "Body Fat",
     pch=16)

plot(data$TC,data$Body_Fat,data=data,
     type="p",
     main = "Plot TC dan Body Fat",
     xlab = "TC",
     ylab = "Body Fat",
     pch=16)


plot(data$MC,data$Body_Fat,data=data,
     type="p",
     main = "Plot MC dan Body Fat",
     xlab = "MC",
     ylab = "Body Fat",
     pch=16)

Berdasarakan ketiga grafik di atas, tidak terlihat ada pencilan.

par(mfrow = c(1,3))

data.out1 <- data$TST[!data$TST %in% boxplot.stats(data$TST)$out]       
length(data$TST) - length(data.out1)  #banyaknya data outlier
[1] 0
boxplot(data.out1)  #menampilkan boxplot tanpa outlier

data.out2 <- data$TC[!data$TC %in% boxplot.stats(data$TC)$out]       
length(data$TC) - length(data.out2) #banyaknya data outlier
[1] 0
boxplot(data.out2)  #menampilkan boxplot tanpa outlier

data.out3 <- data$MC[!data$MC %in% boxplot.stats(data$MC)$out]       
length(data$MC) - length(data.out3) #banyaknya data outlier
[1] 0
boxplot(data.out3)  #menampilkan boxplot tanpa outlier

### Menemukan Model terbaik

Pada model regresi di atas, diketahui terdapat multikoliearitas, sehingga perlu dilakukan uji lanjutan untuk mendapatkan model terbaik. Untuk mendapatkan model terbaik, dapat dilakukan dengan mengurangi variabel penjelas.

#model regrsi tanpa variabel TST
regresi2 <- lm(Body_Fat~ . -TST,data=data)
car::vif(regresi2)
 Subject       TC       MC 
1.265070 1.047034 1.249094 
summary(regresi2)

Call:
lm(formula = Body_Fat ~ . - TST, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-4.0771 -1.8542  0.1887  1.3852  4.1251 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) -25.913574   7.563937  -3.426  0.00347 ** 
Subject      -0.004204   0.114933  -0.037  0.97127    
TC            0.851725   0.118173   7.207 2.09e-06 ***
MC            0.093047   0.185253   0.502  0.62232    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.635 on 16 degrees of freedom
Multiple R-squared:  0.7757,    Adjusted R-squared:  0.7337 
F-statistic: 18.45 on 3 and 16 DF,  p-value: 1.912e-05

Berdasarkan hasil di atas, nilai VIF untuk TC dan MC turun signifikan. Nilai VIF TC turun dari 565.705547 menjadi 1.047034. Pun dengan nilai VIF MC turun dari 104.611988 menjadi 1.249094. Pada taraf alpha = 0.05, TC berpengaruh pada lemak tubuh. Dengan hasil ini, maka membuang variabel TST mungkin belum tepat, karena masih ada variabel penjelas yang tidak nyata, sehingg diperlukan pengujian terhadap variabel lainnya.

Namun demikian, tidak menutup kemungkinan bahwa nilai VIF untuk TC dan MC dari persamaan regresi awal yang menyebabkan adanya multikolineritas, sehingga perlu dicek satu per satu dengan membuat persamaan regresi tanpa variabel TC dan MC

Berikut merupakan hasil pengujian regresi tanpa variabel TC

regresi3 <- lm(Body_Fat~ . -TC,data=data)
car::vif(regresi3)
 Subject      TST       MC 
1.264121 1.314139 1.596997 
summary(regresi3)

Call:
lm(formula = Body_Fat ~ . - TC, data = data)

Residuals:
    Min      1Q  Median      3Q     Max 
-3.8787 -1.9849  0.3807  1.2961  3.8918 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)  6.894947   5.565989   1.239   0.2333    
Subject     -0.003745   0.112183  -0.033   0.9738    
TST          1.001454   0.134710   7.434 1.42e-06 ***
MC          -0.434555   0.204534  -2.125   0.0496 *  
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.573 on 16 degrees of freedom
Multiple R-squared:  0.7862,    Adjusted R-squared:  0.7461 
F-statistic: 19.61 on 3 and 16 DF,  p-value: 1.313e-05

Berdasarkan hasil di atas, dengan tidak mengikutkan variabel TC pada regresi, nilai VIF TST dan VIF MC turun signifikan. Nilai VIF TST turun dari 710.020547 menjadi 1.314139, dan nilai VIF MC turun dari 104.611988 menjadi 1.596997. Pada taraf alpha = 0.05, TST dan MC berpengaruh terhadap Body Fat. Dengan hasil ini, maka membuang variabel TC adalah tepat.

Berikut ini merupakan hasil pengujian regresi tanpa variabel MC.

regresi4 <- lm(Body_Fat~ . -MC,data=data)
car::vif(regresi4)
 Subject      TST       TC 
1.267099 8.477826 8.636007 
summary(regresi4)

Call:
lm(formula = Body_Fat ~ . - MC, data = data)

Residuals:
   Min     1Q Median     3Q    Max 
-3.947 -1.862  0.169  1.313  4.016 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)  
(Intercept) -19.094250   9.065749  -2.106   0.0513 .
Subject       0.003252   0.114425   0.028   0.9777  
TST           0.226727   0.348585   0.650   0.5247  
TC            0.655028   0.337616   1.940   0.0702 .
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 2.621 on 16 degrees of freedom
Multiple R-squared:  0.7781,    Adjusted R-squared:  0.7364 
F-statistic:  18.7 on 3 and 16 DF,  p-value: 1.76e-05

Berdasarkan hasil di atas, dengan tidak mengikutkan variabel MC pada regresi, nilai VIF TST dan VIF TC turun cukup signifikan. Nilai VIF TST turun dari 710.020547 menjadi 8.477826, dan nilai VIF TC turun dari 565.705547 menjadi 8.636007. Pada taraf alpha = 0.05, TST dan MC tidak berpengaruh terhadap Body Fat. Dengan hasil ini, maka membuang variabel MC adalah tidak tepat.

#plot sisaan vs nilai prediksi untuk regresi2 (tanpa peubah penjelas TST)
plot(regresi2$fitted.values,regresi2$residuals, 
     main="Plot Residuals vs Fitted Values",
     pch = 20, col= "blue",
     xlab = "Fitted values - no TST",
     ylab = "Residuals")

#plot sisaan vs nilai prediksi untuk regresi3 (tanpa peubah penjelas TC)
plot(regresi3$fitted.values,regresi3$residuals, 
     main="Plot Residuals vs Fitted Values",
     pch = 20, col= "blue",
     xlab = "Fitted values - no TC",
     ylab = "Residuals")

#plot sisaan vs nilai prediksi untuk regresi3 (tanpa peubah penjelas MC)
plot(regresi4$fitted.values,regresi4$residuals, 
     main="Plot Residuals vs Fitted Values",
     pch = 20, col= "blue",
     xlab = "Fitted values no MC",
     ylab = "Residuals")

Kesimpulan

Berdasarkan pada uji terbatas dengan membuang variabel penjelas yang diduga penyebab multikolinearitas, maka dapat diambil model regresi tanpa peubah penjelas TC adalah yang terbaik dengan Y (duga) = 6.894947 + 1.001454TST - 0.434555MC

Praktikum 06

Materi

Tugas

Permasalahan

Tercantum di bawah ini adalah jumlah sel darah merah untuk pasien dengan berbagai penyakit hati. Para pasien dikategorikan menurut diagnosis awal mereka saat memasuki rumah sakit. Rata-rata kelompok penyakit mana yang paling mirip? Standar deviasi kelompok penyakit mana yang paling mirip. Mempertimbangkan kedua set statistik, jika diinginkan jumlah sel darah merah yang tinggi, penyakit hati mana yang tampak paling serius? Mengapa?

#menginput data
data06 <- read.csv('C:/01. Data/3. Study/2. Task/STA511 Analisis Statistika/Tugas06/tugas06.csv',header = TRUE,sep = ";")
data06
   Perlakuan Respon
1  cirrhosis     18
2  cirrhosis     66
3  cirrhosis     18
4  cirrhosis      7
5  cirrhosis     15
6  cirrhosis      6
7  cirrhosis      4
8  cirrhosis      8
9  cirrhosis      5
10 cirrhosis     28
11 cirrhosis      4
12 cirrhosis     49
13 cirrhosis     33
14 hepatitis     14
15 hepatitis     17
16 hepatitis     10
17 hepatitis      5
18 hepatitis     27
19 hepatitis     11
20 hepatitis     30
21 hepatitis     18
22 hepatitis      4
23 hepatitis     39
24 hepatitis     25
25     tumor      3
26     tumor      1
27     tumor      3
28     tumor      6
29     tumor      4
30     tumor      7
31     other     14
32     other     36
33     other      4
34     other     13
35     other      4
36     other      5
37     other      3
38     other      6
39     other     11
40     other      6
41     other     33

Metode

Metode yang digunakan untuk mengidentifikasi penyakit berdasarkan jumlah sel darah merah adalah dengan menggunakan Rancangan Acak Lengkap (RAL) serta pembandingan dua nilai tengah.

Hasil dan Pembahasan

  mean.cirrhosis. sd.cirrhosis.
1        20.07692      19.29793
  mean.hepatitis. sd.hepatitis.
1        18.18182      10.99835
  mean.tumor. sd.tumor.
1           4   2.19089
  mean.other. sd.other.
1    12.27273  11.62834

Jika dilihat dua statistik rataan dan standar deviasi, dapat dilihat mean yang mirip adalah cirrhosis dan dan hepatitis, sedangkan dilihat dari standar deviasi, dapata dilihat hepatitis dengan other memiliki kemiripan. Adapun tumor memiliki mean dan standar deviasi yang paling kecil.

anova <- aov(Respon~factor(Perlakuan),data=data06)
anova
Call:
   aov(formula = Respon ~ factor(Perlakuan), data = data06)

Terms:
                factor(Perlakuan) Residuals
Sum of Squares           1253.649  7054.741
Deg. of Freedom                 3        37

Residual standard error: 13.80828
Estimated effects may be unbalanced
summary(anova)
                  Df Sum Sq Mean Sq F value Pr(>F)
factor(Perlakuan)  3   1254   417.9   2.192  0.105
Residuals         37   7055   190.7               

Dari hasil di atas dapat dilihat bahwa p-value > alpha =5%, sehingga Tidak Tolak H0. Artinya, belum cukup bukti untuk menyatakan Perlakuan berpengaruh terhadap respon. Dengan kata lain, pengaruh penyakit hati terhadap jumlah sel darah merah tidak dapat dibedakan.

Pembandingan Dua Nilai Tengah

H0 : miuA = miuB H1 : miuA != miuB

#cirrhosis vs hepatitis
tes1 <- t.test(cirrhosis,hepatitis,alternative = "two.side", var.equal = FALSE)

#cirrhosis vs tumor
tes2 <- t.test(cirrhosis,tumor,alternative = "two.side", var.equal = FALSE)

#cirrhosis vs other
tes3 <- t.test(cirrhosis,other,alternative = "two.side", var.equal = FALSE)

#hepatitis vs tumor
tes4 <- t.test(hepatitis,tumor,alternative = "two.side", var.equal = FALSE)

#hepatitis vs other
tes5 <- t.test(hepatitis,other,alternative = "two.side", var.equal = FALSE)

#tumor vs other
tes6 <- t.test(tumor,other,alternative = "two.side", var.equal = FALSE)

uji.nilaitengah <- rbind(cbind('cirrhosis vs hepatitis',tes1$p.value),
                         cbind('cirrhosis vs tumor', tes2$p.value),
                         cbind('cirrhosis vs other', tes3$p.value),
                         cbind('hepatitis vs tumor', tes4$p.value),
                         cbind('hepatitis vs other', tes5$p.value),
                         cbind('tumor vs other', tes6$p.value))
                         

data.frame(uji.nilaitengah[,1],as.numeric(uji.nilaitengah[,2]))
    uji.nilaitengah...1. as.numeric.uji.nilaitengah...2..
1 cirrhosis vs hepatitis                      0.766606349
2     cirrhosis vs tumor                      0.011278696
3     cirrhosis vs other                      0.236712588
4     hepatitis vs tumor                      0.001558084
5     hepatitis vs other                      0.235051814
6         tumor vs other                      0.042563109
colnames(uji.nilaitengah) <- c('Perlakuan', 'P-value')
uji.nilaitengah
     Perlakuan                P-value             
[1,] "cirrhosis vs hepatitis" "0.766606349052237" 
[2,] "cirrhosis vs tumor"     "0.0112786962370026"
[3,] "cirrhosis vs other"     "0.236712587566278" 
[4,] "hepatitis vs tumor"     "0.001558083959238" 
[5,] "hepatitis vs other"     "0.235051813809545" 
[6,] "tumor vs other"         "0.0425631085437925"

Dari informasi dua nilai tengah perlakuan di atas, dapat dilihat bahwa pada taraf alpha=5% bahwa penyakit tumor yang memiliki nilai tengah yang paling signifikan dibandingkan dengan penyakit lainnya, sehingga akan dilanjutkan dengan pengujian nilai tengah untuk tumor

H0 : miuT >= miuP H1 : miuT < miuP

dimana, miuT : miu penyakit Tumor miuP : miu penyakit selain Tumor

#cirrhosis vs tumor
tes13 <- t.test(tumor,cirrhosis,alternative = "less", var.equal = FALSE)

#hepatitis vs tumor
tes23 <- t.test(tumor,hepatitis,alternative = "less", var.equal = FALSE)

#tumor vs other
tes34 <- t.test(tumor,other,alternative = "less", var.equal = FALSE)

uji.nilaitengah2 <- rbind(cbind('tumor vs cirrhosis ', tes13$p.value),
                         cbind('tumor vs hepatitis', tes23$p.value),
                         cbind('tumor vs other', tes34$p.value))
                         

data.frame(uji.nilaitengah2[,1],as.numeric(uji.nilaitengah2[,2]))
  uji.nilaitengah2...1. as.numeric.uji.nilaitengah2...2..
1   tumor vs cirrhosis                        0.005639348
2    tumor vs hepatitis                       0.000779042
3        tumor vs other                       0.021281554
colnames(uji.nilaitengah2) <- c('Perlakuan', 'P-value')
uji.nilaitengah2
     Perlakuan             P-value               
[1,] "tumor vs cirrhosis " "0.00563934811850132" 
[2,] "tumor vs hepatitis"  "0.000779041979618999"
[3,] "tumor vs other"      "0.0212815542718962"  

Dari hasil di atas, dapat dilihat bahwa pada taraf aplha=5%, dapat disimpulkan bahwa tumor memiliki rata-rata jumlah sel darah merah lebih kecil dibandingkan dengan penyakit lainnya, sehingga dapat dikatakan bahwa penyakit tumor boleh dianggap lebih serius.

Kesimpulan

Pada pengujian menggunakan Rancangan Acak Lengkap untuk mengetahui penyakit yang perlu dianggap lebih serius di antara cirrhosis, hepatitis, tumor, dan penyakit lainnya, dapat dilihat bahwa di antara penyakit hati yang ada, tumor merupakan penyakit hati yang perlu dianggap serius karena karena memiliki rata-rata jumlah sel darah merah yang lebih sedikit dibandingkan yang lainnya.