Validitas dan Reliabilitas Tes
~ Penggunaan keseharian ~
| Contact | |
| Name | Albani |
| albani.baga@gmail.com | |
| https://www.linkedin.com/in/al-bani-532b06294/ |
EPILOG
pernah kah kita berfikir tentang apakah kuisioner kita sudah cukup valid dengan jawaban responden? atau apakah cukup Reliabel? kadang mungking kita mikir wadduh gimana kalo salah nih kuisioner?. Analysis gagal? waduh waduh di marah bos kah?.. Over thingking aja tross ampe types kwkwkkw.
Jadi dari pada over thingking lebih baik melakukan uji coba. Tulisan ini mungkin bisa membantu biar ga over. Yes dengan melakukan Uji Validitas dan Uji Reliabilitas.
Uji validitas dan reliabilitas bertujuan untuk mengecek apakah kuesioner atau items pertanyaan yang kita buat sudah baik atau belum.
PREPARATION
PACKAGE
Package yang digunaakn adalah :
library(readxl) # Untuk membaca excel
library(tidyverse) # Untuk membantu mengubah dan menyajikan data dengan lebih baik
library(psych) # Untuk visualisasi data, analisis faktor, analisis reliabilitas, analisis korelasi, dan banyak lagi.
library(ltm) # Untuk analisis data dikotomis dan politomus multivariat
library(dplyr)Untuk penjelasan lebih jelasnya sangat banyak di Google. bisa jalan jalan ke sana atau pakai ChatGPT ya Evort dikit lah nuntut ilmu kwkwk…
DATA SET
Untuk contoh kasus dalam bisnis, kita bisa jalan-jalan di
Kaggle. Data yang akan digunakan adalah Starbucks
Customer Survey untuk mengetahui data tersebut bisa dengan
mengklik di
sini silahkan di download.
CLEANING DATA
# aksess data
Customer_Survey <- read.csv("D:/R/1 DATA SET/Starbuck customer survey/Starbucks satisfactory survey.csv",sep = ",", header = T)
head(Customer_Survey, 4)## 'data.frame': 122 obs. of 21 variables:
## $ Timestamp : chr "2019/10/01 12:38:43 PM GMT+8" "2019/10/01 12:38:54 PM GMT+8" "2019/10/01 12:38:56 PM GMT+8" "2019/10/01 12:39:08 PM GMT+8" ...
## $ X1..Your.Gender : chr "Female" "Female" "Male" "Female" ...
## $ X2..Your.Age : chr "From 20 to 29" "From 20 to 29" "From 20 to 29" "From 20 to 29" ...
## $ X3..Are.you.currently..... : chr "Student" "Student" "Employed" "Student" ...
## $ X4..What.is.your.annual.income. : chr "Less than RM25,000" "Less than RM25,000" "Less than RM25,000" "Less than RM25,000" ...
## $ X5..How.often.do.you.visit.Starbucks. : chr "Rarely" "Rarely" "Monthly" "Rarely" ...
## $ X6..How.do.you.usually.enjoy.Starbucks. : chr "Dine in" "Take away" "Dine in" "Take away" ...
## $ X7..How.much.time.do.you.normally..spend.during.your.visit. : chr "Between 30 minutes to 1 hour" "Below 30 minutes" "Between 30 minutes to 1 hour" "Below 30 minutes" ...
## $ X8..The.nearest.Starbucks.s.outlet.to.you.is.... : chr "within 1km" "1km - 3km" "more than 3km" "more than 3km" ...
## $ X9..Do.you.have.Starbucks.membership.card. : chr "Yes" "Yes" "Yes" "No" ...
## $ X10..What.do.you.most.frequently.purchase.at.Starbucks. : chr "Coffee" "Cold drinks;Pastries" "Coffee" "Coffee" ...
## $ X11..On.average..how.much.would.you.spend.at.Starbucks.per.visit. : chr "Less than RM20" "Less than RM20" "Less than RM20" "Less than RM20" ...
## $ X12..How.would.you.rate.the.quality.of.Starbucks.compared.to.other.brands..Coffee.Bean..Old.Town.White.Coffee....to.be.: int 4 4 4 2 3 4 5 4 5 4 ...
## $ X13..How.would.you.rate.the.price.range.at.Starbucks. : int 3 3 3 1 3 3 5 2 4 3 ...
## $ X14..How.important.are.sales.and.promotions.in.your.purchase.decision. : int 5 4 4 4 4 5 5 3 4 3 ...
## $ X15..How.would.you.rate.the.ambiance.at.Starbucks...lighting..music..etc.... : int 5 4 4 3 2 5 5 3 4 4 ...
## $ X16..You.rate.the.WiFi.quality.at.Starbucks.as.. : int 4 4 4 3 2 4 3 3 4 3 ...
## $ X17..How.would.you.rate.the.service.at.Starbucks...Promptness..friendliness..etc... : int 4 5 4 3 3 5 5 3 4 3 ...
## $ X18..How.likely.you.will.choose.Starbucks.for.doing.business.meetings.or.hangout.with.friends. : int 3 2 3 3 3 4 5 3 4 4 ...
## $ X19..How.do.you.come.to.hear.of.promotions.at.Starbucks..Check.all.that.apply. : chr "Starbucks Website/Apps;Social Media;Emails;Deal sites (fave, iprice, etc...)" "Social Media;In Store displays" "In Store displays;Billboards" "Through friends and word of mouth" ...
## $ X20..Will.you.continue.buying.at.Starbucks. : chr "Yes" "Yes" "Yes" "No" ...
Data di atas yang akan kita gunakan adalah X12 -
X19 karena data yang yang sesuai scala likert adalah data
tersebut. sehingga data tersebut saja yang akan kita analisa.
Customer_fiks <- Customer_Survey[, 13:19] #[a,b] a adalah baris, b adalah colom (penggunaan [])
str(Customer_fiks)## 'data.frame': 122 obs. of 7 variables:
## $ X12..How.would.you.rate.the.quality.of.Starbucks.compared.to.other.brands..Coffee.Bean..Old.Town.White.Coffee....to.be.: int 4 4 4 2 3 4 5 4 5 4 ...
## $ X13..How.would.you.rate.the.price.range.at.Starbucks. : int 3 3 3 1 3 3 5 2 4 3 ...
## $ X14..How.important.are.sales.and.promotions.in.your.purchase.decision. : int 5 4 4 4 4 5 5 3 4 3 ...
## $ X15..How.would.you.rate.the.ambiance.at.Starbucks...lighting..music..etc.... : int 5 4 4 3 2 5 5 3 4 4 ...
## $ X16..You.rate.the.WiFi.quality.at.Starbucks.as.. : int 4 4 4 3 2 4 3 3 4 3 ...
## $ X17..How.would.you.rate.the.service.at.Starbucks...Promptness..friendliness..etc... : int 4 5 4 3 3 5 5 3 4 3 ...
## $ X18..How.likely.you.will.choose.Starbucks.for.doing.business.meetings.or.hangout.with.friends. : int 3 2 3 3 3 4 5 3 4 4 ...
Data yang kita gunakan adalah data yang bernama
Customerfiks. Namun header data kita panjang sekali. kita
akan coba mengubahnya dengan nama yang mudah di ingat.
colnames(Customer_fiks) <- paste0("X", 1:ncol(Customer_fiks)) # Merubah nama variable
Customer_fiks$id <- 1:nrow(Customer_fiks) # Menambahkan colom baru berupa id
Customer_fiks <- cbind(id=Customer_fiks$id, Customer_fiks[, !names(Customer_fiks) %in% "id"]) # Mengubah colom id menjadi paling depan.
str(Customer_fiks)## 'data.frame': 122 obs. of 8 variables:
## $ id: int 1 2 3 4 5 6 7 8 9 10 ...
## $ X1: int 4 4 4 2 3 4 5 4 5 4 ...
## $ X2: int 3 3 3 1 3 3 5 2 4 3 ...
## $ X3: int 5 4 4 4 4 5 5 3 4 3 ...
## $ X4: int 5 4 4 3 2 5 5 3 4 4 ...
## $ X5: int 4 4 4 3 2 4 3 3 4 3 ...
## $ X6: int 4 5 4 3 3 5 5 3 4 3 ...
## $ X7: int 3 2 3 3 3 4 5 3 4 4 ...
Oke.. datanya sudah rapih kek doi yang mau malmingan. selanjutnya langsung di gass.
TEST
VALIDITY TEST
Uji ini memang lebih sering dipakai oleh rekan-rekan di jurusan sosial karena terkait design alat pengukuran (kuesioner) yang menggunakan skala likert. Untuk menguji validitas, kita cukup menghitung korelasi antar variabel terhadap variabel totalnya.
Banyak pihak juga yang berargumen bahwa item-total correlations tidak bisa digunakan untuk melihat validitas, which is quite true dan validitas itu ada berbagai macam jenisnya (face validity, content validity, dan lainnya). Tapi untuk kepentingan praktis metode yang dijelaskan di blog ini adalah metode yang paling sering dipakai. Cuma tujuan utamanya adalah untuk nge-drop item yang tidak sejalan dengan apa yang kuisionernya ukur.
Uji validitas dilakukan dengan cara membuat satu variabel (kolom)
baru berisi penjumlahan dari semua variabel rates yang ada. Misalkan
saya definisikan variabel baru bernama Data_validity
sebagai berikut:
Customer_fiks = Customer_fiks %>%
mutate(Data_validity = X1+X2+X3+X4+X5+X6+X7)
head(Customer_fiks, 10)Untuk menguji validitas, kita cukup menghitung korelasi antar variabel terhadap variabel totalnya
## X1 X2 X3 X4 X5 X6 X7 Data_validity
## X1 1.00 0.53 0.22 0.58 0.29 0.45 0.42 0.72
## X2 0.53 1.00 0.17 0.39 0.29 0.37 0.42 0.67
## X3 0.22 0.17 1.00 0.40 0.33 0.39 0.20 0.57
## X4 0.58 0.39 0.40 1.00 0.49 0.60 0.35 0.78
## X5 0.29 0.29 0.33 0.49 1.00 0.58 0.26 0.66
## X6 0.45 0.37 0.39 0.60 0.58 1.00 0.43 0.77
## X7 0.42 0.42 0.20 0.35 0.26 0.43 1.00 0.64
## Data_validity 0.72 0.67 0.57 0.78 0.66 0.77 0.64 1.00
Terlihat bahwa semua items memiliki korelasi >0.5
terhadap starbucks_rate yang berarti semua items tersebut valid (sejalan
dengan apa yang kuisionernya ukur).
RELIABILITY TEST
uji ini memang lebih sering dipakai oleh rekan-rekan di jurusan sosial karena terkait design alat pengukuran (kuesioner) yang menggunakan skala likert. Uji reliabilitas digunakan untuk melihat konsistensi responden dalam menjawab kuisioner. Uji ini dilakukan terhadap seluruh pertanyaan yang ada.
Kita akan melihat nilai Cronbach’s Alpha sebagai pedoman:
Jika nilai Cronbach’s Alpha > 60 maka reliabel.
Jika nilai Cronbach’s Alpha < 60 maka tidak reliabel.
Untuk menghitung Cronbach’s Alpha, saya menggunakan library(psych).
##
## Reliability analysis
## Call: alpha(x = data_without_id)
##
## raw_alpha std.alpha G6(smc) average_r S/N ase mean sd median_r
## 0.77 0.87 0.84 0.46 6.9 0.0066 6.2 1.2 0.42
##
## 95% confidence boundaries
## lower alpha upper
## Feldt 0.70 0.77 0.83
## Duhachek 0.76 0.77 0.78
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N alpha se var.r med.r
## X1 0.74 0.86 0.94 0.46 6.1 0.0081 0.032 0.42
## X2 0.74 0.87 0.93 0.48 6.5 0.0083 0.032 0.45
## X3 0.75 0.88 0.93 0.51 7.3 0.0081 0.026 0.49
## X4 0.73 0.85 0.95 0.45 5.7 0.0081 0.033 0.42
## X5 0.74 0.87 0.94 0.48 6.5 0.0080 0.032 0.43
## X6 0.74 0.85 0.96 0.45 5.6 0.0079 0.033 0.42
## X7 0.74 0.87 0.93 0.49 6.7 0.0082 0.032 0.49
## Data_validity 0.81 0.82 0.82 0.39 4.4 0.0270 0.016 0.39
##
## Item statistics
## n raw.r std.r r.cor r.drop mean sd
## X1 122 0.72 0.72 0.69 0.67 3.7 0.94
## X2 122 0.67 0.66 0.59 0.60 2.9 1.08
## X3 122 0.57 0.56 0.46 0.49 3.8 1.09
## X4 122 0.78 0.79 0.77 0.74 3.8 0.93
## X5 122 0.66 0.67 0.61 0.60 3.3 0.96
## X6 122 0.77 0.79 0.77 0.73 3.7 0.83
## X7 122 0.64 0.64 0.56 0.57 3.5 1.03
## Data_validity 122 1.00 1.00 0.90 1.00 24.6 4.69
##
## Non missing response frequency for each item
## 1 2 3 4 5 miss
## X1 0.02 0.07 0.32 0.40 0.19 0
## X2 0.11 0.22 0.39 0.20 0.07 0
## X3 0.05 0.06 0.25 0.34 0.30 0
## X4 0.02 0.05 0.29 0.43 0.21 0
## X5 0.06 0.11 0.44 0.31 0.08 0
## X6 0.01 0.03 0.35 0.42 0.19 0
## X7 0.03 0.12 0.32 0.34 0.18 0
Nilai Cronbach’s Alpha dapat dilihat dari nilai
raw_alpha, yakni sebesar 0.79, artinya
kuesioner yang kita gunakan sudah reliabel.
Selanjutnya, kita bisa melihat data raw_alpha per variabel. Nilai raw_alpha tersebut mengindikasikan besaran raw_alpha dari kuesioner jika item tersebut dihapus (Reliability if an item is dropped).
Silahkan di Share ya. Terimakasih