Workshop R - Data Cleaning, Linear Regression, & Logistics Regression

Ilham F.N. & Niken Prasasti
November, 2017

Apa itu R?

  • R adalah sebuah bahasa dan lingkungan pemrograman untuk tujuan komputasi statistik dan grapfis. Ini adalah proyek GNU yang mirip dengan bahasa S yang dimana itu pertama kali dikembangkan di Bell laboratories (sebelum menjadi AT&T)
  • Pengembang: Ross Ihaka and Robert Gentleman, University of Auckland, New Zealand and the R foundation
  • Tahun diluncurkan : 1995

Kenapa R?

Tujuan dan kegunaan

  • R sudah lama digunakan didalam bidang akademik dan riset. Saat ini R juga sudah mulai digunakan dalam kegiatan komersial juga. Sebagai perbandingan, R merupakan SAS versi open-source
  • R memiliki kemampuan visualisasi yang sangat baik karena ditunjang oleh berbagai macam package seperti ggplot2, googleVis, and rCharts
  • Karena R merupakan program yang open source sehingga tersedia banyak resource dan komunitas
  • Belajar seluk beluk dan proses statistik secara rinci, ketimbang menggunakan satu solusi untuk semua
  • Replikasi dan transparansi analisis data

Topik hari ini

Pengenalan RStudio dan R

  • Elemen-elemen RStudio
  • Objek dasar pada R
  • Perintah dasar pada R

Data Cleaning

  • Import data
  • Melihat data
  • Deskripsi data
  • Imputasi data

Regresi Linear

  • Perintah dasar regresi linear
  • Contoh aplikasi

Regresi Logistik

  • Perintah dasar regresi logistik
  • Contoh aplikasi

Pengenalan RStudio

alt text

Objek dasar di dalam R

Tipe objek (class)

  • numeric (real number)
  • integer
  • complex
  • logical (true/false)
  • character
Objek class yang sama Kelas objek yang berbeda Dimensi
Vector yes
List yes
Matrix yes yes
Data frame yes yes

Perintah dasar pada R

Perintah dasar pada R

  • Command. Command pada R bisa langsung dituliskan pada script atau console. Hasil dari command tersebut akan dituliskan setelah menekan enter (pada console) atau ctrl + r (pada script)
sum(1:5)
[1] 15
  • Assignment notation. Notasi untuk menyimpan suatu hasil proses kedalam objek menggunakan notasi <- atau=
data <- sum(1:5)
data
[1] 15

Perintah dasar pada R

  • Dokumentasi command. Seringkali kita lupa atau tidak kurang memahami command yang akan kita tulis. R menyediakan dokumentasi untuk setiap command yang ada
?read.csv
  • Membuat objek vector
x <- vector("numeric", length = 10)
x
 [1] 0 0 0 0 0 0 0 0 0 0

Perintah dasar pada R

  • Membuat objek list
y <- list(TRUE, 1, "a")
y
[[1]]
[1] TRUE

[[2]]
[1] 1

[[3]]
[1] "a"
  • Menghapus objek. R tidak secara langsung menghapus objek yang sudah tidak digunakan. Maka, harus menggunakan command yang spesifik untuk menghapus objek tersebut dengan command rm(object) rm(x)

Data Cleaning

Data Cleaning

Proses ini merupakan tahap awal yang penting sebelum mulai bekerja dengan bahasa R, karena kita harus mempersiapkan data sebelum dapat dianailisis lebih lanjut. Proses yang perlu kita ketahui diantaranya adalah

  • Import data
  • Melihat data secara sekilas
  • Mengetahui jenis objek
  • Memberi nama variabel
  • Mengetahui apakah ada data yang hilang atau tidak lengkap
  • Deskripsi dan visualisasi data

Data Cleaning

Import data. R bisa import berbagai jenis data, diantaranya adalah file dengan ekstensi .csv, .xlsx, .txt, hingga .sav. Untuk saat ini kita akan mengimport file .csv

data <- read.csv(file = "file location", header = TRUE)
  • atau kita dapat menggunakan fitur yang ada di RStudio File> Import Dataset. kemudian pilih bentuk data yang ada inginkan

Data Cleaning

