No3 Uas

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

no3_uas

Rianti Isnania

2022-12-15
library(readxl)
data = read_excel("D:/KULIAH/SEMESTER 5/APG/UAS/A_R STUDIO
BISMILLAH/data_diskriminan.xlsx")
View(data)
library(MASS)
fit = lda(Merk~efisiensi+detik+kilo,data=data)
fit

## Call:
## lda(Merk ~ efisiensi + detik + kilo, data = data)
##
## Prior probabilities of groups:
## 1 2
## 0.5294118 0.4705882
##
## Group means:
## efisiensi detik kilo
## 1 15.11111 9.388889 850.3333
## 2 14.62500 10.875000 817.4375
##
## Coefficients of linear discriminants:
## LD1
## efisiensi -0.568427144
## detik 0.719818449
## kilo 0.008766566

Prior probabilities of groups: 1 2 0.5 0.5 prior prob adalah pel 1 obs untuk masuk dalam
suatu kelompok sblm data terkumpul
Coefficients of linear discriminants: LD1 y1 -0.13987912 y2 -0.42340040 y3 0.04247445
y4 -0.02878734 y5 -0.39508971 y6 -0.16819799
fungsi diskriminan z = -0.14 y1 - 0.423 y2 + 0.04 y3 - 0.03 y4 - 0.395 y5 - 0.168 y6
#UJI ASUMSI MULTIVARIATE NORMAL #uji multivariate normal
library(MVN)
result <- mvn(data =data[2:4],mvnTest = "mardia")
result

## $multivariateNormality
## Test Statistic p value Result
## 1 Mardia Skewness 14.0411066594509 0.171124850424771 YES
## 2 Mardia Kurtosis -0.726011433817873 0.467831761224173 YES
## 3 MVN <NA> <NA> YES
##
## $univariateNormality
## Test Variable Statistic p value Normality
## 1 Anderson-Darling efisiensi 0.5963 0.1124 YES
## 2 Anderson-Darling detik 1.0119 0.0100 NO
## 3 Anderson-Darling kilo 1.1592 0.0043 NO
##
## $Descriptives
## n Mean Std.Dev Median Min Max 25th 75th
Skew
## efisiensi 34 14.88235 1.647122 15.0 12.0 19.0 14.0 16.00
0.3399752
## detik 34 10.08824 2.108678 11.0 5.0 13.0 9.0 11.75 -
0.7147725
## kilo 34 834.85294 165.203119 787.3 639.6 1190.8 701.1 965.15
0.6832758
## Kurtosis
## efisiensi -0.3672187
## detik -0.3869701
## kilo -0.8406343

library(MVN) # Uji multivariate normal jika skala datanya numerik


mvn(data = data[,c(2:4)], multivariatePlot = "qq") #6 KRN VARIABEL ADA 6
## $multivariateNormality
## Test HZ p value MVN
## 1 Henze-Zirkler 1.046217 0.009117251 NO
##
## $univariateNormality
## Test Variable Statistic p value Normality
## 1 Anderson-Darling efisiensi 0.5963 0.1124 YES
## 2 Anderson-Darling detik 1.0119 0.0100 NO
## 3 Anderson-Darling kilo 1.1592 0.0043 NO
##
## $Descriptives
## n Mean Std.Dev Median Min Max 25th 75th
Skew
## efisiensi 34 14.88235 1.647122 15.0 12.0 19.0 14.0 16.00
0.3399752
## detik 34 10.08824 2.108678 11.0 5.0 13.0 9.0 11.75 -
0.7147725
## kilo 34 834.85294 165.203119 787.3 639.6 1190.8 701.1 965.15
0.6832758
## Kurtosis
## efisiensi -0.3672187
## detik -0.3869701
## kilo -0.8406343

Dari grafik Chi-Square QQ Plot diatas, dapat dilihat bahwasanya secara umum terbentuk
garis linear X = Y, maka dapat dikatakan bahwa data berdistribusi multivariate normal.
#matriks ragam peragam antar kategori sama
library(biotools)

## ---
## biotools version 4.2

#melakukan uji statistik Box’s M di R dapat menggunakan fungsi boxM.


boxM(data=data[,c(2:4)],grouping=data$Merk)

##
## Box's M-test for Homogeneity of Covariance Matrices
##
## data: data[, c(2:4)]
## Chi-Sq (approx.) = 8.2156, df = 6, p-value = 0.2227

Output diatas menunjukkan bahwa dengan tingkat signifikansi 5%, didapat keputusan
untuk gagal tolak hipotesis nol sehingga tidak terdapat perbedaan matriks ragam
peragamnya dan dapat digunakan model diskriminan linear
Terdapat perbedaan rata-rata antar kategori H0 : Tidak terdapat perbedaan rata-rata skor
diskriminan antar kelompok secara multivariat H1 : terdapat perbedaan rata-rata skor
diskriminan antar kelompok secara multivariat
(wilk <- manova(formula = cbind(data$efisiensi, data$detik,
data$kilo)~data$Merk))

## Call:
## manova(formula = cbind(data$efisiensi, data$detik, data$kilo) ~
## data$Merk)
##
## Terms:
## data$Merk Residuals
## resp 1 2.0 87.5
## resp 2 18.7 128.0
## resp 3 9166.3 891472.0
## Deg. of Freedom 1 32
##
## Residual standard errors: 1.653857 2.000217 166.9087
## Estimated effects may be unbalanced

summary(object = wilk, test = "Wilks")

## Df Wilks approx F num Df den Df Pr(>F)


## data$Merk 1 0.77154 2.9611 3 30 0.04799 *
## Residuals 32
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

otput diatas menunjukkan bahwa dengan tingkat signifikansi 5%, didapat keputusan untuk
menolak hipotesis nol atau dengan kata lain terdapat perbedaan rata-rata (nilai variabel
prediktor) antar kategori
#Correlation dan multikolinearity check
kor<-cor(data[,2:4])
kor

## efisiensi detik kilo


## efisiensi 1.0000000 -0.3022847 0.7211341
## detik -0.3022847 1.0000000 -0.6652169
## kilo 0.7211341 -0.6652169 1.0000000

canonical discriminant analysis (analisis diskriminan kanonik) untuk melihat hubungan


antara variabel diskriminan dengan variabel independen secara multivariat
library(candisc)

## Loading required package: car

## Loading required package: carData

## Loading required package: heplots

## Loading required package: broom


##
## Attaching package: 'heplots'

## The following object is masked from 'package:biotools':


##
## boxM

##
## Attaching package: 'candisc'

## The following object is masked from 'package:stats':


##
## cancor

#Canonical Correlation (CC)


cc<-candisc(wilk)
cc

##
## Canonical Discriminant Analysis for data$Merk:
##
## CanRsq Eigenvalue Difference Percent Cumulative
## 1 0.22846 0.29611 100 100
##
## Test of H0: The canonical correlations in the
## current row and all that follow are zero
##
## LR test stat approx F numDF denDF Pr(> F)
## 1 0.77154 2.9611 3 30 0.04799 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

#Eigenvalue menunjukan ada tidaknya multikolinearitas antar variabel. Didapatkan nilai


Eigenvalue = 0.14993. Dikarenakan nilai eigenvalue mendekati 0, maka terjadi
multikolinearitas antar variabel independen.
#Canonical Corellation Canonical Correlation (CC)=0.13038, artinya bahwa hubungan
antara variabel diskriminan dengan variabel independen secara multivariat sebesar
0.13038 atau besarnya (CC)²= (0.13038)²
#Jadi dapat disimpulkan bahwa (0.13038)² * 100% variasi antara merk m1 dan m2 dapat
dijelaskan oleh variabel X1, x2,x3.
library(dplyr)

##
## Attaching package: 'dplyr'

## The following object is masked from 'package:car':


##
## recode
## The following object is masked from 'package:MASS':
##
## select

## The following objects are masked from 'package:stats':


##
## filter, lag

## The following objects are masked from 'package:base':


##
## intersect, setdiff, setequal, union

m1 = data %>%filter(Merk==1) %>% select(efisiensi,detik,kilo)

m2 = data %>%filter(Merk==2) %>% select(efisiensi,detik,kilo)

s1=cov(m1)
s2= cov(m2)
Spooled<-function(s1,s2,n1,n2){
W1<-(n1-1)*s1
W2<-(n2-1)*s2
Sp<-(1/((n1-1)+(n2-1)))*(W1+W2)
return(Sp)
}
Spl<-Spooled(s1,s2,18,16)
Spl

## efisiensi detik kilo


## efisiensi 2.7352431 -0.8914931 198.1268
## detik -0.8914931 4.0008681 -226.0362
## kilo 198.1268229 -226.0361979 27858.4999

xbar1 = matrix(c(15.118,9.647,842.188))
xbar2 = matrix(c(14.647,10.529,827.518))

a=t(xbar1-xbar2)%*%solve(Spl)

xbar.1 = a%*%xbar1
xbar.2 = a%*%xbar2

#cutting score
m.kep = 0.5*(xbar.1+xbar.2)
m.kep

## [,1]
## [1,] -3.581862

#untuk melihat akurasi pred klasifikasi dengan confussion matrix

fit.val = predict(fit,data[,-1]) #keluarkan kolom groupnya


ct = table(data$Merk, fit.val$class)
ct

##
## 1 2
## 1 11 7
## 2 4 12

1 2

150205
5 observasi dengan kelompok asal 1 diklasifikasikan benar ke kelompok 1
5 observasi dengan kelompok asal 1 diklasifikasikan benar ke kelompok 1
0 observasi dengan kelompok asal 1 salah diklasifikasikan ke kelompok 2
0 observasi dengan kelompok asal 2 salah diklasifikasikan ke kelompok 1
#membuat confussion matrix untuk melihat akurasi prediksi klasifikasi
diag(prop.table(ct,1))

## 1 2
## 0.6111111 0.7500000

Interpretasi : 1 2 1 1
100 persen kelompok 1 diklasifikasikan dengan benar. 100 persen kel 2 diklasifikasikan
dengan benar.
#total persen correct
sum(diag(prop.table(ct)))

## [1] 0.6764706

1 interpretasi : 100 persen data diklasifikasikan dengan benar.

You might also like