0% menganggap dokumen ini bermanfaat (0 suara)
83 tayangan69 halaman

Modul Dasar Pemrograman R dan Statistika

Dokumen ini adalah modul pembelajaran tentang ekonometrika dan pemrograman R yang mencakup pengenalan dasar pemrograman R, tipe data, struktur data, serta analisis statistika dasar dan regresi linier. Penulis, Dian Ramadhani, menjelaskan cara menggunakan RStudio Cloud, perintah dasar, dan pengolahan data menggunakan paket R. Modul ini juga mencakup contoh kode dan visualisasi data menggunakan histogram dan scatter plot.

Diunggah oleh

kaiabriona
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
83 tayangan69 halaman

Modul Dasar Pemrograman R dan Statistika

Dokumen ini adalah modul pembelajaran tentang ekonometrika dan pemrograman R yang mencakup pengenalan dasar pemrograman R, tipe data, struktur data, serta analisis statistika dasar dan regresi linier. Penulis, Dian Ramadhani, menjelaskan cara menggunakan RStudio Cloud, perintah dasar, dan pengolahan data menggunakan paket R. Modul ini juga mencakup contoh kode dan visualisasi data menggunakan histogram dan scatter plot.

Diunggah oleh

kaiabriona
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Modul Lab

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] "nama saya Dian"

1
Modul 1.2. Dasar - Dasar Pemrograman R

Dian Ramadhani

3/18/2021

Dasar Dasar Pemrograman R


Pada modul kali ini kita akan belajar menggunakan R Studio Cloud. Kita akan memproduksi dokumen
pertama yang saya tulis menggunakan R Studio Cloud.
Perintah paling sederhana yang bisa dilakukan yaitu perintah untuk mencetak kata “Hello World”. Perintah
“cetak” dalam bahasa R yaitu print.
print("Hello World")

## [1] "Hello World"


Kita juga dapat melakukan perhitungan menggunakan bahasa R.
Gunakan + untuk penambahan
1+1

## [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")

Kita juga dapat menampilkan isi dari vektor fakultas


print(vector_fakultas)

## [1] "FEB" "FKB" "FIK" "FIT"


Apabila ingin mengetahui tipe data dalam vektor ini, dapat menggunakan perintah
class(vector_fakultas)

## [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)

## [,1] [,2] [,3] [,4]


## [1,] 1 4 7 10

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]")

Kita dapat menampilkan data apartemen dengan perintah berikut.


print(df_apartemen)

## # 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

Ukuran Letak Data


Kuartil Kuartil dapat dihitung dengan perintah: quantile(nama_data_frame$nama_kolom)
Temukan kuartil nilai tafsir!
quantile(nilai_siswa$nilai_tafsir)

## 0% 25% 50% 75% 100%


## 55.0 62.5 70.0 75.0 85.0

Percentile Percentile dapat dihitung dengan perintah: quantile(nama_data_frame$nama_kolom, c(%, %,


%))
Temukan percentil nilai bahasa (30%, 80%, 90%)
quantile(nilai_siswa$nilai_bahasa, c(0.3, 0.8, 0.9))

## 30% 80% 90%


## 61 80 83

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)

## Min. 1st Qu. Median Mean 3rd Qu. Max.


## 50.00 60.00 65.00 68.67 77.50 85.00

Ukuran Penyebaran Data


Range Range merupakan jarak antara nilai data terkecil dan nilai data terbesar. Dengan demikian kita
dapat menggunakan perintah max(nama_data_framenamak olom) − min(namad ataf ramenama_kolom)
Temukan range 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

Varians Varians dapat dicari dengan menggunakan perintah var(nama_data_frame$nama_kolom)


Hitunglah varians nilai bahasa!

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")

## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/4.0'


## (as 'lib' is unspecified)
library(readxl)

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
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)

Tampilkan fungsi regresi tersebut!


print(fungsi_regresi)

##
## 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

Uji Model (Koefisien Determinasi), Uji F (ANOVA), Uji T (Koefisien)


Menampilkan hasil uji dengan perintah summary(nama_fungsi)
summary(fungsi_regresi)

##
## 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|)

Uji Asumsi Klasik


Uji Normalitas dan Heteroskedastisitas
Normalitas dan heteroskedastisitas dapat dilihat melalui sebaran data pada grafik hasil pemodelan regresi
linier. Untuk menampilkan grafik ini, kita dapat menggunakan perintah plot(nama_fungsi)
plot(fungsi_regresi)

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

0.00 0.05 0.10 0.15 0.20 0.25

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")

## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/4.0'


## (as 'lib' is unspecified)
Silahkan aktifkan package tersebut!
library(lmtest)