Melihat data. Untuk dapat melihat sekilas data, kita dapat menggunakan command head(data) atau tail(data)

head(mtcars)
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

Data Cleaning

Memeriksa data yang hilang. R sangat sensitif pada data, sehingga dalam setiap proses data yang hilang atau tidak ada harus diperlakukan secara khusus. Oleh karena proses mengetahui apakah dalam data kita ada yang hilang atau tidak merupakan hal yang penting.

colSums(is.na(mtcars))
 mpg  cyl disp   hp drat   wt qsec   vs   am gear carb 
   0    0    0    0    0    0    0    0    0    0    0 

Data Cleaning

Mengetahui jenis objek Mengetahui bentuk objek yang kita kerjakan adalah hal yang sangat penting karena berbagai macam fungsi di R memiliki syarat spesifik untuk menggunakan jenis objek tertentu. Fungsi yang dapat digunakan untuk ini adalah class(object)

class(mtcars)
[1] "data.frame"

Data Cleaning

Menggabungkan kolom dan baris Kita dapat menggabungkan kolom yang memiliki jumlah baris yang sama dengan command cbind dan baris yang memiliki kolom yang sama dengan rbind

b <- matrix(c(2, 4, 3, 1, 5, 7), nrow = 3)
c <- matrix(c(7,4,2), nrow = 3)
d <- matrix(c(6, 2), nrow = 1)
b
     [,1] [,2]
[1,]    2    1
[2,]    4    5
[3,]    3    7
c
     [,1]
[1,]    7
[2,]    4
[3,]    2
d
     [,1] [,2]
[1,]    6    2
cbind(b, c)
     [,1] [,2] [,3]
[1,]    2    1    7
[2,]    4    5    4
[3,]    3    7    2
rbind(b, d)
     [,1] [,2]
[1,]    2    1
[2,]    4    5
[3,]    3    7
[4,]    6    2

Data Cleaning

Subsetting data Untuk mempercepat pemrosesan data, kadang kita tidak membutuhkan seluruh data yang ada pada data.frame. Maka kita dapat membuat objek baru dengan mengambil bagian yang diinginkan.

data(mtcars)
head(mtcars)
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
sub_mtcars <- mtcars[  ,1:3]
head(sub_mtcars)
                   mpg cyl disp
Mazda RX4         21.0   6  160
Mazda RX4 Wag     21.0   6  160
Datsun 710        22.8   4  108
Hornet 4 Drive    21.4   6  258
Hornet Sportabout 18.7   8  360
Valiant           18.1   6  225
sub_mtcars2 <- mtcars[1:3, ]
sub_mtcars2
               mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4     21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710    22.8   4  108  93 3.85 2.320 18.61  1  1    4    1

Data Cleaning

Memberi nama variabel Data yang Anda import memiliki kemungkin memiliki nama yang kurang efisien untuk digunakan dalam pemrograman R. Hal itu dapat terjadi karena nama yang terlalu panjang, dan membingungkan. Sehingga ada kalanya kita harus merubah nama variabel yang ada.

data <- data.frame(1:3, 4:6, 7:9)
data
  X1.3 X4.6 X7.9
1    1    4    7
2    2    5    8
3    3    6    9
names(data) <- c("alpha", "gamma", "beta")
data
  alpha gamma beta
1     1     4    7
2     2     5    8
3     3     6    9

Data Cleaning

Melihat dimensi objek Jika objek berupa matrix atau data.frame maka ada dimensi yang harus kita ketahui mengenai objek tersebut. Fungsi itu dapat dilakukan dengan menggunakan command ncol(object) , nrow(object), dim(object)

ncol(mtcars)
[1] 11
nrow(mtcars)
[1] 32
dim(mtcars)
[1] 32 11

Data Cleaning

Tabel kontigensi Dalam melihat data, seringkali kita ingin melihat ringkasan data dalam bentuk kontigensi tabel untuk memudahkan kita. Ini dapat dilakukan dengan menggunakan fungsi table(object)

table(mtcars$cyl)

 4  6  8 
11  7 14 
table(mtcars$cyl, mtcars$gear)

     3  4  5
  4  1  8  2
  6  2  4  1
  8 12  0  2

Data Cleaning

