#Lihat di File dasar Teori #Paired Observation Test (Univariate)

Orang.ke=c(seq(1:10))
BB.Sebelum=c(57,69,56,67,55,56,62,67,67,56)
BB.Sesudah=c(55,70,56,65,54,55,64,65,67,54)
data=data.frame(Orang.ke,BB.Sebelum,BB.Sesudah)

t.test(x=data$BB.Sebelum, y=data$BB.Sesudah,
       alternative = "greater",
       mu = 0.5, paired = TRUE, var.equal = TRUE,
       conf.level = 0.95)
## 
##  Paired t-test
## 
## data:  data$BB.Sebelum and data$BB.Sesudah
## t = 0.44598, df = 9, p-value = 0.3331
## alternative hypothesis: true mean difference is greater than 0.5
## 95 percent confidence interval:
##  -0.1220671        Inf
## sample estimates:
## mean difference 
##             0.7

#Paired Observation Test (multivariate) #Dataset

library(readxl)
soal1 <- read_excel("F:/APG_Praktikum/APG_Bu Sarni/Pertemuan 5/dataset 5.xlsx", 
    sheet = "No1")
soal1
## # A tibble: 15 x 4
##    kata1 katakerja1 kata2 katakerja2
##    <dbl>      <dbl> <dbl>      <dbl>
##  1   148         20   137         15
##  2   159         24   164         25
##  3   144         19   224         27
##  4   103         18   208         33
##  5   121         17   178         24
##  6    89         11   128         20
##  7   119         17   154         18
##  8   123         13   158         16
##  9    76         16   102         21
## 10   217         29   214         25
## 11   148         22   209         24
## 12   151         21   151         16
## 13    83          7   123         13
## 14   135         20   161         22
## 15   178         15   175         23
#memakai fungsi Hotelling pertemuan kita sebelumnya. Bedanya mdata yang dimasukkan adalah difference
Hotelling<-function(mdata,Ho,alfa=0.05){
  n<-nrow(mdata)
  p<-ncol(mdata)
  #Membentuk vektor rata-rata sampel
  xbar_mdata=apply(mdata, 2, mean)
  varcovar=cov(mdata)
  #T hotelling
  Tsq<-n*(t(xbar_mdata-Ho)%*%solve(varcovar)%*%(xbar_mdata-Ho))
  #wilayah kritis
  Ftab<-qf(1-alfa,p,n-p)
  Fmod<-(p*(n-1)/(n-p))*Ftab
  uji<-ifelse(Tsq>Fmod, "Tolak Ho","Gagal Tolak Ho")
  library("DescTools")
  auto<-HotellingsT2Test(mdata, mu=Ho, test = 'chi')
  hasil<-list(xbar_mdata, varcovar, Tsq, Ftab, Fmod, uji,auto)
  names(hasil)<-c("vektor rata-rata","matriks var-covar","nilai T2 Hotelling",
                  "F tabel","F modifikasi","Keputusan","Hasil uji otomatis")
  return(hasil)
}

#Penggunaan

#Buat matriks selisih
d = matrix(c(soal1$kata1-soal1$kata2,soal1$katakerja1-soal1$katakerja2),15,2)
d
##       [,1] [,2]
##  [1,]   11    5
##  [2,]   -5   -1
##  [3,]  -80   -8
##  [4,] -105  -15
##  [5,]  -57   -7
##  [6,]  -39   -9
##  [7,]  -35   -1
##  [8,]  -35   -3
##  [9,]  -26   -5
## [10,]    3    4
## [11,]  -61   -2
## [12,]    0    5
## [13,]  -40   -6
## [14,]  -26   -2
## [15,]    3   -8
#Hipotesis
Ho = matrix(c(0,0),2,1)
Hotelling(d,Ho)
## $`vektor rata-rata`
## [1] -32.800000  -3.533333
## 
## $`matriks var-covar`
##          [,1]      [,2]
## [1,] 1096.029 139.90000
## [2,]  139.900  31.55238
## 
## $`nilai T2 Hotelling`
##          [,1]
## [1,] 15.19123
## 
## $`F tabel`
## [1] 3.805565
## 
## $`F modifikasi`
## [1] 8.196602
## 
## $Keputusan
##      [,1]      
## [1,] "Tolak Ho"
## 
## $`Hasil uji otomatis`
## 
##  Hotelling's one sample T2-test
## 
## data:  mdata
## T.2 = 15.191, df = 2, p-value = 0.0005026
## alternative hypothesis: true location is not equal to c(0,0)

#Otomatis