## Loading required package: zoo


##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## [Link], [Link]
Uji Durbin Watson dapat dilakukan dengan perintah dwtest(nama_fungsi)
dwtest(fungsi_regresi)

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

Prediksi Banyak Data


Untuk melakukan prediksi, kita harus mempersiapkan data yang akan diprediksi.
Buatlah data frame bernama “nilai_baru” berisi 5 nilai bahasa arab yang akan diprediksi
nilai_baru <- [Link](nilai_bahasa = c(50, 70, 90, 100, 65))

Tampilkan data frame tersebut!


nilai_baru

## 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")

## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/4.0'


## (as 'lib' is unspecified)
library(readxl)

teknik_menulis_kritis <- read_xlsx("data/teknik_menulis_kritis.xlsx")

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_

Tampilkan fungsi regresi tersebut!


print(fungsi_regresi_berganda)

##
## 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

Uji Model (Koefisien Determinasi), Uji F (ANOVA), Uji T (Koefisien)


Menampilkan hasil uji dengan perintah summary(nama_fungsi)
summary(fungsi_regresi_berganda)

##
## 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|)

Uji Asumsi Klasik


Uji Normalitas dan Heteroskedastisitas
Normalitas dan heteroskedastisitas dapat dilihat melalui sebaran data pada grafik hasil pemodelan regresi
linier. Untuk menampilkan grafik ini, kita dapat menggunakan perintah plot(nama_fungsi)
plot(fungsi_regresi_berganda)

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

0.0 0.1 0.2 0.3 0.4 0.5

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")

## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/4.0'


## (as 'lib' is unspecified)
Silahkan aktifkan package tersebut!
library(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)

## Tolerance and Variance Inflation Factor


## ---------------------------------------
## Variables Tolerance VIF
## 1 kosa_kata 0.5967205 1.675826
## 2 pemahaman_tema 0.1729353 5.782508
## 3 tata_bahasa 0.1735570 5.761797
##
##
## Eigenvalue and Condition Index
## ------------------------------
## Eigenvalue Condition Index intercept kosa_kata pemahaman_tema
## 1 3.931345977 1.000000 0.001043988 0.0012103422 0.00103242
## 2 0.051150711 8.766875 0.127392502 0.0174574011 0.17567531
## 3 0.013535930 17.042236 0.255720814 0.9810578874 0.01256405
## 4 0.003967382 31.478834 0.615842697 0.0002743693 0.81072822
## tata_bahasa
## 1 0.0003755678
## 2 0.0013258103
## 3 0.0339140443
## 4 0.9643845777

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")

## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/4.0'


## (as 'lib' is unspecified)
Silahkan aktifkan package tersebut!

6
library(lmtest)

## Loading required package: zoo


##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## [Link], [Link]
Uji Durbin Watson dapat dilakukan dengan perintah dwtest(nama_fungsi)
dwtest(fungsi_regresi_berganda)

##
## 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")

## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/4.0'


## (as 'lib' is unspecified)
[Link]("plm")

## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/4.0'


## (as 'lib' is unspecified)
[Link]("GGally")

## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/4.0'


## (as 'lib' is unspecified)
[Link]("lmtest")

## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/4.0'


## (as 'lib' is unspecified)
[Link]("sandwich")

## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/4.0'


## (as 'lib' is unspecified)

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)

## Loading required package: ggplot2


## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
library(lmtest)

## Loading required package: zoo


##
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
##
## [Link], [Link]
library(sandwich)

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]")

Tampilkan data yang telah diimpor.


print(data_produc)

## # 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)

## state year pcap hwy


## Length:816 Min. :1970 Min. : 2627 Min. : 1827
## Class :character 1st Qu.:1974 1st Qu.: 7097 1st Qu.: 3858
## Mode :character Median :1978 Median : 17572 Median : 7556
## Mean :1978 Mean : 25037 Mean :10218
## 3rd Qu.:1982 3rd Qu.: 27692 3rd Qu.:11267
## Max. :1986 Max. :140217 Max. :47699
## water util pc gsp
## Min. : 228.5 Min. : 538.5 Min. : 4053 Min. : 4354
## 1st Qu.: 764.5 1st Qu.: 2488.3 1st Qu.: 21651 1st Qu.: 16502
## Median : 2266.5 Median : 7008.8 Median : 40671 Median : 39987
## Mean : 3618.8 Mean :11199.5 Mean : 58188 Mean : 61014
## 3rd Qu.: 4318.7 3rd Qu.:11598.5 3rd Qu.: 64796 3rd Qu.: 68126
## Max. :24592.3 Max. :80728.1 Max. :375342 Max. :464550
## emp unemp
## Min. : 108.3 Min. : 2.800
## 1st Qu.: 475.0 1st Qu.: 5.000
## Median : 1164.8 Median : 6.200
## Mean : 1747.1 Mean : 6.602
## 3rd Qu.: 2114.1 3rd Qu.: 7.900
## Max. :11258.0 Max. :18.000
Telusuri hubungan antara variabel - variabel yang ada. Gunakan perintah plot(nama_datavariabel1, namad atavariabel2)
untuk memetakan hubungan antara (pcap) dan (gsp).
plot(data_produc$pcap, data_produc$gsp)
4e+05
data_produc$gsp