Histogram

hist(mtcars$drat, xlab = "drat", main = "Histogram data mtcars", col = "red")

plot of chunk unnamed-chunk-14

Data Cleaning

Scatter plot

plot(mtcars$mpg ~ mtcars$drat, main = "Scatter Plot of mtcars", xlab = "drat", ylab = "mpg")

plot of chunk unnamed-chunk-15

Data Cleaning

Density

plot(density(mtcars$drat), xlab = "drat", main = "Distribution of drat mtcars")

plot of chunk unnamed-chunk-16

Data Cleaning

Boxplot

boxplot(mtcars$drat ~ mtcars$cyl, main = "Boxplot of mtcars", xlab = "Cylinder", ylab = "drat")

plot of chunk unnamed-chunk-17

Let's Practice

Let's practice

  1. Bersihkan environment R Anda dengan command rm(list = ls())
  2. Buat variabel vector bernama x dan y dimana masing-masing berisi objek numerik 1 sampai dengan 5
  3. Buat variabel list bernama z yang berisi objek logical, numeric, character, complex, dan integer dengan urutan tersebut
  4. Buat variabel matrix bernama w yang berdimensi 2 x 5 dengan menggabungkan vector x dan y
  5. Buat variabel matrix bernama q yang berdimensi 5 x 2 dengan menggabungkan vector x dan y
  6. Import data dan buat kesimpulan mengenai data tersebut

Regresi Linear

Regresi Linear

  1. Cek asumsi dasar
  2. Model linear
  3. Menilai fit model

Regresi Linear: Cek asumsi dasar

  • Normalitas
    • Analisis grafis
    • Kurtosis dan skewness
    • Tes Kolmogorov-smirnov
  • Heteroskedastisitas
    • Analisis grafis
    • Tes Breush-pagan
  • Multikolinearitas
    • Analisis residual
    • VIF
  • Linearitas
    • Analisis residual
    • Analisis grafis

Regresi Linear

  • Install package yang diperlukan
install.packages("corrplot")
install.packages("car") 
  • Mengaktifkan package yang akan digunakan
library(car) 
library(corrplot)
library(moments)
library(e1071)

Regresi Linear: Import data

  • Import data
hbat <- read.csv("hbat.csv", header = TRUE)
data_hbat <- hbat[8:24]
head(hbat)
  X id               x1                 x2               x3
1 1  1     1 to 5 years  Magazine industry     Large (500+)
2 2  2     Over 5 years Newsprint industry Small (0 to 499)
3 3  3     Over 5 years  Magazine industry     Large (500+)
4 4  4 Less than 1 year Newsprint industry     Large (500+)
5 5  5     1 to 5 years  Magazine industry     Large (500+)
6 6  6 Less than 1 year Newsprint industry Small (0 to 499)
                     x4                      x5  x6  x7  x8  x9 x10 x11
1 Outside North America      Direct to customer 8.5 3.9 2.5 5.9 4.8 4.9
2     USA/North America Indirect through broker 8.2 2.7 5.1 7.2 3.4 7.9
3 Outside North America      Direct to customer 9.2 3.4 5.6 5.6 5.4 7.4
4 Outside North America Indirect through broker 6.4 3.3 7.0 3.7 4.7 4.7
5     USA/North America      Direct to customer 9.0 3.4 5.2 4.6 2.2 6.0
6 Outside North America Indirect through broker 6.5 2.8 3.1 4.1 4.0 4.3
  x12 x13 x14 x15 x16 x17 x18 x19 x20 x21  x22                    x23 X24
1 6.0 6.8 4.7 4.3 5.0 5.1 3.7 8.2 8.0 8.4 65.1    Yes, would consider   2
2 3.1 5.3 5.5 4.0 3.9 4.3 4.9 5.7 6.5 7.5 67.1 No, would not consider   1
3 5.8 4.5 6.2 4.6 5.4 4.0 4.5 8.9 8.4 9.0 72.1    Yes, would consider   3
4 4.5 8.8 7.0 3.6 4.3 4.1 3.0 4.8 6.0 7.2 40.1 No, would not consider   1
5 4.5 6.8 6.1 4.5 4.5 3.5 3.5 7.1 6.6 9.0 57.1 No, would not consider   2
6 3.7 8.5 5.1 9.5 3.6 4.7 3.3 4.7 6.3 6.1 50.1 No, would not consider   3
head(data_hbat)
   x6  x7  x8  x9 x10 x11 x12 x13 x14 x15 x16 x17 x18 x19 x20 x21  x22