#Pisahkan dua populasi
pop1 = matrix(c(soal1$kata1,soal1$katakerja1),15,2)
pop2 = matrix(c(soal1$kata2,soal1$katakerja2),15,2)
library(MVTests)
## 
## Attaching package: 'MVTests'
## The following object is masked from 'package:datasets':
## 
##     iris
#Cara 1
Mpaired(pop1, pop2)
## $HT2
##          [,1]
## [1,] 15.19123
## 
## $F
##          [,1]
## [1,] 7.053073
## 
## $df
## [1]  2 13
## 
## $p.value
##             [,1]
## [1,] 0.008427354
## 
## $Descriptive1
##            [,1]      [,2]
## Means 132.93333 17.933333
## Sd     37.49375  5.351457
## 
## $Descriptive2
##            [,1]      [,2]
## Means 165.73333 21.466667
## Sd     36.05247  5.289702
## 
## $Descriptive.Difference
##           [,1]     [,2]
## Means 32.80000 3.533333
## Sd    33.10632 5.617151
## 
## $Test
## [1] "Mpaired"
## 
## attr(,"class")
## [1] "MVTests" "list"
#Cara 2
OneSampleHT2(d, Ho, alpha = 0.05)
## $HT2
##          [,1]
## [1,] 15.19123
## 
## $F
##          [,1]
## [1,] 7.053073
## 
## $df
## [1]  2 13
## 
## $p.value
##             [,1]
## [1,] 0.008427354
## 
## $CI
##       Lower      Upper Mu0 Important Variables?
## 1 -57.27272 -8.3272804   0               *TRUE*
## 2  -7.68562  0.6189537   0                FALSE
## 
## $alpha
## [1] 0.05
## 
## $Descriptive
##            [,1]      [,2]
## N      15.00000 15.000000
## Means -32.80000 -3.533333
## Sd     33.10632  5.617151
## 
## $Test
## [1] "OneSampleHT2"
## 
## attr(,"class")
## [1] "MVTests" "list"

#Selang Simultan Paired Data

selang_paired<-function(d,alfa=0.05){
#rata-rata d
  rd = matrix(c(colMeans(d)),2,1)
  n = nrow(d)
  p = ncol(d)
  sd=var(d)

 #Definisi variabel loop
 ci_lower=matrix()
 ci_upper=matrix()
 ci=matrix()
  for (i in 1 : p){
  ci_lower=rd[i,]-sqrt((n-1)*p*qf(1-alfa,p,n-p)/(n-p))*sqrt(sd[i,i]/n)
  ci_upper=rd[i,]+sqrt((n-1)*p*qf(1-alfa,p,n-p)/(n-p))*sqrt(sd[i,i]/n)
  ci<-c(ci_lower, ci_upper)
  print(ci)
  }
}
selang_paired(d)
## [1] -57.27272  -8.32728
## [1] -7.6856203  0.6189537
#Coba di PPT tuh
difference<-matrix(c(-19,-22,-18,-27,-4,-10,-14,17,9,4,-19,
+                      12,10,42,15,-1,11,-4,60,-2,10,-7),11,2)
#Hasilnya sama tuh selangnya

#Repeated Measure () #Dataset

library(readxl)
soal2 <- read_excel("F:/APG_Praktikum/APG_Bu Sarni/Pertemuan 5/dataset 5.xlsx", 
    sheet = "No2")
soal2
## # A tibble: 19 x 4
##      `1`   `2`   `3`   `4`
##    <dbl> <dbl> <dbl> <dbl>
##  1   426   609   556   600
##  2   253   236   392   395
##  3   359   433   349   357
##  4   432   431   522   600
##  5   405   426   513   513
##  6   324   438   507   539
##  7   310   312   410   456
##  8   326   326   350   504
##  9   375   447   547   548
## 10   286   286   403   422
## 11   349   382   473   497
## 12   429   410   488   547
## 13   348   377   447   514
## 14   412   473   472   446
## 15   347   326   455   468
## 16   434   458   637   524
## 17   364   367   432   469
## 18   420   395   508   531
## 19   397   556   645   625
#Membuat matriks kontras
Cn = matrix(c(-1,1,1,-1,-1,-1,1,1,-1,1,-1,1),3,4)
Cn
##      [,1] [,2] [,3] [,4]
## [1,]   -1   -1    1    1
## [2,]    1   -1    1   -1
## [3,]    1   -1   -1    1
mperlakuan<-function(mdt,C,alfa=0.05){
    n = nrow(mdt)
    q = ncol(mdt)
   xbar=colMeans(mdt)
   varcovar=cov(mdt)
   cxbar=C%*%xbar
   cSc=C%*%varcovar%*%t(C)
   #Statistik Uji
   tsq=n*t(cxbar)%*%solve(cSc)%*%cxbar
   Fmod=((n-1)*(q-1))/(n-q+1)
   Ftab=qf(1-alfa,q-1,n-q+1)
   Fstat=Fmod*Ftab
   uji<-ifelse(tsq>Fstat, "Tolak Ho","Gagal Tolak Ho")
   hasil<-list(xbar,varcovar,cxbar,cSc,tsq,Fmod,Ftab,Fstat,uji)
  names(hasil)<-c("Vektor rata-rata","Var-Covar","C*xbar",
                    "CSC'","T-square","F mod","F tabel",
                    "Statistik uji","Keputusan")
  return(hasil)
}
mperlakuan(soal2,Cn)
## $`Vektor rata-rata`
##        1        2        3        4 
## 368.2105 404.6316 479.2632 502.8947 
## 
## $`Var-Covar`
##          1        2        3        4
## 1 2819.287 3568.415 2943.497 2295.357
## 2 3568.415 7963.135 5303.991 4065.459
## 3 2943.497 5303.991 6851.316 4499.640
## 4 2295.357 4065.459 4499.640 4878.988
## 
## $`C*xbar`
##           [,1]
## [1,] 209.31579
## [2,] -60.05263
## [3,] -12.78947
## 
## $`CSC'`
##           [,1]      [,2]      [,3]
## [1,] 9432.2281 1098.9064  927.5965
## [2,] 1098.9064 5195.8304  914.5673
## [3,]  927.5965  914.5673 7557.3977
## 
## $`T-square`
##          [,1]
## [1,] 116.0163
## 
## $`F mod`
## [1] 3.375
## 
## $`F tabel`
## [1] 3.238872
## 
## $`Statistik uji`
## [1] 10.93119
## 
## $Keputusan
##      [,1]      
## [1,] "Tolak Ho"