2e+05
0e+00

0 20000 40000 60000 80000 100000 120000 140000

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

4e+05 Hubungan antara PCAP dan GSP


Gross State Product

2e+05
0e+00

0 20000 40000 60000 80000 100000 120000 140000

Public Capital Stock


Ganti warna dengan perintah plot(nama_datavariabel1, namad atavariabel2, xlab=“nama_sumbu_x”,
ylab=“nama_sumbu_y”, main=“judul_tabel”, col=“warna”)
plot(data_produc$pcap, data_produc$gsp, xlab="Public Capital Stock", ylab="Gross State Product", main="H

4
Hubungan antara PCAP dan GSP

4e+05
Gross State Product

2e+05
0e+00

0 20000 40000 60000 80000 100000 120000 140000

Public Capital Stock

Model Regresi Data Panel


Model regresi data panel yang akan dibentuk melibatkan variabel - variabel berikut. Y = gsp (Gross State
Product) X1 = pcap (Public Capital Stock) X2 = pc (Private Capital Stock) X3 = unemp (Unemployment
Rate)

Common Effect Model (CEM)


Model regresi common effect dibentuk dengan perintah plm(Y ~ X1 + X2 + X3 + X4 + X5, data=nama_data,
index=c(“nama_kolom_cross_section”,“nama_kolom_time_series”), model=“pooling”) Simpan model ini
dengan nama “common”
common = plm(gsp ~ pcap + pc + unemp, data=data_produc, index=c("state","year"), model="pooling")

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

Fixed Effect Model (Individual Variation) (FEM)


Model regresi fixed effect dibentuk dengan perintah plm(Y ~ X1 + X2 + X3 + X4 + X5, data=nama_data,
index=c(“nama_kolom_cross_section”,“nama_kolom_time_series”), model=“within”, effect=“individual”)
Simpan model ini dengan nama “fixed”
fixed = plm(gsp ~ pcap + pc + unemp, data=data_produc, index=c("state","year"), model="within", effect="

Tampilkan ringkasan dari model fixed dengan perintah summary(nama_model)


summary(fixed)

## Oneway (individual) effect Within Model


##
## Call:
## plm(formula = gsp ~ pcap + pc + unemp, data = data_produc, effect = "individual",
## model = "within", index = c("state", "year"))
##
## Balanced Panel: n = 48, T = 17, N = 816
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -24143.244 -1808.714 -41.729 1801.515 27304.799
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## pcap -1.1363e-01 8.5063e-02 -1.3358 0.182
## pc 9.0868e-01 1.7007e-02 53.4285 <2e-16 ***
## unemp -1.2272e+03 9.3551e+01 -13.1180 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 1.3289e+11
## Residual Sum of Squares: 1.5857e+10
## R-Squared: 0.88068
## Adj. R-Squared: 0.87288
## F-statistic: 1882.03 on 3 and 765 DF, p-value: < 2.22e-16
Jika kita ingin mengetahui model fixed effect (individual variation) yang dilengkapi dengan dummy vari-
ables, gunakan perintah lm(Y ~ X1 + X2 + X3 + X4 + X5 + factor (nama_kolom_cross_section - 1),
data=nama_data) Simpan model ini dengan nama “fixed_dummy”

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

Random Effect Model (REM)


Model regresi random effect dibentuk dengan perintah plm(Y ~ X1 + X2 + X3 + X4 + X5, data=nama_data,
model=“random”) Simpan model ini dengan nama “random”
random = plm(gsp ~ pcap + pc + unemp, data=data_produc, model = "random")

Tampilkan ringkasan dari model random dengan perintah summary(nama_model)


summary(random)

## Oneway (individual) effect Random Effect Model


## (Swamy-Arora's transformation)
##
## Call:
## plm(formula = gsp ~ pcap + pc + unemp, data = data_produc, model = "random")
##
## Balanced Panel: n = 48, T = 17, N = 816
##
## Effects:
## var [Link] share
## idiosyncratic 20728108 4553 0.237
## individual 66717550 8168 0.763
## theta: 0.866
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -31274.40 -1965.49 -195.84 1558.07 40214.61
##
## Coefficients:
## Estimate Std. Error z-value Pr(>|z|)
## (Intercept) 5.5654e+03 1.7013e+03 3.2713 0.001071 **
## pcap 7.7453e-01 5.6510e-02 13.7062 < 2.2e-16 ***
## pc 7.8498e-01 1.6654e-02 47.1350 < 2.2e-16 ***
## unemp -1.4570e+03 1.0097e+02 -14.4305 < 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

Membandingkan Model Regresi


Chow Test (CEM vs FEM)
Chow test adalah pengujian untuk menentukan model apakah Common Effect (CE) atau Fixed Effect (FE)
yang paling tepat digunakan dalam mengestimasi data panel. Chow Test dapat dijalankan dengan perintah
pFtest(nama_model_fixed, nama_model_common)
pFtest(fixed, common)

##
## 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

Housman Test (FEM vs REM)


Hausman test adalah pengujian statistik untuk memilih apakah model Fixed Effect atau Random Effect
yang paling tepat digunakan. Hausman Test dapat dijalankan dengan perintah phtest(nama_model_fixed,
nama_model_random)
phtest(fixed, random)

##
## 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.

Uji Asumsi Klasik pada Model Regresi Terpilih


Uji Normalitas
Histogram untuk menunjukkan normalitas data dapat ditampilkan dengan perintah hist(nama_model$residuals,
breaks=jumlah_bar) - untuk asisten: silahkan ubah - ubah jumlah barnya
hist(fixed$residuals, breaks = 30)

Histogram of fixed$residuals
200
150
Frequency

100
50
0

−20000 −10000 0 10000 20000 30000

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

−20000 −10000 0 10000 20000 30000

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")]

Tampilkan nilai korelasi antar variabel independen dengan perintah ggpairs(nama_tabel)


ggpairs(var_independen)

11
pcap pc unemp

3e−05

2e−05 Corr: Corr:

pcap
0.865*** 0.184***
1e−05

0e+00

3e+05

2e+05
Corr:

pc
0.177***
1e+05

0e+00

15

unemp
10

0e+00 5e+04 1e+05 0e+00 1e+05 2e+05 3e+05 5 10 15

• Nilai korelasi < 0.90, maka tidak terjadi multikolinearitas


• Jika data terjadi multikolinearitas, maka keluarkan variabel dengan korelasi tinggi

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

0e+00 1e+05 2e+05 3e+05 4e+05

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)

## Oneway (individual) effect Within Model


##
## Call:
## plm(formula = gsp ~ pcap + pc + unemp, data = data_produc, effect = "individual",
## model = "within", index = c("state", "year"))
##
## Balanced Panel: n = 48, T = 17, N = 816
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -24143.244 -1808.714 -41.729 1801.515 27304.799
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## pcap -1.1363e-01 8.5063e-02 -1.3358 0.182
## pc 9.0868e-01 1.7007e-02 53.4285 <2e-16 ***
## unemp -1.2272e+03 9.3551e+01 -13.1180 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 1.3289e+11
## Residual Sum of Squares: 1.5857e+10
## R-Squared: 0.88068
## Adj. R-Squared: 0.87288
## F-statistic: 1882.03 on 3 and 765 DF, p-value: < 2.22e-16

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")

## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/4.0'


## (as 'lib' is unspecified)
[Link]("GGally")

## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/4.0'


## (as 'lib' is unspecified)
[Link]("ResourceSelection")

## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/4.0'


## (as 'lib' is unspecified)
[Link]("dplyr")

## Installing package into '/home/rstudio-user/R/x86_64-pc-linux-gnu-library/4.0'


## (as 'lib' is unspecified)

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)