1 8.5 3.9 2.5 5.9 4.8 4.9 6.0 6.8 4.7 4.3 5.0 5.1 3.7 8.2 8.0 8.4 65.1
2 8.2 2.7 5.1 7.2 3.4 7.9 3.1 5.3 5.5 4.0 3.9 4.3 4.9 5.7 6.5 7.5 67.1
3 9.2 3.4 5.6 5.6 5.4 7.4 5.8 4.5 6.2 4.6 5.4 4.0 4.5 8.9 8.4 9.0 72.1
4 6.4 3.3 7.0 3.7 4.7 4.7 4.5 8.8 7.0 3.6 4.3 4.1 3.0 4.8 6.0 7.2 40.1
5 9.0 3.4 5.2 4.6 2.2 6.0 4.5 6.8 6.1 4.5 4.5 3.5 3.5 7.1 6.6 9.0 57.1
6 6.5 2.8 3.1 4.1 4.0 4.3 3.7 8.5 5.1 9.5 3.6 4.7 3.3 4.7 6.3 6.1 50.1

Regresi Linear: Normalitas

  • QQ plot membuat QQ plot secara 2 tahap. Pertama membuat titik, kemudian membuat harusnya jika data itu normal
qqnorm(hbat$x9)
qqline(hbat$x9, col = "red")

plot of chunk unnamed-chunk-20

Regresi Linear: Normalitas

  • Kolmogorov-smirnov
ks.test(hbat$x9, "pnorm", mean(hbat$x9), sd(hbat$x9), alternative = "two.sided")

    One-sample Kolmogorov-Smirnov test

data:  hbat$x9
D = 0.051072, p-value = 0.9567
alternative hypothesis: two-sided

Regresi Linear: Normalitas

  • Kurtosis
library(e1071)
kurtosis(hbat$x9, type = 2)
[1] -0.5858665
  • Skewness
skewness(hbat$x9, type = 2)
[1] -0.1358107

Regresi Linear: Correlation

Sebelum kita membuat model linear kita perlu melihat korelasi dari data yang kita punya menggunakan package corrplot. Dengan anggapan bahwa penelitia tidak punya teori dasar untuk kasus ini.

library(corrplot)
M <- cor(data_hbat)
corrplot(M, method = "number")

plot of chunk unnamed-chunk-24

Regresi Linear: Membuat model linear

Kita akan membuat model regresi linear dengan variabel dependen satisfaction (X19), dan variabel independen complaint resolution (X9), sales force image (X12), dan delivery speed (X18). Command lm digunakan di dalam R untuk membuat model linear.

\[ X_{19} = X_9 + X_{12} + X_{18} \]

lm(y ~ x1 + x2 + x3, data = data)
mod1 <- lm(x19 ~ x18 + x9 + x12, data = data_hbat)

Regresi Linear: Melihat hasil regresi linear

summary(mod1)

Call:
lm(formula = x19 ~ x18 + x9 + x12, data = data_hbat)

Residuals:
     Min       1Q   Median       3Q      Max 
-2.02354 -0.66848 -0.01179  0.73972  1.60653 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept)  1.83021    0.54830   3.338  0.00120 ** 
x18          0.18057    0.23493   0.769  0.44401    
x9           0.41548    0.14120   2.943  0.00408 ** 
x12          0.41480    0.08293   5.002 2.56e-06 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.8515 on 96 degrees of freedom
Multiple R-squared:  0.505, Adjusted R-squared:  0.4895 
F-statistic: 32.65 on 3 and 96 DF,  p-value: 1.238e-14

Regresi Linear: Melihat hasil regresi linear

Untuk hasil yang lebih detail dilihat pada model dengan mod diikuti dengan lambang $ kemudian pilih objek apa yang ingin anda lihat

mod1$coefficients
(Intercept)         x18          x9         x12 
  1.8302133   0.1805684   0.4154849   0.4148016 