#Selang data treatment (cxbar[i]) ± sqrt(Fstat)*sqrt(cSc[i,i]/n)

selang_treatment<-function(mdt,C,alfa=0.05){
    #identifikasi dataset
  n = nrow(mdt)
    q = ncol(mdt)
   xbar=colMeans(mdt)
   varcovar=cov(mdt)
   cxbar=C%*%xbar
    cSc=C%*%varcovar%*%t(C)
  #Statistik F
   Fmod=((n-1)*(q-1))/(n-q+1)
   Ftab=qf(1-alfa,q-1,n-q+1)
   Fstat=Fmod*Ftab
 #Definisi variabel loop
 ci_lower=matrix()
 ci_upper=matrix()
 ci=matrix()
  for (i in 1 : nrow(C)){
  ci_lower=cxbar[i,]-sqrt(Fstat)*sqrt(cSc[i,i]/n)
  ci_upper=cxbar[i,]+sqrt(Fstat)*sqrt(cSc[i,i]/n)
  ci<-c(ci_lower, ci_upper)
  print(ci)
  }
}
selang_treatment(soal2,Cn)
## [1] 135.6503 282.9813
## [1] -114.72708   -5.37818
## [1] -78.72858  53.14964

#One-way Anova

#Kita mencoba dengan dataset iris
iris=data.frame(iris)
head(iris,10)
##    Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1           5.1         3.5          1.4         0.2  Setosa
## 2           4.9         3.0          1.4         0.2  Setosa
## 3           4.7         3.2          1.3         0.2  Setosa
## 4           4.6         3.1          1.5         0.2  Setosa
## 5           5.0         3.6          1.4         0.2  Setosa
## 6           5.4         3.9          1.7         0.4  Setosa
## 7           4.6         3.4          1.4         0.3  Setosa
## 8           5.0         3.4          1.5         0.2  Setosa
## 9           4.4         2.9          1.4         0.2  Setosa
## 10          4.9         3.1          1.5         0.1  Setosa
#Kita akan mengambil kelompok virginica dan setosa dari dataset iris
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
virginica <- filter(iris, Species == "virginica")
setosa <- filter(iris, Species == "setosa")

#Misalkan kita ambil variabel Sepal length
anov = data.frame(log(iris$Sepal.Length),iris$Species)
names(anov)=c("sepal.length","spesies")
head(anov,10)
##    sepal.length spesies
## 1      1.629241  Setosa
## 2      1.589235  Setosa
## 3      1.547563  Setosa
## 4      1.526056  Setosa
## 5      1.609438  Setosa
## 6      1.686399  Setosa
## 7      1.526056  Setosa
## 8      1.609438  Setosa
## 9      1.481605  Setosa
## 10     1.589235  Setosa
summary(anov)
##   sepal.length         spesies  
##  Min.   :1.459   Setosa    :50  
##  1st Qu.:1.629   Versicolor:50  
##  Median :1.758   Virginica :50  
##  Mean   :1.755                  
##  3rd Qu.:1.856                  
##  Max.   :2.067
#Uji kehomogenan
#Levine Test
library(car)
## Loading required package: carData
## 
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
## The following object is masked from 'package:DescTools':
## 
##     Recode
leveneTest(sepal.length ~ spesies, data = anov) 
## Levene's Test for Homogeneity of Variance (center = median)
##        Df F value Pr(>F)
## group   2  2.2006 0.1144
##       147
#Uji normalitas
shapiro.test(anov$sepal.length)
## 
##  Shapiro-Wilk normality test
## 
## data:  anov$sepal.length
## W = 0.98253, p-value = 0.05388
qqPlot(anov$sepal.length)