## Loading required package: ggplot2


## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
library(ResourceSelection)

## ResourceSelection 0.3-5 2019-07-22


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

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")

Tampilkan data yang telah diimpor.

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)

## admit gre gpa rank


## Min. :0.0000 Min. :220.0 Min. :2.260 Min. :1.000
## 1st Qu.:0.0000 1st Qu.:520.0 1st Qu.:3.130 1st Qu.:2.000
## Median :0.0000 Median :580.0 Median :3.395 Median :2.000
## Mean :0.3175 Mean :587.7 Mean :3.390 Mean :2.485
## 3rd Qu.:1.0000 3rd Qu.:660.0 3rd Qu.:3.670 3rd Qu.:3.000
## Max. :1.0000 Max. :800.0 Max. :4.000 Max. :4.000

Membentuk Histogram Sebaran Data


Telusuri sebaran data dari variabel tertentu. Gunakan perintah hist(nama_data$variabel) untuk membentuk
histogram
hist(data_graduate$gpa)

3
Histogram of data_graduate$gpa
80
60
Frequency

40
20
0

2.5 3.0 3.5 4.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")

Sebaran GPA Calon Mahasiswa


80
60
Frequency

40
20
0

2.5 3.0 3.5 4.0

Grade Point Average


Ganti warna dengan perintah hist(nama_data$variabel, xlab=“nama_sumbu_x”, main=“judul_tabel”,

4
col=“warna”)
hist(data_graduate$gpa, xlab="Grade Point Average", main="Sebaran GPA Calon Mahasiswa", col="red")