mod1$call
lm(formula = x19 ~ x18 + x9 + x12, data = data_hbat)

Regresi Linear: Heteroskedastisitas dan Multikolinearitas

Breusch-Godfrey test

library(lmtest)
bptest(mod1)

    studentized Breusch-Pagan test

data:  mod1
BP = 3.0805, df = 3, p-value = 0.3794

VIF

library(car)
vif(mod1)
     x18       x9      x12 
4.064678 3.974759 1.079734 

Regresi Linear: Analisis grafis

plot(mod1, pch=16, which=1)

plot of chunk unnamed-chunk-31

Regresi Logistik

Regresi Logistik

  • Install package yang diperlukan install.packages("modEVA")

Regresi Logistik

  • Comparison with multiple regression
Multiple Regression Logistics Regression
Total sum of squares -2LL of Base model
Error sum of squares -2LL of proposed model
Regression sum of squares Difference of -LL base and proposed model
F test of model fit Chi-square test of -2LL difference
Coefficient of determination “Pseudo” R2^ measure

Regresi Logistik

\[ Logit_i = ln \left( \frac{prob_{event}}{1 - prob_{event}} \right) = b_0 + b_1X_1 + ... +b_nX_n \]

\[ Odds_i = \left( \frac{prob_{event}}{1 - prob_{event}} \right) = e^{b_0 + b_1X_1 + ... +b_nX_n} \]

Regresi Logistik

Kita akan menggunakan data yang sama yaitu hbat. Pertama kita akan mengidentifikasi variabel mana yang mungkin digunakan di dalam regresi logistik. Untuk dependen variabel kita akan mencari variabel yang bersifat biner. Kita akan melihat berapa tingkat faktor yang ada di dalam data dengan fungsi str.

str(hbat)
'data.frame':   100 obs. of  26 variables:
 $ X  : int  1 2 3 4 5 6 7 8 9 10 ...
 $ id : int  1 2 3 4 5 6 7 8 9 10 ...
 $ x1 : Factor w/ 3 levels "1 to 5 years",..: 1 3 3 2 1 2 2 1 1 2 ...
 $ x2 : Factor w/ 2 levels "Magazine industry",..: 1 2 1 2 1 2 2 1 2 1 ...
 $ x3 : Factor w/ 2 levels "Large (500+)",..: 1 2 1 1 1 2 1 1 1 1 ...
 $ x4 : Factor w/ 2 levels "Outside North America",..: 1 2 1 1 2 1 1 1 1 1 ...
 $ x5 : Factor w/ 2 levels "Direct to customer",..: 1 2 1 2 1 2 2 2 2 2 ...
 $ x6 : num  8.5 8.2 9.2 6.4 9 6.5 6.9 6.2 5.8 6.4 ...
 $ x7 : num  3.9 2.7 3.4 3.3 3.4 2.8 3.7 3.3 3.6 4.5 ...
 $ x8 : num  2.5 5.1 5.6 7 5.2 3.1 5 3.9 5.1 5.1 ...
 $ x9 : num  5.9 7.2 5.6 3.7 4.6 4.1 2.6 4.8 6.7 6.1 ...
 $ x10: num  4.8 3.4 5.4 4.7 2.2 4 2.1 4.6 3.7 4.7 ...
 $ x11: num  4.9 7.9 7.4 4.7 6 4.3 2.3 3.6 5.9 5.7 ...
 $ x12: num  6 3.1 5.8 4.5 4.5 3.7 5.4 5.1 5.8 5.7 ...
 $ x13: num  6.8 5.3 4.5 8.8 6.8 8.5 8.9 6.9 9.3 8.4 ...
 $ x14: num  4.7 5.5 6.2 7 6.1 5.1 4.8 5.4 5.9 5.4 ...
 $ x15: num  4.3 4 4.6 3.6 4.5 9.5 2.5 4.8 4.4 5.3 ...
 $ x16: num  5 3.9 5.4 4.3 4.5 3.6 2.1 4.3 4.4 4.1 ...
 $ x17: num  5.1 4.3 4 4.1 3.5 4.7 4.2 6.3 6.1 5.8 ...
 $ x18: num  3.7 4.9 4.5 3 3.5 3.3 2 3.7 4.6 4.4 ...
 $ x19: num  8.2 5.7 8.9 4.8 7.1 4.7 5.7 6.3 7 5.5 ...
 $ x20: num  8 6.5 8.4 6 6.6 6.3 7.8 5.8 7.5 5.9 ...
 $ x21: num  8.4 7.5 9 7.2 9 6.1 7.2 7.7 8.2 6.7 ...
 $ x22: num  65.1 67.1 72.1 40.1 57.1 50.1 41.1 56.1 56.1 59.1 ...
 $ x23: Factor w/ 2 levels "No, would not consider",..: 2 1 2 1 1 1 1 1 2 1 ...
 $ X24: int  2 1 3 1 2 3 1 3 3 2 ...