## [1] 132  14
# lm: kode instruksi untuk penyusunan model linier dalam analisa data
model = lm(sepal.length ~ spesies, data = anov) 
# anova: kode instruksi untuk analisa ragam satu jalur (one way)
anova(model)
## Analysis of Variance Table
## 
## Response: sepal.length
##            Df Sum Sq Mean Sq F value    Pr(>F)    
## spesies     2 1.8918 0.94588  128.93 < 2.2e-16 ***
## Residuals 147 1.0784 0.00734                      
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

#Manova one way

presentasi <- read.csv("F:/APG_Praktikum/APG_Bu Sarni/Pertemuan 5/Manova_data.csv")
presentasi
##    Group   X1    X2   X3
## 1      1 19.6  5.15  9.5
## 2      1 15.4  5.75  9.1
## 3      1 22.3  4.35  3.3
## 4      1 24.3  7.55  5.0
## 5      1 22.5  8.50  6.0
## 6      1 20.5 10.25  5.0
## 7      1 14.1  5.95 18.8
## 8      1 13.0  6.30 16.5
## 9      1 14.1  5.45  8.9
## 10     1 16.7  3.75  6.0
## 11     1 16.8  5.10  7.4
## 12     2 17.1  9.00  7.5
## 13     2 15.7  5.30  8.5
## 14     2 14.9  9.85  6.0
## 15     2 19.7  3.60  2.9
## 16     2 17.2  4.05  0.2
## 17     2 16.0  4.40  2.6
## 18     2 12.8  7.15  7.0
## 19     2 13.6  7.25  3.2
## 20     2 14.2  5.30  6.2
## 21     2 13.1  3.10  5.5
## 22     2 16.5  2.40  6.6
## 23     3 16.0  4.55  2.9
## 24     3 12.5  2.65  0.7
## 25     3 18.5  6.50  5.3
## 26     3 19.2  4.85  8.3
## 27     3 12.0  8.75  9.0
## 28     3 13.0  5.20 10.3
## 29     3 11.9  4.75  8.5
## 30     3 12.0  5.85  9.5
## 31     3 19.8  2.85  2.3
## 32     3 16.5  6.55  3.3
## 33     3 17.4  6.60  1.9
str(presentasi)
## 'data.frame':    33 obs. of  4 variables:
##  $ Group: int  1 1 1 1 1 1 1 1 1 1 ...
##  $ X1   : num  19.6 15.4 22.3 24.3 22.5 20.5 14.1 13 14.1 16.7 ...
##  $ X2   : num  5.15 5.75 4.35 7.55 8.5 ...
##  $ X3   : num  9.5 9.1 3.3 5 6 5 18.8 16.5 8.9 6 ...
library(dplyr)
grup1 <- filter(presentasi, Group == "1")
grup2 <- filter(presentasi, Group == "2")
grup3 <- filter(presentasi, Group == "3")

#Sample mean vector
mean_1 = matrix(c(colMeans(grup1[,c(2:4)])),3,1)
mean_2 =matrix(c(colMeans(grup2[,c(2:4)])),3,1)
mean_3 = matrix(c(colMeans(grup3[,c(2:4)])),3,1)

#jumlah n dan g
n1 = nrow(grup1)
n2 = nrow(grup2)
n3 = nrow(grup3)

#Sample covariance matrix
var1 = var(grup1[,c(2:4)])
var2 = var(grup2[,c(2:4)])
var3 = var(grup3[,c(2:4)])

#Pooled W
W = (n1-1)*var1+(n2-1)*var2+(n3-1)*var3
W
##             X1         X2         X3
## X1  293.965455   6.550909 -207.77727
## X2    6.550909 126.287273   34.18591
## X3 -207.777273  34.185909  426.37091
xbar=matrix(c((n1*mean_1+n2*mean_2+n3*mean_3)/(n1+n2+n3)),3,1)
xbar
##           [,1]
## [1,] 16.330303
## [2,]  5.715152
## [3,]  6.475758
#B
B = n1*(mean_1-xbar)%*%t(mean_1-xbar)+n2*(mean_2-xbar)%*%t(mean_2-xbar)+n3*(mean_3-xbar)%*%t(mean_3-xbar)
B
##          [,1]      [,2]     [,3]
## [1,] 52.92424 14.243939 64.55152
## [2,] 14.24394  3.975152 16.71121
## [3,] 64.55152 16.711212 81.82970
#Wilks Lambda
W = det(W)/(det(B+W))
W
## [1] 0.5257884