Sebaran GPA Calon Mahasiswa


80
60
Frequency

40
20
0

2.5 3.0 3.5 4.0

Grade Point Average

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)

Tampilkan ringkasan model dengan perintah summary(nama_model)


summary(probit)

##
## 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

Uji Goodness of fit Model Probit


Hosmer and Lemeshow Test Hosmer and Lemeshow Test adalah uji Goodness of fit test (GoF), yaitu
uji untuk menentukan apakah model yang dibentuk sudah tepat atau tidak. Uji ini dapat dilakukan dengan
perintah [Link](nama_model$y, fitted(nama_model))
[Link](probit$y, fitted(probit))

##
## 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))

Tampilkan data prediksi dengan menggunakan perintah print(nama_data_prediksi)


print(prediksi_probit)

## 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)

Tampilkan data hasil penggabungan dengan menggunakan perintah print(nama_data)


print(hasil_probit)

## admit_pred admit gre gpa rank


## 1 0 0 380 3.61 3
## 2 0 1 660 3.67 3
## 3 1 1 800 4.00 1
## 4 0 1 640 3.19 4
## 5 0 0 520 2.93 4
## 6 0 1 760 3.00 2
## 7 0 1 560 2.98 1
## 8 0 0 400 3.08 2
## 9 0 1 540 3.39 3
## 10 1 0 700 3.92 2
## 11 0 0 800 4.00 4
## 12 0 0 440 3.22 1
## 13 1 1 760 4.00 1
## 14 0 0 700 3.08 2

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)

Tampilkan confusion matrix dengan perintah print(nama_confusion_matrix)


print(cm_probit)

##
## 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)

Tampilkan ringkasan model dengan perintah summary(nama_model)


summary(logit)

##
## 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

Jawab pertanyaan berikut ini


1. Bagaimana goodness of fit model Logit?
2. Bagaimana akurasi model Logit?
3. Berapakah masing - masing nilai TN FN FP TP?
4. Model manakah yang lebih baik?
5. Apa perbedaan kedua model ini?
6. Diketahui beberapa calon mahasiswa memiliki data sebagai berikut:
Mahasiswa Asya memiliki Graduate Record Exam scores sebesar 750, Grade Point Average sebesar 3.7, dan
berasal dari universitas yang bergengsi kurang baik (rank = 3).
Mahasiswa Barda memiliki Graduate Record Exam scores sebesar 600, Grade Point Average sebesar 3.3, dan
berasal dari universitas yang bergengsi sangat baik (rank = 1).
Prediksi kelulusan calon mahasiswa tersebut dengan menggunakan model Probit dan Logit!
Bandingkan hasilnya dengan membuat tabel data baru, hasil prediksi probit, dan hasil prediksi logit!
Berikan kesimpulan!
- untuk asisten - hint:
- Untuk asisten: 1. bentuk dataframe baru berisi data tersebut seperti yang pernah diajarkan pada pertemuan
lab pra uts.
data_baru <- [Link](mahasiswa=c("Asya", "Barda"), gre=c(750, 600), gpa=c(3.7, 3.3), rank=c(3,1))
data_baru

## mahasiswa gre gpa rank


## 1 Asya 750 3.7 3
## 2 Barda 600 3.3 1
- Untuk asisten: 2. prediksi data dengan perintah [Link](nama_kolom_prediksi = [Link](predict(nama_model,
nama_data, “response”)>0.5)). Jangan lupa simpan data tersebut.
predict_probit <- [Link](admit_pred_probit = [Link](predict(probit, data_baru, "response")>0.5))
predict_probit

## 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

## admit_pred_probit admit_pred_logit mahasiswa gre gpa rank


## 1 0 0 Asya 750 3.7 3
## 2 1 1 Barda 600 3.3 1

25

Anda mungkin juga menyukai