Regresi Logistik

Setelah dianalisis, kita dapat menggunakan variabel \( X_4 \) (region of the customer location) sebagai variabel dependen. Tujuan dari analisis ini adalah mencari variabel yang dapat memprediksi region lokasi customer. Model ini berangkat dengan menggunakan variabel \( X_{13} \) (competitive pricing), dan \( X_{17} \) (price flexibility).

Dalam R regresi logistik dapat dilakukan dengan fungsi glm

glm(formula, data = data, family = binomial)

Regresi Logistik

mylogit <- glm(x4 ~ x13 + x17, data = hbat, family = binomial)
summary(mylogit)

Call:
glm(formula = x4 ~ x13 + x17, family = binomial, data = hbat)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.4354  -0.4569  -0.1785   0.6381   1.9908  

Coefficients:
            Estimate Std. Error z value Pr(>|z|)    
(Intercept)  10.1888     1.9583   5.203 1.96e-07 ***
x13          -0.6332     0.2162  -2.929   0.0034 ** 
x17          -1.4755     0.3783  -3.900 9.62e-05 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 133.750  on 99  degrees of freedom
Residual deviance:  74.927  on 97  degrees of freedom
AIC: 80.927

Number of Fisher Scoring iterations: 6

Regresi Logistik

Regresi logistik tidak memiliki R2, karena itu sebagai gantinya beberapa peneliti mengajukan indikator yang disebut sebagai “pseudo” R2. Indikator tersebut ada di dalam package modEVA

library(modEvA)
RsqGLM(mylogit)
$CoxSnell
[1] 0.444687

$Nagelkerke
[1] 0.6029672

$McFadden
[1] 0.4397945

$Tjur
[1] 0.5001888

$sqPearson
[1] 0.4965371

Regresi Logistik

anova(mylogit, test = "Chisq")
Analysis of Deviance Table

Model: binomial, link: logit

Response: x4

Terms added sequentially (first to last)

     Df Deviance Resid. Df Resid. Dev  Pr(>Chi)    
NULL                    99    133.750              
x13   1   33.188        98    100.562 8.367e-09 ***
x17   1   25.634        97     74.927 4.126e-07 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Regresi Logistik

HLfit(model = mylogit, bin.method = "quantiles")

plot of chunk unnamed-chunk-36

$bins.table
     BinCenter NBin    BinObs     BinPred BinObsCIlower BinObsCIupper
1  0.006313888   10 0.0000000 0.007359984    0.00000000     0.3084971
2  0.021917919   10 0.0000000 0.021015431    0.00000000     0.3084971
3  0.052878424    9 0.0000000 0.051440760    0.00000000     0.3362671
4  0.096768023   11 0.0000000 0.095874737    0.00000000     0.2849142
5  0.174170827   10 0.3000000 0.171581105    0.06673951     0.6524529
6  0.414853510   10 0.4000000 0.434686872    0.12155226     0.7376219
7  0.667799911    9 0.8888889 0.655954883    0.51750349     0.9971909
8  0.701750940   10 0.7000000 0.706767287    0.34754715     0.9332605
9  0.815911730   10 0.7000000 0.812164678    0.34754715     0.9332605
10 0.914020546   11 0.9090909 0.913005777    0.58722008     0.9977010

$chi.sq
[1] 6.14535

$DF
[1] 8

$p.value
[1] 0.6309544

$RMSE
[1] 0.9383523

Terima kasih