Modul Dasar Pemrograman R dan Statistika
Modul Dasar Pemrograman R dan Statistika
Ekonometrika
Prodi MBTI
Fakultas Ekonomi dan Bisnis
Universitas Telkom
2021
Modul 1
Pertemuan ke-6
Modul 1.1. Kode Pertamaku
Dian Ramadhani
3/18/2021
Perkenalan Diri
Halo nama saya Dian. Hari ini saya mau belajar R menggunakan RMarkdown.
Untuk ngoding, saya membutuhkan chunk. Untuk membuat chunk kita dapat menekan tombol ctrl + alt + i
Kemudian, kita dapat menulis kode paling sederhana yaitu perintah mencetak. Mencetak dapat dilakukan
dengan perintah “print”.
print("nama saya Dian")
1
Modul 1.2. Dasar - Dasar Pemrograman R
Dian Ramadhani
3/18/2021
## [1] 2
Gunakan - untuk pengurangan
2-1
## [1] 1
Gunakan * untuk perkalian
2*1
## [1] 2
Gunakan / untuk pembagian
4/2
## [1] 2
Gunakan ˆ untuk pangkat
2ˆ2
## [1] 4
Kita juga dapat melakukan perhitungan yang lebih rumit seperti perhitungan luas lingkaran, luas segitiga,
dan lain lain.
(2*4)*0.5
## [1] 4
1
Tipe Data
Berikutnya kita akan mengenal beberapa tipe data yang ada di R. Terdapat beberapa tipe data yang umum
digunakan yaitu numerik, integer, dan character.
Numerik
Data numerik terdiri atas segala jenis angka, baik bilangan genap maupun desimal. Contoh dari data numerik
yaitu berat badan. Misalnya, berat badan saya saat ini yaitu 60.3 kilogram. Kita akan membuat variabel
“berat_badan” dengan nilai “60.3” melalui perintah berikut.
berat_badan <- 60.3
Untuk menampilkan nilai berat badan yang telah kita simpan pada variabel bernama “berat_badan”, kita
dapat menggunakan perintah “print”.
print(berat_badan)
## [1] 60.3
Untuk memeriksa tipe data, kita dapat menggunakan perintah “class” sebagai berikut.
class(berat_badan)
## [1] "numeric"
Berikan contoh data numerik lainnya!
Integer
Data integer terdiri atas bilangan bulat. Contoh dari data numerik yaitu jumlah mahasiswa. Jumlah
mahasiswa pada kelas ini yaitu sebanyak 33 orang. Data jumlah mahasiswa akan kita simpan dalam variabel
beranama “jlh_mahasiswa”. Perlu diingat, kita membutuhkan perintah [Link] untuk membentuk data
integer.
jlh_mahasiswa <- [Link](20)
print(jlh_mahasiswa)
## [1] 20
class(jlh_mahasiswa)
## [1] "integer"
Berikan contoh data integer lainnya!
Character
Data character terdiri atas huruf atau kata (baik alfabet maupun angka). Contoh dari data character yaitu
nama. Nama saya Dian, dan akan saya simpan sebagai nilai dari variabel “nama”. Perlu diingat, kita
membutuhkan tanda petik untuk membentuk data character.
nama <- ("Dian")
print(nama)
## [1] "Dian"
class(nama)
## [1] "character"
Berikan contoh data character lainnya!
2
Struktur Data
Selain tipe data, kita juga harus mengenal beberapa tipe struktur data yang ada di R. Terdapat beberapa
struktur data yang umum digunakan yaitu vektor, list, matrix, dan dataframe.
Vektor
Vector merupakan struktur data yang dimana semua elemen didalamnya memiliki tipe data yang sama. Perlu
diperhatikan, untuk membuat vektor, kita harus menambahkan huruf c setelah panah. Contoh dari vektor
yaitu nama - nama fakultas yang ada di Telkom University. Seluruh nama fakultas memiliki tipe character.
vector_fakultas <- c("FEB", "FKB", "FIK", "FIT")
## [1] "character"
Berikan contoh vektor lainnya!
List
Berbeda dengan vector, struktur list memungkinkan untuk mengandung tipe data yang berbeda - beda.
Misalnya, saya ingin menyimpan data identitas yang terdiri atas nama (character), usia (integer), dan tinggi
badan (numerik) ke dalam variabel bernama “list_data_saya”. List dapat dibuat dengan perintah berikut.
list_data_saya <- list("Dian", [Link](20), 155)
print(list_data_saya)
## [[1]]
## [1] "Dian"
##
## [[2]]
## [1] 20
##
## [[3]]
## [1] 155
class(list_data_saya)
## [1] "list"
Berikan contoh list lainnya!
Matrix
Sama seperti vector, tipe data dalam struktur matrix harus sama. Hanya saja, struktur matrix terdiri atas
beberapa kolom dan baris. Kita dapat membuat matrix 3 baris dan 4 kolom berisi angka 1 sampai dengan 12.
matrix_contoh <- matrix(1:12,3,4)
print(matrix_contoh)
3
## [2,] 2 5 8 11
## [3,] 3 6 9 12
Berikan contoh data matrix lainnya!
Data Frame
Data frame merupakan tipe data yang paling sering kita temukan. Data frame sama seperti matrix, yaitu
memiliki kolom dan baris. Hanya saja, data frame dapat digunakan untuk menyimpan data dengan tipe
yang berbeda untuk masing - masing kolom. Misalnya, saya ingin menyimpan data hewan saya meliputi jenis
hewan, jumlah kaki, dan berat badan ke dalam dataframe bernama “df_data_hewan”.
df_data_hewan <- [Link](
Jenis = c("Kucing", "Kambing", "Elang", "Ular"),
Berat = c(1.9, 70.0, 5.1, 0.2)
)
print(df_data_hewan)
## Jenis Berat
## 1 Kucing 1.9
## 2 Kambing 70.0
## 3 Elang 5.1
## 4 Ular 0.2
Buatlah dataframe jumlah kaki masing - masing hewan! nama dataframe = df_kaki_hewan nama kolom =
Jenis, Kaki
Gabungkan kedua dataframe tersebut dengan nama “df_merge”! Perintah untuk menggabungkan yaitu
nama_data_frame_baru <- merge(data_frame_1, data_frame_2, by=“nama_ID”)
Package
R Package merupakan kumpulan fungsi atau data yang telah dibuat oleh pengguna lain, disimpan di repository
R bernama CRAN, dan dapat kita gunakan kembali.
Misalnya, kita ingin menganalisis data yang disimpan dalam format excel (.xlxs atau .xls), untuk itu kita
perlu memasukkan data tersebut ke dalam workspace kita. Ternyata, perintah untuk memasukkan data excel
telah dibuat oleh pengguna lainnya dan disimpan dalam package bernama “readxl”.
Karena package ini masih tersimpan di CRAN, maka kita harus mendownloadnya terlebih dahulu dengan
perintah berikut
[Link]("readxl")
Setelah terdownload, kemudian kita harus mengaktifkan paket tersebut dengan cara berikut
library(readxl)
Setelah package berhasil diaktifkan, maka kita dapat langsung menggunakannya untuk memasukkan data
harga apartemen yang telah kita miliki. Data apartemen terletak pada folder data, sehingga perintah yang
digunakan yaitu
df_apartemen <- read_xlsx("data/[Link]")
## # A tibble: 10 x 3
## Apartement Monthly_Rent Size_Square
## <dbl> <dbl> <dbl>
4
## 1 1 950 850
## 2 2 1600 1450
## 3 3 1200 1085
## 4 4 1500 1232
## 5 5 950 718
## 6 6 1700 1485
## 7 7 1650 1136
## 8 8 935 726
## 9 9 875 700
## 10 10 1150 956
5
Modul 1.3. Statistika Dasar
Dian Ramadhani
3/17/2021
Pada modul kali ini kita akan belajar statistika dasar menggunakan R. Beberapa bahasan yang ada dalam
modul ini yaitu
1. Pengukuran Data
a. Ukuran Pemusatan Data
b. Ukuran Letak Data
c. Ukuran Penyebaran Data
2. Penyajian Data
a. Histogram
b. Scatter Plot
Menginstall Package
library(readxl)
Mengimpor Data
nilai_siswa <- read_xlsx("data/nilai_siswa.xlsx")
print(nilai_siswa)
## # A tibble: 15 x 3
## nama nilai_bahasa nilai_tafsir
## <chr> <dbl> <dbl>
## 1 A 80 80
## 2 B 65 70
## 3 C 75 70
## 4 D 85 80
## 5 E 60 65
## 6 F 65 60
## 7 G 60 60
## 8 H 75 70
## 9 I 70 70
## 10 J 55 55
## 11 K 80 85
## 12 L 50 55
## 13 M 65 70
## 14 N 85 80
## 15 O 60 65
1
Pengukuran Data
Ukuran Pemusatan Data
Mean Rata - rata dapat dihitung dengan perintah: mean(nama_data_frame$nama_kolom)
Hitung rata - rata nilai bahasa!
mean(nilai_siswa$nilai_bahasa)
## [1] 68.66667
Median Median dapat dihitung dengan cara yang sama, dengan perintah: median
Hitung median nilai tafsir!
median(nilai_siswa$nilai_tafsir)
## [1] 70
Summary Ukuran pemusatan dan ukuran letak data juga dapat dihitung dengan perintah sum-
mary(nama_data_frame$nama_kolom)
Temukan ukuran pemisatan dan ukuran letak pada data nilai bahasa!
summary(nilai_siswa$nilai_bahasa)
Interquartile Range Interquartile merupakan jarak antara nilai kuartil bawah (Q1) dan nilai kuartil atas
(Q3). Kita dapat menggunakan perintah IQR(nama_data_frame$nama_kolom)
Temukan interquartile range nilai bahasa!
2
Boxplot Boxplot digunakan untuk memetakan range dan interquartile range. Boxplot dapat digambar
menggunakan perintah boxplot(nama_data_frame$nama_kolom, horizontal=TRUE)
Buatlah boxplot dari nilai bahasa!
boxplot(nilai_siswa$nilai_bahasa, horizontal = TRUE)
50 55 60 65 70 75 80 85
Standar Deviasi Standar deviasi dapat dicari dengan menggunakan perintah sd(nama_data_frame$nama_kolom)
Hitunglah standar deviasi nilai bahasa!
Penyajian Data
Histogram
Histogram dapat dibuat dengan perintah dasar hist(nama_data_frame$nama_kolom)
Apabila ingin mengganti judul, nama sumbu x, dan warna kita dapat menambahkan perintah menjadi
hist(nama_data_frame$nama_kolom, main=“Judul”, xlab=“Nama Sumbu X”, col=“Warna”)
Buatlah histogram nilai bahasa!
hist(nilai_siswa$nilai_bahasa, main = "Histogram Nilai Bahasa", xlab="Nilai Bahasa", col = "red")
3
Histogram Nilai Bahasa
3.0
2.5
2.0
Frequency
1.5
1.0
0.5
0.0
50 55 60 65 70 75 80 85
Nilai Bahasa
Scatter Plot
Scatter plot dapat dibuat perintah plot(sumbu_x, sumbu_y, main=“Judul”, xlab=“Nama Sumbu X”, tlab =
“Nama Sumbu Y”, col=“Warna”)
Buatlah scatterplot nilai bahasa!
plot(nilai_siswa$nilai_bahasa, main = "Scatter Plot Nilai Bahasa", xlab="Nilai Bahasa", col = "red")
4
Scatter Plot Nilai Bahasa
50 55 60 65 70 75 80 85
nilai_siswa$nilai_bahasa
2 4 6 8 10 12 14
Nilai Bahasa
5
Modul 2
Pertemuan ke-7
Analisis Regresi Linier Sederhana
Dian Ramadhani
3/18/2021
Pada modul kali ini kita akan belajar regresi linier menggunakan R. Beberapa bahasan yang ada dalam
modul ini yaitu - Uji Model (Koefisien Determinasi) - Uji F (ANOVA) - Uji T (Koefisien) - Uji Asumsi Klasik
: Normalitas, Heteroskedastisitas, Autokorelasi
Mengimpor Data
[Link]("readxl")
print(nilai_siswa)
## # A tibble: 15 x 3
## nama nilai_bahasa nilai_tafsir
## <chr> <dbl> <dbl>
## 1 A 80 80
## 2 B 65 70
## 3 C 75 70
## 4 D 85 80
## 5 E 60 65
## 6 F 65 60
## 7 G 60 60
## 8 H 75 70
## 9 I 70 70
## 10 J 55 55
## 11 K 80 85
## 12 L 50 55
## 13 M 65 70
## 14 N 85 80
## 15 O 60 65
Terdapat suatu kegiatan penelitian ingin mengetahui apakah nilai Bahasa Arab berpengaruh terhadap
terhadap nilai Tafsir pada 15 siswa SMPN W kelas 2.
Di sini kita akan mengetahui seberapa besar pengaruh “Nilai Bahasa Arab” terhadap “Nilai Tafsir” dari 15
siswa SMPN W kelas 2, maka akan dilakukan uji regresi dengan:
• Variabel Independen adalah Nilai Bahasa Arab
• Variabel Dependen adalah Nilai Tafsir
1
Membuat Fungsi Regresi Linier
Regresi linier dapat dilakukan dengan menggunakan perintah lm(variabel_y ~ variabel_x, data=nama_data)
Buatlah fungsi regresi linier sederhana!
lm(nilai_tafsir ~ nilai_bahasa, data=nilai_siswa)
##
## Call:
## lm(formula = nilai_tafsir ~ nilai_bahasa, data = nilai_siswa)
##
## Coefficients:
## (Intercept) nilai_bahasa
## 15.4482 0.7799
Agar fungsi ini dapat kita gunakan kembali ketika dibutuhkan, simpanlah fungsi sebagai objek bernama
“fungsi_regresi”!
fungsi_regresi <- lm(nilai_tafsir ~ nilai_bahasa, data=nilai_siswa)
##
## Call:
## lm(formula = nilai_tafsir ~ nilai_bahasa, data = nilai_siswa)
##
## Coefficients:
## (Intercept) nilai_bahasa
## 15.4482 0.7799
Nilai Residual
Nilai residual dapat ditampilkan dengan perintah residuals(nama_fungsi) Tampilkan nilai residual untuk
masing - masing data!
residuals(fungsi_regresi)
## 1 2 3 4 5 6
## 2.16135458 3.85956175 -3.93924303 -1.73804781 2.75896414 -6.14043825
## 7 8 9 10 11 12
## -2.24103586 -3.93924303 -0.03984064 -3.34163347 7.16135458 0.55776892
## 13 14 15
## 3.85956175 -1.73804781 2.75896414
##
## Call:
## lm(formula = nilai_tafsir ~ nilai_bahasa, data = nilai_siswa)
##
## Residuals:
## Min 1Q Median 3Q Max
2
## -6.1404 -2.7913 -0.0398 2.7590 7.1614
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 15.44821 6.53132 2.365 0.0342 *
## nilai_bahasa 0.77988 0.09401 8.296 1.5e-06 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.846 on 13 degrees of freedom
## Multiple R-squared: 0.8411, Adjusted R-squared: 0.8289
## F-statistic: 68.82 on 1 and 13 DF, p-value: 1.5e-06
Notes
Uji Model : Multiple R-Squared
Uji F: p-value
Uji T: Pr(>|t|)
Residuals vs Fitted
11
5
Residuals
3
−5
55 60 65 70 75 80
Fitted values
lm(nilai_tafsir ~ nilai_bahasa)
3
Normal Q−Q
2 11
Standardized residuals
1
0
−1
−1 0 1
Theoretical Quantiles
lm(nilai_tafsir ~ nilai_bahasa)
Scale−Location
11
6
1.2
Standardized residuals
3
0.8
0.4
0.0
55 60 65 70 75 80
Fitted values
lm(nilai_tafsir ~ nilai_bahasa)
4
Residuals vs Leverage
1
2 11
0.5
Standardized residuals
1
0
−1
10
0.5
6
Cook's distance
−2
Leverage
lm(nilai_tafsir ~ nilai_bahasa)
Notes
Uji Heteroskedastisitas: Plot pertama (Residual vs Fitted)
Uji Normalitas: Plot Kedua (Normal Q-Q)
Uji Autokorelasi
Autokorelasi dapat diuji dengan menggunakan Durbin Watson Test. Untuk melakukan tes ini, kita membu-
tuhkan package bernama “lmtest”.
Silahkan instal package tersebut!
[Link]("lmtest")
5
##
## Durbin-Watson test
##
## data: fungsi_regresi
## DW = 2.229, p-value = 0.7082
## alternative hypothesis: true autocorrelation is greater than 0
Melakukan Prediksi
Prediksi Satu Data
Perintah untuk memprediksi data nama_fungsicoef f icients[[1]] + namaf ungsicoefficients[[2]] * data_baru
Lakukan prediksi nilai tafsir ketika seorang siswa memperoleh nilai bahasa sebesar 75!
fungsi_regresi$coefficients[[1]] + fungsi_regresi$coefficients[[2]] * 75
## [1] 73.93924
## nilai_bahasa
## 1 50
## 2 70
## 3 90
## 4 100
## 5 65
Lakukan prediksi pada data tersebut dengan perintah predict(fungsi, nama_data_baru)
predict(fungsi_regresi, nilai_baru)
## 1 2 3 4 5
## 54.44223 70.03984 85.63745 93.43625 66.14044
6
Analisis Regresi Linier Berganda
Nama Mahasiswa
3/18/2021
Pada modul kali ini kita akan belajar regresi linier berganda menggunakan R. Beberapa bahasan yang ada
dalam modul ini yaitu - Uji Model (Koefisien Determinasi) - Uji F (ANOVA) - Uji T (Koefisien) - Uji Asumsi
Klasik : Normalitas, Multikolinearitas, Heteroskedastisitas, Autokorelasi
Mengimpor Data
[Link]("readxl")
print(teknik_menulis_kritis)
## # A tibble: 15 x 5
## kode_mahasiswa kosa_kata pemahaman_tema tata_bahasa kemampuan_menulis
## <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 151 8 10 20 6
## 2 152 8 12 21 7
## 3 153 7 12 21 6
## 4 154 9 14 23 7
## 5 155 8 15 24 7
## 6 156 8 8 20 6
## 7 157 9 15 22 7
## 8 158 6 8 18 5
## 9 159 7 20 26 8
## 10 160 9 18 28 8
## 11 161 6 10 16 5
## 12 162 5 7 15 4
## 13 163 10 22 30 9
## 14 164 9 12 19 6
## 15 165 10 15 20 7
Brata melakukan penelitian terhadap pemahaman Teknik Menulis Kritis mahasiswa di Telkom University.
Dia ingin melihat hubungan Kosa Kata yang dikuasai Mahasiswa, Pemahaman Tema dan Tata Bahasa yang
telah dipelajari mahasiswa terhadap Kemampuan Menulis Mahasiswa di Telkom University.
Data ini merupakan data yang berhasil dikumpulkan dengan responden berjumlah 15 Mahasiswa.
Brata ingin meneliti pengaruh kosa_kata, pemahaman_tema, dan tata_bahasa terhadap kemam-
puan_menulis_mahasiswa.
1
Membuat Fungsi Regresi Linier Berganda
Regresi linier berganda dapat dilakukan dengan menggunakan perintah lm(y ~ x1 + x2 + x3,
data=nama_data)
Buatlah fungsi regresi linier berganda!
lm(kemampuan_menulis ~ kosa_kata + pemahaman_tema + tata_bahasa, data=teknik_menulis_kritis)
##
## Call:
## lm(formula = kemampuan_menulis ~ kosa_kata + pemahaman_tema +
## tata_bahasa, data = teknik_menulis_kritis)
##
## Coefficients:
## (Intercept) kosa_kata pemahaman_tema tata_bahasa
## 0.2322 0.2144 0.1011 0.1517
Agar fungsi ini dapat kita gunakan kembali ketika dibutuhkan, simpanlah fungsi sebagai objek bernama
“fungsi_regresi_berganda”!
fungsi_regresi_berganda <- lm(kemampuan_menulis ~ kosa_kata + pemahaman_tema + tata_bahasa, data=teknik_
##
## Call:
## lm(formula = kemampuan_menulis ~ kosa_kata + pemahaman_tema +
## tata_bahasa, data = teknik_menulis_kritis)
##
## Coefficients:
## (Intercept) kosa_kata pemahaman_tema tata_bahasa
## 0.2322 0.2144 0.1011 0.1517
Nilai Residual
Nilai residual dapat ditampilkan dengan perintah residuals(nama_fungsi) Tampilkan nilai residual untuk
masing - masing data!
residuals(fungsi_regresi_berganda)
## 1 2 3 4 5 6
## 0.008395254 0.654562054 -0.131036516 -0.065339137 -0.103687588 0.210561893
## 7 8 9 10 11 12
## -0.014755895 -0.057302126 0.301964122 -0.228005220 0.043864358 -0.286817693
## 13 14 15
## -0.150073050 -0.256506253 0.074175797
##
## Call:
## lm(formula = kemampuan_menulis ~ kosa_kata + pemahaman_tema +
2
## tata_bahasa, data = teknik_menulis_kritis)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.28682 -0.14055 -0.05730 0.05902 0.65456
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.23223 0.55164 0.421 0.68188
## kosa_kata 0.21440 0.06393 3.354 0.00643 **
## pemahaman_tema 0.10108 0.03987 2.535 0.02771 *
## tata_bahasa 0.15167 0.04240 3.577 0.00434 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.2746 on 11 degrees of freedom
## Multiple R-squared: 0.965, Adjusted R-squared: 0.9555
## F-statistic: 101.2 on 3 and 11 DF, p-value: 2.715e-08
Notes
Uji Model : Adjusted R-Squared
Uji F: p-value
Uji T: Pr(>|t|)
3
Residuals vs Fitted
0.6
0.4 2
Residuals
9
0.2
0.0
12
−0.4
5 6 7 8 9
Fitted values
lm(kemampuan_menulis ~ kosa_kata + pemahaman_tema + tata_bahasa)
Normal Q−Q
2
Standardized residuals
9
1
0
−1
12
−1 0 1
Theoretical Quantiles
lm(kemampuan_menulis ~ kosa_kata + pemahaman_tema + tata_bahasa)
4
Scale−Location
2
1.5
Standardized residuals
9
12
1.0
0.5
0.0
5 6 7 8 9
Fitted values
lm(kemampuan_menulis ~ kosa_kata + pemahaman_tema + tata_bahasa)
Residuals vs Leverage
Standardized residuals
1
9
0.5
6
1
0
−1
12 0.5
Cook's distance
1
Leverage
lm(kemampuan_menulis ~ kosa_kata + pemahaman_tema + tata_bahasa)
Notes
Uji Heteroskedastisitas: Plot pertama (Residual vs Fitted). Lihat sebarannya, semakin melebar/menyempit
atau tidak
Uji Normalitas: Plot Kedua (Normal Q-Q)
5
Uji Multikolinearitas
Autokorelasi dapat diuji dengan menggunakan VIF dan condition index. Untuk melakukan tes ini, kita
membutuhkan package bernama “olsrr”.
Silahkan instal package tersebut!
[Link]("olsrr")
##
## Attaching package: 'olsrr'
## The following object is masked from 'package:datasets':
##
## rivers
Nilai VIF dan condition index dapat ditemukan dengan perintah ols_coll_diag(nama_fungsi)
ols_coll_diag(fungsi_regresi_berganda)
Uji Autokorelasi
Autokorelasi dapat diuji dengan menggunakan Durbin Watson Test. Untuk melakukan tes ini, kita membu-
tuhkan package bernama “lmtest”.
Silahkan instal package tersebut!
[Link]("lmtest")
6
library(lmtest)
##
## Durbin-Watson test
##
## data: fungsi_regresi_berganda
## DW = 2.3193, p-value = 0.7335
## alternative hypothesis: true autocorrelation is greater than 0
Melakukan Prediksi
Prediksi Satu Data
Perintah untuk memprediksi data nama_fungsicoef f icients[[1]] + namaf ungsicoefficients[[2]] * data_baru
Lakukan prediksi kemampuan_menulis ketika seorang mahasiswa memperoleh nilai kosa_kata = 9, pema-
haman_tema = 10, dan tata_bahasa = 20.
fungsi_regresi_berganda$coefficients[[1]] + fungsi_regresi_berganda$coefficients[[2]] * 9 + fungsi_regr
## [1] 6.206006
7
Modul 3
Pertemuan ke-13
Modul 5. Data Panel
Nama Mahasiswa
Tanggal Praktikum
Pada modul kali ini kita akan belajar mengolah data panel menggunakan R. Beberapa bahasan yang ada
dalam modul ini yaitu
1. Common Effect Model (CEM)
2. Fixed Effect Model (FEM)
3. Random Effect Model (REM)
4. Membandingkan Model dan Menentukan Model yang Terbaik
5. Uji Asumsi Klasik
Install Packages
Package yang dibutuhkan yaitu: 1. readxl (untuk membaca file Excel) 2. plm (untuk membentuk model
regresi dari panel data) 3. GGally (untuk menampilkan plot korelasi) 4. lmtest (untuk melakukan uji asumsi
klasik) 5. sandwich (untuk menyelesaikan permasalahan heteroskedastisitas dan autokorelasi)
Cek packages yang sudah diinstal melalui menu packages. Jika belum terdaftar maka package belum
diinstal. Silahkan install packages jika package yang digunakan belum diinstal dengan perintah
[Link](“nama_package”)
[Link]("readxl")
1
Aktifkan Packages
Setelah package diinstal, kita harus mengaktifkan package tersebut agar dapat digunakan. Silahkan aktifkan
seluruh package yang dibutuhkan menggunakan perintah library(nama_package)
library(readxl)
library(plm)
library(GGally)
Mengimpor Data
Impor data Excel yang akan dianalisis dan simpan dengan nama “data_roa”. - untuk asisten: buka folder
data, upload data [Link]
data_produc <- read_xlsx("data/[Link]")
## # A tibble: 816 x 10
## state year pcap hwy water util pc gsp emp unemp
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 ALABAMA 1970 15033. 7326. 1656. 6051. 35794. 28418 1010. 4.7
## 2 ALABAMA 1971 15502. 7526. 1721. 6255. 37300. 29375 1022. 5.2
## 3 ALABAMA 1972 15972. 7765. 1765. 6442. 38670. 31303 1072. 4.7
## 4 ALABAMA 1973 16406. 7908. 1742. 6756. 40084. 33430 1136. 3.9
## 5 ALABAMA 1974 16763. 8026. 1735. 7002. 42057. 33749 1170. 5.5
## 6 ALABAMA 1975 17316. 8158. 1752. 7406. 43972. 33604 1155. 7.7
## 7 ALABAMA 1976 17733. 8228. 1800. 7705. 50222. 35764 1207 6.8
## 8 ALABAMA 1977 18112. 8366. 1845. 7901. 51085. 37463 1269. 7.4
## 9 ALABAMA 1978 18480. 8511. 1961. 8009. 52604. 39964 1336. 6.3
## 10 ALABAMA 1979 18881. 8641. 2082. 8159. 54526. 40979 1362 7.1
## # ... with 806 more rows
Data ini merupakan data Gross State Product untuk berbagai negara bagian di Amerika Serikat. Berikut
merupakan definisi masing - masing variabel
state: Nama negara bagian year: Tahun gsp: Gross State Product pcap: Public Capital Stock hwy: Jalan
raya water: Fasilitas selokan air util: Bangunan publik pc: Private Capital Stock emp: Tenaga kerja unemp:
Tingkat pengangguran
2
Eksplorasi Data
Melihat ringkasan profil data yang akan diolah dengan perintah summary(nama_data)
summary(data_produc)
2e+05
0e+00
data_produc$pcap
Perbaiki nama sumbu dan judul dengan perintah plot(nama_datavariabel1, namad atavariabel2,
xlab=“nama_sumbu_x”, ylab=“nama_sumbu_y”, main=“judul_tabel”)
3
plot(data_produc$pcap, data_produc$gsp, xlab="Public Capital Stock", ylab="Gross State Product", main="H
2e+05
0e+00
4
Hubungan antara PCAP dan GSP
4e+05
Gross State Product
2e+05
0e+00
Tampilkan ringkasan dari model common dengan perintah summary(nama_model) - untuk asisten: n =
jumlah cross section, T = time series, N = jumlah data
summary(common)
## Pooling Model
##
## Call:
## plm(formula = gsp ~ pcap + pc + unemp, data = data_produc, model = "pooling",
## index = c("state", "year"))
##
## Balanced Panel: n = 48, T = 17, N = 816
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -40333.90 -4172.66 -125.15 3947.17 80721.16
##
5
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## (Intercept) 1.2948e+03 1.1177e+03 1.1584 0.2471
## pcap 1.6092e+00 2.5451e-02 63.2261 < 2e-16 ***
## pc 4.5638e-01 1.1812e-02 38.6368 < 2e-16 ***
## unemp -1.0791e+03 1.6151e+02 -6.6812 4.4e-11 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 3.9905e+12
## Residual Sum of Squares: 8.3071e+10
## R-Squared: 0.97918
## Adj. R-Squared: 0.97911
## F-statistic: 12731.4 on 3 and 812 DF, p-value: < 2.22e-16
6
fixed_dummy = lm(gsp ~ pcap + pc + unemp + factor(state) - 1 , data=data_produc)
Tampilkan ringkasan dari model fixed dengan perintah summary(nama_model) - untuk asisten: biasanya r
square yang digunakan diperoleh dari model yg lengkap dengan dummy variabel
summary(fixed_dummy)
##
## Call:
## lm(formula = gsp ~ pcap + pc + unemp + factor(state) - 1, data = data_produc)
##
## Residuals:
## Min 1Q Median 3Q Max
## -24143.2 -1808.7 -41.7 1801.5 27304.8
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## pcap -1.136e-01 8.506e-02 -1.336 0.18200
## pc 9.087e-01 1.701e-02 53.428 < 2e-16 ***
## unemp -1.227e+03 9.355e+01 -13.118 < 2e-16 ***
## factor(state)ALABAMA 4.195e+03 1.544e+03 2.716 0.00675 **
## factor(state)ARIZONA 1.154e+04 1.457e+03 7.918 8.51e-15 ***
## factor(state)ARKANSAS 7.052e+03 1.305e+03 5.402 8.81e-08 ***
## factor(state)CALIFORNIA 1.496e+05 9.040e+03 16.554 < 2e-16 ***
## factor(state)COLORADO 1.418e+04 1.425e+03 9.950 < 2e-16 ***
## factor(state)CONNECTICUT 2.822e+04 1.602e+03 17.615 < 2e-16 ***
## factor(state)DELAWARE 9.829e+03 1.264e+03 7.774 2.46e-14 ***
## factor(state)FLORIDA 3.558e+04 2.673e+03 13.311 < 2e-16 ***
## factor(state)GEORGIA 1.792e+04 1.838e+03 9.754 < 2e-16 ***
## factor(state)IDAHO 7.727e+03 1.259e+03 6.137 1.35e-09 ***
## factor(state)ILLINOIS 4.798e+04 3.842e+03 12.488 < 2e-16 ***
## factor(state)INDIANA 7.675e+03 1.740e+03 4.411 1.18e-05 ***
## factor(state)IOWA 4.508e+03 1.488e+03 3.030 0.00252 **
## factor(state)KANSAS 1.242e+01 1.345e+03 0.009 0.99264
## factor(state)KENTUCKY 1.276e+04 1.623e+03 7.866 1.25e-14 ***
## factor(state)LOUISIANA -1.975e+04 1.787e+03 -11.050 < 2e-16 ***
## factor(state)MAINE 1.038e+04 1.274e+03 8.145 1.54e-15 ***
## factor(state)MARYLAND 2.707e+04 2.030e+03 13.338 < 2e-16 ***
## factor(state)MASSACHUSETTS 4.175e+04 2.099e+03 19.890 < 2e-16 ***
## factor(state)MICHIGAN 3.990e+04 3.216e+03 12.409 < 2e-16 ***
## factor(state)MINNESOTA 1.371e+04 1.981e+03 6.920 9.58e-12 ***
## factor(state)MISSISSIPPI 7.509e+03 1.379e+03 5.447 6.91e-08 ***
## factor(state)MISSOURI 1.864e+04 1.734e+03 10.754 < 2e-16 ***
## factor(state)MONTANA 2.622e+03 1.254e+03 2.090 0.03692 *
## factor(state)NEBRASKA 3.348e+03 1.370e+03 2.445 0.01473 *
## factor(state)NEVADA 6.969e+03 1.272e+03 5.478 5.85e-08 ***
## factor(state)NEW_HAMPSHIRE 9.218e+03 1.187e+03 7.765 2.62e-14 ***
## factor(state)NEW_JERSEY 4.934e+04 2.200e+03 22.425 < 2e-16 ***
## factor(state)NEW_MEXICO 5.181e+03 1.293e+03 4.008 6.73e-05 ***
## factor(state)NEW_YORK 1.298e+05 8.961e+03 14.484 < 2e-16 ***
## factor(state)NORTH_CAROLINA 1.975e+04 1.672e+03 11.808 < 2e-16 ***
## factor(state)NORTH_DAKOTA 1.352e+02 1.186e+03 0.114 0.90924
## factor(state)OHIO 3.756e+04 3.444e+03 10.906 < 2e-16 ***
## factor(state)OKLAHOMA 9.287e+02 1.348e+03 0.689 0.49101
7
## factor(state)OREGON 1.347e+04 1.462e+03 9.214 < 2e-16 ***
## factor(state)PENNSYLVANIA 4.171e+04 3.839e+03 10.863 < 2e-16 ***
## factor(state)RHODE_ISLAND 1.375e+04 1.273e+03 10.800 < 2e-16 ***
## factor(state)SOUTH_CAROLINA 6.224e+03 1.325e+03 4.699 3.10e-06 ***
## factor(state)SOUTH_DAKOTA 2.933e+03 1.174e+03 2.499 0.01266 *
## factor(state)TENNESSE 1.218e+04 1.863e+03 6.536 1.15e-10 ***
## factor(state)TEXAS -2.619e+04 4.153e+03 -6.308 4.79e-10 ***
## factor(state)UTAH 9.265e+03 1.272e+03 7.285 7.99e-13 ***
## factor(state)VERMONT 8.870e+03 1.238e+03 7.168 1.80e-12 ***
## factor(state)VIRGINIA 2.859e+04 1.935e+03 14.775 < 2e-16 ***
## factor(state)WASHINGTON 1.956e+04 2.428e+03 8.056 3.02e-15 ***
## factor(state)WEST_VIRGINIA 3.770e+03 1.389e+03 2.714 0.00679 **
## factor(state)WISCONSIN 2.159e+04 1.929e+03 11.188 < 2e-16 ***
## factor(state)WYOMING -2.414e+03 1.189e+03 -2.031 0.04261 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4553 on 765 degrees of freedom
## Multiple R-squared: 0.9977, Adjusted R-squared: 0.9976
## F-statistic: 6633 on 51 and 765 DF, p-value: < 2.2e-16
8
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 2.0213e+11
## Residual Sum of Squares: 2.13e+10
## R-Squared: 0.89462
## Adj. R-Squared: 0.89423
## Chisq: 6893.43 on 3 DF, p-value: < 2.22e-16
##
## F test for individual effects
##
## data: gsp ~ pcap + pc + unemp
## F = 68.993, df1 = 47, df2 = 765, p-value < 2.2e-16
## alternative hypothesis: significant effects
H0: Common Effect Model (Prob > 0.05) H1: Fixed Effect Model (Prob < 0.05)
Kesimpulan: - Hasil probabilitas < 0.05 menunjukan bahwa H0 ditolak, artinya bahwa model yang terbaik
digunakan adalah model FEM
##
## Hausman Test
##
## data: gsp ~ pcap + pc + unemp
## chisq = 88.87, df = 3, p-value < 2.2e-16
## alternative hypothesis: one model is inconsistent
H0: Random Effect Model (Prob > 0.05) H1: Fixed Effect Model (Prob < 0.05)
Kesimpulan: - Hasil probabilitas < 0.05 menunjukan bahwa H0 ditolak, artinya bahwa model yang terbaik
digunakan adalah model FEM.
CEM vs REM
Uji Lagrange Multiplier (LM) adalah uji untuk mengetahui apakah model Random Effect lebih
baik daripada metode Common Effect (PLS) digunakan. Uji ini dapat dijalankan dengan perintah
plmtest(nama_model_common, type=c(“bp”))
plmtest(common, type=c("bp"))
9
##
## Lagrange Multiplier Test - (Breusch-Pagan) for balanced panels
##
## data: gsp ~ pcap + pc + unemp
## chisq = 2411.8, df = 1, p-value < 2.2e-16
## alternative hypothesis: significant effects
H0: Common Effect Model (Prob > 0.05) H1: Random Effect Model (Prob < 0.05)
• Hasil probabilitas < 0.05 menunjukan bahwa H0 ditolak, artinya bahwa model yang terbaik digunakan
adalah model REM.
Kesimpulan akhir: FEM lebih baik dari REM, dan REM lebih baik dari CEM. Maka, model yang digunakan
yaitu FEM.
Histogram of fixed$residuals
200
150
Frequency
100
50
0
fixed$residuals
Percantik histogram dengan perintah hist(nama_model$residuals, breaks=jumlah_bar, col=“warna”,
xlab=“nama_sumbu_x”, main=“judul_grafik”)
hist(fixed$residuals, breaks = 30, col="red", xlab="Residual", main="Histogram Residual")
10
Histogram Residual
200
150
Frequency
100
50
0
Residual
Uji Multikolinearitas
Multikolinearitas dapat dideteksi dengan melihat nilai korelasi antara variabel independen. Untuk itu, kita
harus memilih kolom yang berisi variabel dependen dan membuat tabel baru yang berisi kolom - kolom
tersebut.
Perintah mengambil beberapa kolom dari tabel yang sudah ada yaitu nama_tabel[c(“nama_kolom_1”,
“nama_kolom_2”, “nama_kolom_3”)].
Kemudian simpan dengan nama “var_independen”.
var_independen <- data_produc[c("pcap", "pc", "unemp")]
11
pcap pc unemp
3e−05
pcap
0.865*** 0.184***
1e−05
0e+00
3e+05
2e+05
Corr:
pc
0.177***
1e+05
0e+00
15
unemp
10
Uji Heteroskedastisitas
Uji heteroskedastisitas dapat dilakukan dengan pendekatan grafik dan uji statistik
Pendekatan secara grafik dapat dilakukan dengan perintah plot(nama_data$varibelY, residu-
als(nama_model))
plot(data_produc$gsp, residuals(fixed))
12
10000
residuals(fixed)
0
−20000
data_produc$gsp
Selain itu, dapat pula dilakukan dengan uji statistik Breusch–Pagan dengan perintah bptest(nama_model)
bptest(fixed)
##
## studentized Breusch-Pagan test
##
## data: fixed
## BP = 197.35, df = 3, p-value < 2.2e-16
• Jika p-value < 0.05 maka H0 homoskedastisitas ditolak, maka terjadi heteroskedastisitas.
Uji Autokorelasi
Uji autokorelasi Durbin-Watson dapat dilakukan dengan perintah pdwtest(nama_model)
pdwtest(fixed)
##
## Durbin-Watson test for serial correlation in panel models
##
## data: gsp ~ pcap + pc + unemp
## DW = 0.78726, p-value < 2.2e-16
## alternative hypothesis: serial correlation in idiosyncratic errors
• untuk asisten: silahkan ajak mahasiswa untuk membandingkan nilai dw test dan dw tabel
Perbaikan Model
Pada model fixed ditemukan permasalahan heteroskedastisitas dan autokorelasi. Permasalahan tersebut
dapat diselesaikan melalui formulasi standar error yang tidak bias, salah satunya dengan heteroskedasticity
and autocorrelation-consistent (HAC) standard errors.
Perbaikan ini dapat dilakukan dengan perintah
13
coeftest(fixed, vcov = vcovHC, type = "HC1")
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## pcap -1.1363e-01 2.3506e-01 -0.4834 0.6289
## pc 9.0868e-01 9.1345e-02 9.9478 < 2.2e-16 ***
## unemp -1.2272e+03 2.4341e+02 -5.0417 5.765e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Uji Hipotesis
Uji hipotesis dari model yang dipilih dapat dilakukan dengan melihat summary model dengan perintah
summary(nama_model)
summary(fixed)
Uji R-Square
Koefisien Determinasi yaitu untuk mengukur berapa kemampuan model dalam menerangkan variasi variabel
dependen. Nilai dari koefisien determinasi berada diantara 0 dan 1. Jika nilai R-square kecil berarti kemampan
variabel independen dalam menjelaskan variabel dependen terbatas dan sebaliknya jika mendekati 1 maka
variabel independen dapat memberikan informasi yang dibutuhkan untuk menjelaskan variabel dependen.
Nilai R-square yang digunakan dalam regresi dengan lebih dari 1 variabel X yaitu adjusted R-square.
85,093% variabel independen (pcap, pc, dan unemp) mampu menjelaskan variabel independen (gsp), sisanya
dijelaskan oleh variabel lain.
14
Uji T
Uji T digunakan untuk menujukkan pengaruh secara parsial dari variabel independen terhadap variabel
dependen, dengan kriteria:
Thitung > Ttabel maka H0 Ditolak, variabel independen secara parsial memiliki pengaruh terhadap variabel
dependen.
Thitung < Ttabel maka H0 diterima, variabel independen secara parsial tidak memiliki pengaruh terhadap
variabel dependen.
• untuk asisten: silahkan ajak mahasiswa untuk membandingkan
Uji F
Uji F dilakukan dengan menggunakan nilai signifikansi, dengan kriteria:
probabilitas < 0,05 atau Fhitung > Ftabel maka H0 ditolak, variabel independen secara bersama-sama
memiliki pengaruh yang terhadap variabel dependen
probabilitas > 0,05 atau Fhitung < Ftabel maka H0 diterima, variabel independen secara bersama-sama
tidak memiliki pengaruh yang terhadap variabel
• untuk asisten: silahkan ajak mahasiswa untuk membandingkan
15
Modul 4
Pertemuan ke-14
Modul 6. Regresi Kualitatif
Nama Mahasiswa
Tanggal Praktikum
Pada modul kali ini kita akan belajar membuat model regresi kualitatif menggunakan R. Kita akan membentuk
model regresi dengan variabel dependen berupa bilangan biner. Misalnya, memprediksi seorang mahasiswa
akan lulus tepat waktu atau tidak berdasarkan IPK, presensi, keaktifan, dan lain lain.
- Untuk asisten: jelaskan bahwasannya regresi ini berbeda dengan regresi yang sebelumnya telah dipelajari.
Kalau regresi yang sebelumnya itu nilai Y (yang diprediksi) merupakan bilangan numerik, seperti tingkat
pengeluaran, ROA, GDP, dan lain lain. Kali ini, nilai Y (yang diprediksi) merupakan bilangan biner, seperti
ya atau tidak, female atau male, anggota atau bukan anggota, dan lain lain. Kita merepresentasikan nilai Y
dengan angka 0 dan 1. Misalnya Y = 0 jika female dan Y = 1 jika male, Y = 0 jika seorang mahasiswa tidak
lulus tepat waktu dan Y = 0 jika seorang mahasiswa lulus tepat waktu.
Beberapa bahasan yang ada dalam modul ini yaitu:
1. Model Logit
2. Model Probit
- Untuk asisten: Ada beberapa pendekatan model yang dapat digunakan dalam melakukan regresi kualitatif
ini, diantaranya model linear probability, logit, probit, dan tobit. Namun di bahasan kali ini kita hanya akan
membahas logit dan probit.
- Untuk asisten: Linear probability adalah model yang paling mudah untuk digunakan. Linear probability
menganut sistem Ordinary Least Square seperti pada regresi linear umumnya. Cara membuatnya sama
seperti lab lab sebelumnya. Tentukan variabel X dan variabel Y kemudian pilih model linier seperti yang
biasanya dipilih. Namun, model ini banyak sekali kekurangannya, diantaranya banyak uji asumsi klasik yang
tidak dapat dipenuhi. Selain itu, hasil regresi kualitatif dengan model linear probability ini berpeluang untuk
menghasilkan prediksi nilai Y yang berada diluar interval 0 - 1. Jelas saja, karena model OLS umumnya
digunakan untuk memprediksi variabel numerik. Kita mungkin saja bingung, loh? kalau nilai Y diprediksi
adalah 2.3, lalu apakah seseorang tersebut lulus tepat waktu atau tidak?
- Untuk asisten: Logit dan Probit ini merupakan model yang lebih cocok untuk digunakan dalam memprediksi
nilai Y yang berjenis kualitatif. Secara umum, kedua model ini mirip. Hanya saja logit (regresi logitsik)
menganut distribusi logistik, sedangkan probit menganut distribusi normal. Namun, secara garis besar,
hasil prediksinya mirip. Model Probit dan Logit memang lebih sulit untuk diinterpretasikan tetapi mampu
menangkap nonliniaritas dengan lebih baik daripada pendekatan linier. Selain itu, kedua model menghasilkan
prediksi probabilitas yang terletak di dalam interval 0 - 1
Install Packages
Package yang dibutuhkan yaitu: 1. readxl (untuk membaca file Excel) 2. GGally (untuk menampilkan plot
korelasi) 3. ResourceSelection (untuk melakukan uji Hosmer and Lemeshow) 4. dplyr (untuk menyatukan
tabel)
Cek packages yang sudah diinstal melalui menu packages. Jika belum terdaftar maka package belum
diinstal. Silahkan install packages jika package yang digunakan belum diinstal dengan perintah
[Link](“nama_package”)
1
[Link]("readxl")
Aktifkan Packages
Setelah package diinstal, kita harus mengaktifkan package tersebut agar dapat digunakan. Silahkan aktifkan
seluruh package yang dibutuhkan menggunakan perintah library(nama_package)
library(readxl)
library(GGally)
##
## 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
Mengimpor Data
Impor data Excel yang akan dianalisis dan simpan dengan nama “graduate_school”.
- untuk asisten: buka folder data, upload data graduate_school.xlsx
data_graduate <- read_xlsx("data/graduate_school.xlsx")
2
print(data_graduate)
## # A tibble: 400 x 4
## admit gre gpa rank
## <dbl> <dbl> <dbl> <dbl>
## 1 0 380 3.61 3
## 2 1 660 3.67 3
## 3 1 800 4 1
## 4 1 640 3.19 4
## 5 0 520 2.93 4
## 6 1 760 3 2
## 7 1 560 2.98 1
## 8 0 400 3.08 2
## 9 1 540 3.39 3
## 10 0 700 3.92 2
## # ... with 390 more rows
Data ini merupakan data Penerimaan Studi Lanjut untuk setiap calon mahasiswa pascasarjana. Berikut
merupakan definisi masing - masing variabel
Variabel independen (X) - GRE yaitu Graduate Record Exam scores; nilai ujian lulusan (continuos) - GPA
yaitu Grade Point Average; indeks prestasi kumulatif (IPK) (continous) - rank yaitu gengsi dari universitas
asal (S1); bernilai 1 sampai dengan 4 (kategorik) dimana Rank = 1 mengindikasikan universitas sangat
bergengsi Rank = 2 mengindikasikan universitas cukup bergengsi Rank = 3 mengindikasikan universitas
kurang bergengsi Rank = 4 mengindikasikan universitas tidak bergengsi Oleh karena itu, variabel rank harus
ditransformasi menjadi variabel dummy.
Variabel dependen (Y) - admit yaitu variabel biner berupa diterima / tidak diterima pada studi pascasarjana;
bernilai 1 jika calon mahasiswa diterima dan bernilai - jika calon mahasiswa tidak diterima.
Model regresi kualitatif ini ditujukan untuk memprediksi kelulusan calon mahasiswa pascasarjana.
Eksplorasi Data
Melihat Ringkasan Data
Melihat ringkasan profil data yang akan diolah dengan perintah summary(nama_data)
summary(data_graduate)
3
Histogram of data_graduate$gpa
80
60
Frequency
40
20
0
data_graduate$gpa
Perbaiki nama sumbu dan judul dengan perintah hist(nama_data$variabel, xlab=“nama_sumbu_x”,
main=“judul_tabel”)
hist(data_graduate$gpa, xlab="Grade Point Average", main="Sebaran GPA Calon Mahasiswa")
40
20
0
4
col=“warna”)
hist(data_graduate$gpa, xlab="Grade Point Average", main="Sebaran GPA Calon Mahasiswa", col="red")
40
20
0
Model Probit
Membuat Model Probit
Model probit dapat dibentuk dengan menggunakan perintah glm(Y ~ X1 + X2 + X3, fam-
ily=binomial(link=“probit”), data=nama_data). Simpan model probit ini dengan nama “probit”
probit <- glm(admit ~ gre + gpa + factor(rank),
family=binomial(link="probit"),
data=data_graduate)
##
## Call:
## glm(formula = admit ~ gre + gpa + factor(rank), family = binomial(link = "probit"),
## data = data_graduate)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.6163 -0.8710 -0.6389 1.1560 2.1035
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -2.386836 0.673946 -3.542 0.000398 ***
## gre 0.001376 0.000650 2.116 0.034329 *
5
## gpa 0.477730 0.197197 2.423 0.015410 *
## factor(rank)2 -0.415399 0.194977 -2.131 0.033130 *
## factor(rank)3 -0.812138 0.208358 -3.898 9.71e-05 ***
## factor(rank)4 -0.935899 0.245272 -3.816 0.000136 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 499.98 on 399 degrees of freedom
## Residual deviance: 458.41 on 394 degrees of freedom
## AIC: 470.41
##
## Number of Fisher Scoring iterations: 4
- Untuk asisten: seperti biasa, lihat p valuenya untuk menentukan signifikansi. Jika p < 0.05 maka variabel
berpengaruh signifikan.
- Untuk asisten: sesuai dengan bahasan diatas, variabel kategorik harus ditransformasi menjadi dummy
variabel. Dimana dummy variabel ini jumlahnya sebanyak jumlah kategori - 1. Dalam hal ini maka 4 - 1 = 3.
- Untuk asisten: Jadi, ketika seorang calon mahasiswa berasal dari universitas yang tidak bergengsi maka
koefisien rank yang dipertimbangkan hanya koefisien factor(rank)4, ketika seorang calon mahasiswa berasal dari
universitas yang kurang bergengsi maka koefisien rank yang dipertimbangkan hanya koefisien factor(rank)3,
ketika seorang calon mahasiswa berasal dari universitas yang cukup bergengsi maka koefisien rank yang
dipertimbangkan hanya koefisien factor(rank)2. Sedangkan jika seorang calon mahasiswa berasal dari
universitas yang sangat bergengsi maka tidak ada koefisien rank yang dipertimbangkan. Kategori universitas
sangat bergengsi (rank=1) yang tidak memiliki variabel dummy ini disebut sebagai kategori benchmark.
- Untuk asisten: cara membuatnya tuliskan factor(nama_variabel_kategorik) pada saat pembuatan fungsi
regresi
##
## Hosmer and Lemeshow goodness of fit (GOF) test
##
## data: probit$y, fitted(probit)
## X-squared = 12.609, df = 8, p-value = 0.126
Kesimpulan: - Jika prob > 0.05, maka model dapat diterima/fit/cocok dengan data observasi
Akurasi Model - Confusion Matrix Confusion Matrix merupakan tabel dengan 4 kombinasi berbeda
dari nilai prediksi dan nilai aktual.
Artinya, kita akan membandingkan nilai prediksi dan nilai aktual. Tabel nilai aktual telah kita miliki pada
data_graduate. Selanjutnya kita dapat melakukan prediksi nilai Y berdasarkan model probit yang telah
dibuat dengan perintah [Link](nama_kolom_prediksi = [Link](predict(nama_model, nama_data,
“response”)>0.5)). Simpan hasil prediksi dengan nama prediksi_probit.
- Untuk asisten : nilai 0.5 merupakan nilai batas. Jika diperoleh nilai Y sama dengan atau lebih kecil dari
0.5 maka dianggap calon mahasiswa tidak diterima (Y=0), jika diperoleh nilai Y lebih besar dari 0.5 maka
6
dianggap calon mahasiswa diterima (Y=1).
prediksi_probit <- [Link](admit_pred = [Link](predict(probit, data_graduate, "response")>0.5))
## admit_pred
## 1 0
## 2 0
## 3 1
## 4 0
## 5 0
## 6 0
## 7 0
## 8 0
## 9 0
## 10 1
## 11 0
## 12 0
## 13 1
## 14 0
## 15 1
## 16 0
## 17 0
## 18 0
## 19 1
## 20 1
## 21 0
## 22 0
## 23 0
## 24 0
## 25 0
## 26 1
## 27 1
## 28 0
## 29 0
## 30 0
## 31 0
## 32 0
## 33 0
## 34 0
## 35 0
## 36 0
## 37 0
## 38 0
## 39 0
## 40 0
## 41 0
## 42 0
## 43 0
## 44 0
## 45 0
## 46 0
7
## 47 0
## 48 0
## 49 0
## 50 0
## 51 0
## 52 0
## 53 0
## 54 0
## 55 0
## 56 0
## 57 0
## 58 0
## 59 0
## 60 0
## 61 0
## 62 0
## 63 0
## 64 0
## 65 0
## 66 0
## 67 0
## 68 1
## 69 1
## 70 1
## 71 0
## 72 0
## 73 0
## 74 0
## 75 0
## 76 0
## 77 0
## 78 0
## 79 0
## 80 1
## 81 0
## 82 0
## 83 0
## 84 0
## 85 0
## 86 0
## 87 0
## 88 0
## 89 1
## 90 1
## 91 0
## 92 1
## 93 1
## 94 0
## 95 0
## 96 0
## 97 0
## 98 0
## 99 0
## 100 0
8
## 101 0
## 102 0
## 103 0
## 104 0
## 105 0
## 106 0
## 107 1
## 108 0
## 109 0
## 110 0
## 111 0
## 112 0
## 113 0
## 114 0
## 115 0
## 116 0
## 117 0
## 118 0
## 119 1
## 120 0
## 121 0
## 122 0
## 123 0
## 124 0
## 125 0
## 126 0
## 127 1
## 128 0
## 129 0
## 130 0
## 131 0
## 132 0
## 133 0
## 134 0
## 135 0
## 136 0
## 137 0
## 138 0
## 139 0
## 140 1
## 141 0
## 142 0
## 143 0
## 144 0
## 145 0
## 146 0
## 147 0
## 148 0
## 149 0
## 150 1
## 151 1
## 152 0
## 153 0
## 154 0
9
## 155 0
## 156 0
## 157 0
## 158 0
## 159 0
## 160 0
## 161 0
## 162 0
## 163 0
## 164 0
## 165 0
## 166 1
## 167 0
## 168 0
## 169 0
## 170 0
## 171 0
## 172 0
## 173 0
## 174 0
## 175 0
## 176 0
## 177 0
## 178 0
## 179 0
## 180 0
## 181 0
## 182 0
## 183 1
## 184 0
## 185 0
## 186 1
## 187 0
## 188 0
## 189 0
## 190 0
## 191 0
## 192 0
## 193 0
## 194 0
## 195 0
## 196 0
## 197 0
## 198 0
## 199 0
## 200 0
## 201 0
## 202 0
## 203 1
## 204 0
## 205 1
## 206 0
## 207 1
## 208 1
10
## 209 0
## 210 0
## 211 0
## 212 0
## 213 0
## 214 0
## 215 0
## 216 0
## 217 0
## 218 0
## 219 0
## 220 0
## 221 0
## 222 0
## 223 0
## 224 0
## 225 0
## 226 0
## 227 0
## 228 0
## 229 0
## 230 0
## 231 0
## 232 0
## 233 0
## 234 0
## 235 1
## 236 0
## 237 0
## 238 0
## 239 0
## 240 0
## 241 0
## 242 1
## 243 0
## 244 0
## 245 0
## 246 0
## 247 0
## 248 0
## 249 0
## 250 0
## 251 0
## 252 0
## 253 0
## 254 0
## 255 0
## 256 0
## 257 0
## 258 0
## 259 0
## 260 0
## 261 0
## 262 0
11
## 263 0
## 264 0
## 265 0
## 266 0
## 267 0
## 268 0
## 269 0
## 270 0
## 271 0
## 272 0
## 273 0
## 274 1
## 275 0
## 276 0
## 277 0
## 278 1
## 279 0
## 280 0
## 281 0
## 282 0
## 283 0
## 284 0
## 285 0
## 286 0
## 287 1
## 288 0
## 289 0
## 290 0
## 291 0
## 292 0
## 293 0
## 294 1
## 295 0
## 296 0
## 297 0
## 298 0
## 299 0
## 300 0
## 301 0
## 302 0
## 303 0
## 304 1
## 305 0
## 306 0
## 307 0
## 308 0
## 309 0
## 310 0
## 311 0
## 312 0
## 313 0
## 314 0
## 315 0
## 316 0
12
## 317 0
## 318 0
## 319 0
## 320 0
## 321 0
## 322 0
## 323 0
## 324 0
## 325 0
## 326 1
## 327 0
## 328 0
## 329 0
## 330 0
## 331 0
## 332 0
## 333 0
## 334 0
## 335 0
## 336 1
## 337 0
## 338 0
## 339 0
## 340 0
## 341 0
## 342 0
## 343 0
## 344 0
## 345 0
## 346 0
## 347 0
## 348 0
## 349 0
## 350 0
## 351 1
## 352 0
## 353 0
## 354 0
## 355 0
## 356 1
## 357 0
## 358 1
## 359 0
## 360 0
## 361 1
## 362 1
## 363 0
## 364 0
## 365 0
## 366 0
## 367 0
## 368 0
## 369 1
## 370 1
13
## 371 0
## 372 0
## 373 0
## 374 1
## 375 0
## 376 0
## 377 0
## 378 1
## 379 0
## 380 0
## 381 0
## 382 0
## 383 0
## 384 1
## 385 0
## 386 0
## 387 1
## 388 0
## 389 0
## 390 0
## 391 0
## 392 0
## 393 0
## 394 0
## 395 0
## 396 0
## 397 0
## 398 0
## 399 0
## 400 0
Agar lebih gampang dibandingkan, kita akan menyatukan data hasil prediksi dan data aktual. Tabel dapat
disatukan dengan perintah bind_cols(nama_data_prediksi, nama_data_aktual). Simpan dengan nama
hasil_probit.
hasil_probit <- bind_cols(prediksi_probit, data_graduate)
14
## 15 1 1 700 4.00 1
## 16 0 0 480 3.44 3
## 17 0 0 780 3.87 4
## 18 0 0 360 2.56 3
## 19 1 0 800 3.75 2
## 20 1 1 540 3.81 1
## 21 0 0 500 3.17 3
## 22 0 1 660 3.63 2
## 23 0 0 600 2.82 4
## 24 0 0 680 3.19 4
## 25 0 1 760 3.35 2
## 26 1 1 800 3.66 1
## 27 1 1 620 3.61 1
## 28 0 1 520 3.74 4
## 29 0 1 780 3.22 2
## 30 0 0 520 3.29 1
## 31 0 0 540 3.78 4
## 32 0 0 760 3.35 3
## 33 0 0 600 3.40 3
## 34 0 1 800 4.00 3
## 35 0 0 360 3.14 1
## 36 0 0 400 3.05 2
## 37 0 0 580 3.25 1
## 38 0 0 520 2.90 3
## 39 0 1 500 3.13 2
## 40 0 1 520 2.68 3
## 41 0 0 560 2.42 2
## 42 0 1 580 3.32 2
## 43 0 1 600 3.15 2
## 44 0 0 500 3.31 3
## 45 0 0 700 2.94 2
## 46 0 1 460 3.45 3
## 47 0 1 580 3.46 2
## 48 0 0 500 2.97 4
## 49 0 0 440 2.48 4
## 50 0 0 400 3.35 3
## 51 0 0 640 3.86 3
## 52 0 0 440 3.13 4
## 53 0 0 740 3.37 4
## 54 0 1 680 3.27 2
## 55 0 0 660 3.34 3
## 56 0 1 740 4.00 3
## 57 0 0 560 3.19 3
## 58 0 0 380 2.94 3
## 59 0 0 400 3.65 2
## 60 0 0 600 2.82 4
## 61 0 1 620 3.18 2
## 62 0 0 560 3.32 4
## 63 0 0 640 3.67 3
## 64 0 1 680 3.85 3
## 65 0 0 580 4.00 3
## 66 0 0 600 3.59 2
## 67 0 0 740 3.62 4
## 68 1 0 620 3.30 1
15
## 69 1 0 580 3.69 1
## 70 1 0 800 3.73 1
## 71 0 0 640 4.00 3
## 72 0 0 300 2.92 4
## 73 0 0 480 3.39 4
## 74 0 0 580 4.00 2
## 75 0 0 720 3.45 4
## 76 0 0 720 4.00 3
## 77 0 0 560 3.36 3
## 78 0 1 800 4.00 3
## 79 0 0 540 3.12 1
## 80 1 1 620 4.00 1
## 81 0 0 700 2.90 4
## 82 0 0 620 3.07 2
## 83 0 0 500 2.71 2
## 84 0 0 380 2.91 4
## 85 0 1 500 3.60 3
## 86 0 0 520 2.98 2
## 87 0 0 600 3.32 2
## 88 0 0 600 3.48 2
## 89 1 0 700 3.28 1
## 90 1 1 660 4.00 2
## 91 0 0 700 3.83 2
## 92 1 1 720 3.64 1
## 93 1 0 800 3.90 2
## 94 0 0 580 2.93 2
## 95 0 1 660 3.44 2
## 96 0 0 660 3.33 2
## 97 0 0 640 3.52 4
## 98 0 0 480 3.57 2
## 99 0 0 700 2.88 2
## 100 0 0 400 3.31 3
## 101 0 0 340 3.15 3
## 102 0 0 580 3.57 3
## 103 0 0 380 3.33 4
## 104 0 0 540 3.94 3
## 105 0 1 660 3.95 2
## 106 0 1 740 2.97 2
## 107 1 1 700 3.56 1
## 108 0 0 480 3.13 2
## 109 0 0 400 2.93 3
## 110 0 0 480 3.45 2
## 111 0 0 680 3.08 4
## 112 0 0 420 3.41 4
## 113 0 0 360 3.00 3
## 114 0 0 600 3.22 1
## 115 0 0 720 3.84 3
## 116 0 0 620 3.99 3
## 117 0 1 440 3.45 2
## 118 0 0 700 3.72 2
## 119 1 1 800 3.70 1
## 120 0 0 340 2.92 3
## 121 0 1 520 3.74 2
## 122 0 1 480 2.67 2
16
## 123 0 0 520 2.85 3
## 124 0 0 500 2.98 3
## 125 0 0 720 3.88 3
## 126 0 0 540 3.38 4
## 127 1 1 600 3.54 1
## 128 0 0 740 3.74 4
## 129 0 0 540 3.19 2
## 130 0 0 460 3.15 4
## 131 0 1 620 3.17 2
## 132 0 0 640 2.79 2
## 133 0 0 580 3.40 2
## 134 0 0 500 3.08 3
## 135 0 0 560 2.95 2
## 136 0 0 500 3.57 3
## 137 0 0 560 3.33 4
## 138 0 0 700 4.00 3
## 139 0 0 620 3.40 2
## 140 1 1 600 3.58 1
## 141 0 0 640 3.93 2
## 142 0 1 700 3.52 4
## 143 0 0 620 3.94 4
## 144 0 0 580 3.40 3
## 145 0 0 580 3.40 4
## 146 0 0 380 3.43 3
## 147 0 0 480 3.40 2
## 148 0 0 560 2.71 3
## 149 0 1 480 2.91 1
## 150 1 0 740 3.31 1
## 151 1 1 800 3.74 1
## 152 0 0 400 3.38 2
## 153 0 1 640 3.94 2
## 154 0 0 580 3.46 3
## 155 0 0 620 3.69 3
## 156 0 1 580 2.86 4
## 157 0 0 560 2.52 2
## 158 0 1 480 3.58 1
## 159 0 0 660 3.49 2
## 160 0 0 700 3.82 3
## 161 0 0 600 3.13 2
## 162 0 0 640 3.50 2
## 163 0 1 700 3.56 2
## 164 0 0 520 2.73 2
## 165 0 0 580 3.30 2
## 166 1 0 700 4.00 1
## 167 0 0 440 3.24 4
## 168 0 0 720 3.77 3
## 169 0 0 500 4.00 3
## 170 0 0 600 3.62 3
## 171 0 0 400 3.51 3
## 172 0 0 540 2.81 3
## 173 0 0 680 3.48 3
## 174 0 1 800 3.43 2
## 175 0 0 500 3.53 4
## 176 0 1 620 3.37 2
17
## 177 0 0 520 2.62 2
## 178 0 1 620 3.23 3
## 179 0 0 620 3.33 3
## 180 0 0 300 3.01 3
## 181 0 0 620 3.78 3
## 182 0 0 500 3.88 4
## 183 1 0 700 4.00 2
## 184 0 1 540 3.84 2
## 185 0 0 500 2.79 4
## 186 1 0 800 3.60 2
## 187 0 0 560 3.61 3
## 188 0 0 580 2.88 2
## 189 0 0 560 3.07 2
## 190 0 0 500 3.35 2
## 191 0 1 640 2.94 2
## 192 0 0 800 3.54 3
## 193 0 0 640 3.76 3
## 194 0 0 380 3.59 4
## 195 0 1 600 3.47 2
## 196 0 0 560 3.59 2
## 197 0 0 660 3.07 3
## 198 0 1 400 3.23 4
## 199 0 0 600 3.63 3
## 200 0 0 580 3.77 4
## 201 0 0 800 3.31 3
## 202 0 1 580 3.20 2
## 203 1 1 700 4.00 1
## 204 0 0 420 3.92 4
## 205 1 1 600 3.89 1
## 206 0 1 780 3.80 3
## 207 1 0 740 3.54 1
## 208 1 1 640 3.63 1
## 209 0 0 540 3.16 3
## 210 0 0 580 3.50 2
## 211 0 0 740 3.34 4
## 212 0 0 580 3.02 2
## 213 0 0 460 2.87 2
## 214 0 0 640 3.38 3
## 215 0 1 600 3.56 2
## 216 0 1 660 2.91 3
## 217 0 0 340 2.90 1
## 218 0 1 460 3.64 1
## 219 0 0 460 2.98 1
## 220 0 1 560 3.59 2
## 221 0 0 540 3.28 3
## 222 0 0 680 3.99 3
## 223 0 1 480 3.02 1
## 224 0 0 800 3.47 3
## 225 0 0 800 2.90 2
## 226 0 1 720 3.50 3
## 227 0 0 620 3.58 2
## 228 0 0 540 3.02 4
## 229 0 0 480 3.43 2
## 230 0 1 720 3.42 2
18
## 231 0 0 580 3.29 4
## 232 0 0 600 3.28 3
## 233 0 0 380 3.38 2
## 234 0 0 420 2.67 3
## 235 1 1 800 3.53 1
## 236 0 0 620 3.05 2
## 237 0 1 660 3.49 2
## 238 0 0 480 4.00 2
## 239 0 0 500 2.86 4
## 240 0 0 700 3.45 3
## 241 0 0 440 2.76 2
## 242 1 1 520 3.81 1
## 243 0 1 680 2.96 3
## 244 0 0 620 3.22 2
## 245 0 0 540 3.04 1
## 246 0 0 800 3.91 3
## 247 0 0 680 3.34 2
## 248 0 0 440 3.17 2
## 249 0 0 680 3.64 3
## 250 0 0 640 3.73 3
## 251 0 0 660 3.31 4
## 252 0 0 620 3.21 4
## 253 0 1 520 4.00 2
## 254 0 1 540 3.55 4
## 255 0 1 740 3.52 4
## 256 0 0 640 3.35 3
## 257 0 1 520 3.30 2
## 258 0 1 620 3.95 3
## 259 0 0 520 3.51 2
## 260 0 0 640 3.81 2
## 261 0 0 680 3.11 2
## 262 0 0 440 3.15 2
## 263 0 1 520 3.19 3
## 264 0 1 620 3.95 3
## 265 0 1 520 3.90 3
## 266 0 0 380 3.34 3
## 267 0 0 560 3.24 4
## 268 0 1 600 3.64 3
## 269 0 1 680 3.46 2
## 270 0 0 500 2.81 3
## 271 0 1 640 3.95 2
## 272 0 0 540 3.33 3
## 273 0 1 680 3.67 2
## 274 1 0 660 3.32 1
## 275 0 0 520 3.12 2
## 276 0 1 600 2.98 2
## 277 0 0 460 3.77 3
## 278 1 1 580 3.58 1
## 279 0 1 680 3.00 4
## 280 0 1 660 3.14 2
## 281 0 0 660 3.94 2
## 282 0 0 360 3.27 3
## 283 0 0 660 3.45 4
## 284 0 0 520 3.10 4
19
## 285 0 1 440 3.39 2
## 286 0 0 600 3.31 4
## 287 1 1 800 3.22 1
## 288 0 1 660 3.70 4
## 289 0 0 800 3.15 4
## 290 0 0 420 2.26 4
## 291 0 1 620 3.45 2
## 292 0 0 800 2.78 2
## 293 0 0 680 3.70 2
## 294 1 0 800 3.97 1
## 295 0 0 480 2.55 1
## 296 0 0 520 3.25 3
## 297 0 0 560 3.16 1
## 298 0 0 460 3.07 2
## 299 0 0 540 3.50 2
## 300 0 0 720 3.40 3
## 301 0 0 640 3.30 2
## 302 0 1 660 3.60 3
## 303 0 1 400 3.15 2
## 304 1 1 680 3.98 2
## 305 0 0 220 2.83 3
## 306 0 0 580 3.46 4
## 307 0 1 540 3.17 1
## 308 0 0 580 3.51 2
## 309 0 0 540 3.13 2
## 310 0 0 440 2.98 3
## 311 0 0 560 4.00 3
## 312 0 0 660 3.67 2
## 313 0 0 660 3.77 3
## 314 0 1 520 3.65 4
## 315 0 0 540 3.46 4
## 316 0 1 300 2.84 2
## 317 0 1 340 3.00 2
## 318 0 1 780 3.63 4
## 319 0 1 480 3.71 4
## 320 0 0 540 3.28 1
## 321 0 0 460 3.14 3
## 322 0 0 460 3.58 2
## 323 0 0 500 3.01 4
## 324 0 0 420 2.69 2
## 325 0 0 520 2.70 3
## 326 1 0 680 3.90 1
## 327 0 0 680 3.31 2
## 328 0 1 560 3.48 2
## 329 0 0 580 3.34 2
## 330 0 0 500 2.93 4
## 331 0 0 740 4.00 3
## 332 0 0 660 3.59 3
## 333 0 0 420 2.96 1
## 334 0 0 560 3.43 3
## 335 0 1 460 3.64 3
## 336 1 1 620 3.71 1
## 337 0 0 520 3.15 3
## 338 0 0 620 3.09 4
20
## 339 0 0 540 3.20 1
## 340 0 1 660 3.47 3
## 341 0 0 500 3.23 4
## 342 0 1 560 2.65 3
## 343 0 0 500 3.95 4
## 344 0 0 580 3.06 2
## 345 0 0 520 3.35 3
## 346 0 0 500 3.03 3
## 347 0 0 600 3.35 2
## 348 0 0 580 3.80 2
## 349 0 0 400 3.36 2
## 350 0 0 620 2.85 2
## 351 1 1 780 4.00 2
## 352 0 0 620 3.43 3
## 353 0 1 580 3.12 3
## 354 0 0 700 3.52 2
## 355 0 1 540 3.78 2
## 356 1 1 760 2.81 1
## 357 0 0 700 3.27 2
## 358 1 0 720 3.31 1
## 359 0 1 560 3.69 3
## 360 0 0 720 3.94 3
## 361 1 1 520 4.00 1
## 362 1 1 540 3.49 1
## 363 0 0 680 3.14 2
## 364 0 0 460 3.44 2
## 365 0 1 560 3.36 1
## 366 0 0 480 2.78 3
## 367 0 0 460 2.93 3
## 368 0 0 620 3.63 3
## 369 1 0 580 4.00 1
## 370 1 0 800 3.89 2
## 371 0 1 540 3.77 2
## 372 0 1 680 3.76 3
## 373 0 1 680 2.42 1
## 374 1 1 620 3.37 1
## 375 0 0 560 3.78 2
## 376 0 0 560 3.49 4
## 377 0 0 620 3.63 2
## 378 1 1 800 4.00 2
## 379 0 0 640 3.12 3
## 380 0 0 540 2.70 2
## 381 0 0 700 3.65 2
## 382 0 1 540 3.49 2
## 383 0 0 540 3.51 2
## 384 1 0 660 4.00 1
## 385 0 1 480 2.62 2
## 386 0 0 420 3.02 1
## 387 1 1 740 3.86 2
## 388 0 0 580 3.36 2
## 389 0 0 640 3.17 2
## 390 0 0 640 3.51 2
## 391 0 1 800 3.05 2
## 392 0 1 660 3.88 2
21
## 393 0 1 600 3.38 3
## 394 0 1 620 3.75 2
## 395 0 1 460 3.99 3
## 396 0 0 620 4.00 2
## 397 0 0 560 3.04 3
## 398 0 0 460 2.63 2
## 399 0 0 700 3.65 2
## 400 0 0 600 3.89 3
- Untuk asisten: pada data pertama, seorang calon mahasiswa dengan GRE sebesar 380, GPA sebesar 3.61,
dan berasal dari kampus yang kurang bergengsi diprediksi tidak lulus, kenyataannya memang tidak lulus.
Namun perhatikan baris kedua. Calon mahasiswa tersebut diprediksi tidak lulus, padahal kenyataannya lulus.
dan seterusnya. Inilah yang dinamakan salah prediksi.
Untuk mengetahui kualitas suatu model, kita dapat membandingkan persentase benar prediksi dari model
ini. Salah satu pendekatan sederhana untuk melakukannya yaitu dengan menggunakan confusion matrix.
Confusion Matrix dapat dibentuk dengan perintah table(nama_tabel_hasilnamak olomp rediksi, namat abelh asilnama_kolom_
Simpan confusion matix dengan nama “cm_probit”
cm_probit <- table(hasil_probit$admit_pred, hasil_probit$admit)
##
## 0 1
## 0 254 97
## 1 19 30
Angka 0 dan 1 pada sisi atas menunjukkan Y aktual Angka 0 dan 1 pada sisi kiri menunjukkan Y prediksi
Keterangan:
• 254 merupakan jumlah calon mahasiswa yang diprediksi tidak lulus (predicted = 0), dan kenyataannya
tidak lulus (actual = 0). Angka ini disebut sebagai “True Negative”
• 97 merupakan jumlah calon mahasiswa yang diprediksi tidak lulus (predicted = 0), tetapi kenyataannya
lulus (actual = 1). Angka ini disebut sebagai “False Negative”
• 19 merupakan jumlah calon mahasiswa yang diprediksi lulus (predicted = 1), tetapi kenyataannya tidak
lulus (actual = 0). Angka ini disebut sebagai “False Positive”
• 30 merupakan jumlah calon mahasiswa yang diprediksi lulus (predicted = 1), dan kenyataannya lulus
(actual = 1). Angka ini disebut sebagai “True Positive”
Silahkan simpan masing - masing data tersebut dengan perintah nama_confusion_matrix[baris,kolom].
Simpan dan tampilkan nilai True Negative dengan nama “TN_probit”
TN_probit <- cm_probit[1, 1]
TN_probit
## [1] 254
Simpan nilai False Negative dengan nama “FN_probit”
FN_probit <- cm_probit[2, 1]
FN_probit
## [1] 19
22
Simpan nilai False Positive dengan nama “FP_probit”
FP_probit <- cm_probit[1, 2]
FP_probit
## [1] 97
Simpan nilai True Positive dengan nama “TP_probit”
TP_probit <- cm_probit[2, 2]
TP_probit
## [1] 30
Hitung nilai akurasi dengan rumus jumlah calon mahasiswa yang benar diprediksi (TRUE) / jumlah seluruh
calon mahasiswa baik yang benar diprediksi (TRUE) maupun yang salah diprediksi (FALSE). Simpan dengan
nama “accuracy_probit” dan tampilkan nilainya.
# Accuracy
accuracy_probit <- (TN_probit + TP_probit) / (TN_probit + FN_probit + FP_probit + TP_probit)
accuracy_probit
## [1] 0.71
Kesimpulan: - Model probit berhasil benar memprediksi kelulusan calon mahasiswa berdasarkan GRE, GPA,
dan Rank dengan tingkat akurasi sebesar 71%
Model Logit
Membuat Model Logit
Model probit dapat dibentuk dengan menggunakan perintah glm(Y ~ X1 + X2 + X3, fam-
ily=binomial(link=“logit”), data=nama_data). Simpan model probit ini dengan nama “logit”
logit <- glm(admit ~ gre + gpa + factor(rank),
family=binomial(link="logit"),
data=data_graduate)
##
## Call:
## glm(formula = admit ~ gre + gpa + factor(rank), family = binomial(link = "logit"),
## data = data_graduate)
##
## Deviance Residuals:
## Min 1Q Median 3Q Max
## -1.6268 -0.8662 -0.6388 1.1490 2.0790
##
## Coefficients:
## Estimate Std. Error z value Pr(>|z|)
## (Intercept) -3.989979 1.139951 -3.500 0.000465 ***
## gre 0.002264 0.001094 2.070 0.038465 *
## gpa 0.804038 0.331819 2.423 0.015388 *
## factor(rank)2 -0.675443 0.316490 -2.134 0.032829 *
## factor(rank)3 -1.340204 0.345306 -3.881 0.000104 ***
## factor(rank)4 -1.551464 0.417832 -3.713 0.000205 ***
## ---
23
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## (Dispersion parameter for binomial family taken to be 1)
##
## Null deviance: 499.98 on 399 degrees of freedom
## Residual deviance: 458.52 on 394 degrees of freedom
## AIC: 470.52
##
## Number of Fisher Scoring iterations: 4
## admit_pred_probit
## 1 0
## 2 1
predict_logit <- [Link](admit_pred_logit = [Link](predict(logit, data_baru, "response")>0.5))
predict_logit
## admit_pred_logit
## 1 0
24
## 2 1
- Untuk asisten: 3. buat tabel perbandingan hasil prediksi probit, hasil prediksi logit, dan data baru.
perbandingan_prediksi <- bind_cols(predict_probit, predict_logit, data_baru)
perbandingan_prediksi
25