Nama Anggota Kelompok: - Erma Shafira Zulfianti (23031554012) - Alin Tifana Safitri (23031554019) - Jesika Trisyanda (23031554228)
Kelas : Analisis Multivariat 2023E UNIVERSITAS NEGERI SURABAYA
Kesehatan janin merupakan salah satu aspek vital dalam dunia kebidanan dan kandungan, karena kondisi janin yang tidak terdeteksi sejak dini dapat menyebabkan risiko serius baik bagi ibu maupun bayi. Oleh karena itu, pemantauan secara berkala selama masa kehamilan menjadi sangat penting untuk mendeteksi kemungkinan adanya kelainan atau komplikasi.
Salah satu metode utama dalam pemantauan kesehatan janin adalah kardiotokografi (CTG), yaitu teknik pencatatan aktivitas detak jantung janin dan kontraksi rahim secara simultan. Hasil dari pemeriksaan CTG menghasilkan berbagai parameter kuantitatif yang dapat dianalisis untuk menilai kondisi janin.
Dalam konteks analisis data, salah satu pendekatan statistik yang dapat digunakan untuk memprediksi tingkat kesehatan janin berdasarkan parameter CTG adalah regresi logistik ordinal. Regresi logistik ordinal merupakan metode analisis yang digunakan ketika variabel dependen (target) memiliki sifat kategori berurutan (ordinal), seperti “Normal”, “Suspect”, dan “Pathological”. Metode ini tidak hanya mempertimbangkan hubungan antara variabel independen dan target, tetapi juga memperhatikan urutan logis dari kategori target tersebut.
Dataset yang digunakan dalam analisis ini merupakan data hasil CTG yang terdiri dari berbagai parameter numerik yang menggambarkan kondisi janin dan aktivitas rahim selama kehamilan. Dataset ini memiliki satu variabel target yaitu fetal_health, yang merupakan variabel ordinal dengan tiga tingkatan.
Penjelasan Tentang Variabel: - Variabel Dependen (fetal_health): Merupakan variabel yang menggambarkan status kesehatan janin, dengan tiga kategori ordinal (Normal, Suspect, Pathological). - Variabel Independen: Merupakan serangkaian variabel fisiologis yang diukur pada janin selama pemeriksaan untuk menentukan pengaruhnya terhadap status kesehatan janin.
data <- read.csv("fetal_health.csv")
data
Membaca dataset CSV berisi informasi kesehatan janin ke dalam variabel data.
Data tersebut terdiri dari 2126 baris dan 22 kolom.
# Mengecek missing values
sum(is.na(data))
## [1] 0
Menghitung jumlah data yang hilang (NA) dalam dataset. Hasil : 0 maka tidak ada nilai kosong dalam dataset.
# Ubah target menjadi faktor ordinal
data$fetal_health <- factor(data$fetal_health,
levels = c(1, 2, 3),
labels = c("Normal", "Suspect", "Pathologic"),
ordered = TRUE)
Variabel target fetal_health diubah dari tipe numerik menjadi faktor ordinal. Proses ini dilakukan dengan mendefinisikan tiga level yaitu 1, 2, dan 3 yang kemudian diberi label deskriptif “Normal”, “Suspect”, dan “Pathologic”.
# Standarisasi semua kolom numerik kecuali 'fetal_health'
data[, -which(names(data) == "fetal_health")] <- scale(data[, -which(names(data) == "fetal_health")])
seluruh variabel numerik dalam dataset, kecuali fetal_health, distandarisasi menggunakan fungsi scale(). Langkah ini bertujuan untuk mengubah distribusi data menjadi berskala standar, yaitu dengan nilai rata-rata nol dan standar deviasi satu. Standarisasi diperlukan untuk memastikan bahwa semua fitur memiliki kontribusi yang seimbang terhadap model dan tidak ada variabel yang mendominasi karena perbedaan skala.
# Korelasi antar variabel prediktor
cor_matrix <- cor(data[, -which(names(data) == "fetal_health")])
round(cor_matrix, 2)
## baseline.value
## baseline.value 1.00
## accelerations -0.08
## fetal_movement -0.03
## uterine_contractions -0.15
## light_decelerations -0.16
## severe_decelerations -0.05
## prolongued_decelerations -0.10
## abnormal_short_term_variability 0.31
## mean_value_of_short_term_variability -0.28
## percentage_of_time_with_abnormal_long_term_variability 0.29
## mean_value_of_long_term_variability -0.03
## histogram_width -0.15
## histogram_min 0.36
## histogram_max 0.28
## histogram_number_of_peaks -0.11
## histogram_number_of_zeroes 0.00
## histogram_mode 0.71
## histogram_mean 0.72
## histogram_median 0.79
## histogram_variance -0.13
## histogram_tendency 0.29
## accelerations
## baseline.value -0.08
## accelerations 1.00
## fetal_movement 0.05
## uterine_contractions 0.09
## light_decelerations -0.11
## severe_decelerations -0.04
## prolongued_decelerations -0.13
## abnormal_short_term_variability -0.28
## mean_value_of_short_term_variability 0.21
## percentage_of_time_with_abnormal_long_term_variability -0.37
## mean_value_of_long_term_variability -0.14
## histogram_width 0.30
## histogram_min -0.15
## histogram_max 0.39
## histogram_number_of_peaks 0.19
## histogram_number_of_zeroes -0.01
## histogram_mode 0.24
## histogram_mean 0.27
## histogram_median 0.27
## histogram_variance 0.13
## histogram_tendency 0.03
## fetal_movement
## baseline.value -0.03
## accelerations 0.05
## fetal_movement 1.00
## uterine_contractions -0.07
## light_decelerations 0.05
## severe_decelerations -0.01
## prolongued_decelerations 0.27
## abnormal_short_term_variability -0.10
## mean_value_of_short_term_variability 0.12
## percentage_of_time_with_abnormal_long_term_variability -0.07
## mean_value_of_long_term_variability 0.01
## histogram_width 0.16
## histogram_min -0.15
## histogram_max 0.10
## histogram_number_of_peaks 0.16
## histogram_number_of_zeroes -0.02
## histogram_mode -0.06
## histogram_mean -0.09
## histogram_median -0.07
## histogram_variance 0.18
## histogram_tendency 0.00
## uterine_contractions
## baseline.value -0.15
## accelerations 0.09
## fetal_movement -0.07
## uterine_contractions 1.00
## light_decelerations 0.29
## severe_decelerations 0.01
## prolongued_decelerations 0.08
## abnormal_short_term_variability -0.23
## mean_value_of_short_term_variability 0.29
## percentage_of_time_with_abnormal_long_term_variability -0.31
## mean_value_of_long_term_variability -0.07
## histogram_width 0.14
## histogram_min -0.11
## histogram_max 0.12
## histogram_number_of_peaks 0.08
## histogram_number_of_zeroes 0.06
## histogram_mode -0.10
## histogram_mean -0.19
## histogram_median -0.14
## histogram_variance 0.24
## histogram_tendency -0.07
## light_decelerations
## baseline.value -0.16
## accelerations -0.11
## fetal_movement 0.05
## uterine_contractions 0.29
## light_decelerations 1.00
## severe_decelerations 0.11
## prolongued_decelerations 0.23
## abnormal_short_term_variability -0.12
## mean_value_of_short_term_variability 0.56
## percentage_of_time_with_abnormal_long_term_variability -0.27
## mean_value_of_long_term_variability -0.24
## histogram_width 0.52
## histogram_min -0.55
## histogram_max 0.22
## histogram_number_of_peaks 0.40
## histogram_number_of_zeroes 0.24
## histogram_mode -0.35
## histogram_mean -0.53
## histogram_median -0.39
## histogram_variance 0.56
## histogram_tendency 0.00
## severe_decelerations
## baseline.value -0.05
## accelerations -0.04
## fetal_movement -0.01
## uterine_contractions 0.01
## light_decelerations 0.11
## severe_decelerations 1.00
## prolongued_decelerations 0.01
## abnormal_short_term_variability 0.03
## mean_value_of_short_term_variability 0.03
## percentage_of_time_with_abnormal_long_term_variability -0.03
## mean_value_of_long_term_variability -0.04
## histogram_width 0.04
## histogram_min -0.07
## histogram_max -0.02
## histogram_number_of_peaks 0.01
## histogram_number_of_zeroes 0.04
## histogram_mode -0.22
## histogram_mean -0.16
## histogram_median -0.16
## histogram_variance 0.14
## histogram_tendency -0.07
## prolongued_decelerations
## baseline.value -0.10
## accelerations -0.13
## fetal_movement 0.27
## uterine_contractions 0.08
## light_decelerations 0.23
## severe_decelerations 0.01
## prolongued_decelerations 1.00
## abnormal_short_term_variability 0.05
## mean_value_of_short_term_variability 0.27
## percentage_of_time_with_abnormal_long_term_variability -0.14
## mean_value_of_long_term_variability -0.23
## histogram_width 0.27
## histogram_min -0.28
## histogram_max 0.12
## histogram_number_of_peaks 0.22
## histogram_number_of_zeroes 0.06
## histogram_mode -0.44
## histogram_mean -0.49
## histogram_median -0.44
## histogram_variance 0.50
## histogram_tendency -0.22
## abnormal_short_term_variability
## baseline.value 0.31
## accelerations -0.28
## fetal_movement -0.10
## uterine_contractions -0.23
## light_decelerations -0.12
## severe_decelerations 0.03
## prolongued_decelerations 0.05
## abnormal_short_term_variability 1.00
## mean_value_of_short_term_variability -0.43
## percentage_of_time_with_abnormal_long_term_variability 0.46
## mean_value_of_long_term_variability -0.32
## histogram_width -0.26
## histogram_min 0.28
## histogram_max -0.11
## histogram_number_of_peaks -0.17
## histogram_number_of_zeroes -0.15
## histogram_mode 0.06
## histogram_mean 0.07
## histogram_median 0.12
## histogram_variance -0.15
## histogram_tendency -0.01
## mean_value_of_short_term_variability
## baseline.value -0.28
## accelerations 0.21
## fetal_movement 0.12
## uterine_contractions 0.29
## light_decelerations 0.56
## severe_decelerations 0.03
## prolongued_decelerations 0.27
## abnormal_short_term_variability -0.43
## mean_value_of_short_term_variability 1.00
## percentage_of_time_with_abnormal_long_term_variability -0.47
## mean_value_of_long_term_variability 0.07
## histogram_width 0.66
## histogram_min -0.62
## histogram_max 0.41
## histogram_number_of_peaks 0.50
## histogram_number_of_zeroes 0.27
## histogram_mode -0.31
## histogram_mean -0.45
## histogram_median -0.34
## histogram_variance 0.56
## histogram_tendency -0.07
## percentage_of_time_with_abnormal_long_term_variability
## baseline.value 0.29
## accelerations -0.37
## fetal_movement -0.07
## uterine_contractions -0.31
## light_decelerations -0.27
## severe_decelerations -0.03
## prolongued_decelerations -0.14
## abnormal_short_term_variability 0.46
## mean_value_of_short_term_variability -0.47
## percentage_of_time_with_abnormal_long_term_variability 1.00
## mean_value_of_long_term_variability -0.17
## histogram_width -0.45
## histogram_min 0.42
## histogram_max -0.28
## histogram_number_of_peaks -0.28
## histogram_number_of_zeroes -0.12
## histogram_mode 0.17
## histogram_mean 0.22
## histogram_median 0.19
## histogram_variance -0.28
## histogram_tendency 0.04
## mean_value_of_long_term_variability
## baseline.value -0.03
## accelerations -0.14
## fetal_movement 0.01
## uterine_contractions -0.07
## light_decelerations -0.24
## severe_decelerations -0.04
## prolongued_decelerations -0.23
## abnormal_short_term_variability -0.32
## mean_value_of_short_term_variability 0.07
## percentage_of_time_with_abnormal_long_term_variability -0.17
## mean_value_of_long_term_variability 1.00
## histogram_width 0.11
## histogram_min -0.14
## histogram_max 0.00
## histogram_number_of_peaks 0.06
## histogram_number_of_zeroes 0.12
## histogram_mode 0.07
## histogram_mean 0.14
## histogram_median 0.06
## histogram_variance -0.16
## histogram_tendency 0.15
## histogram_width
## baseline.value -0.15
## accelerations 0.30
## fetal_movement 0.16
## uterine_contractions 0.14
## light_decelerations 0.52
## severe_decelerations 0.04
## prolongued_decelerations 0.27
## abnormal_short_term_variability -0.26
## mean_value_of_short_term_variability 0.66
## percentage_of_time_with_abnormal_long_term_variability -0.45
## mean_value_of_long_term_variability 0.11
## histogram_width 1.00
## histogram_min -0.90
## histogram_max 0.69
## histogram_number_of_peaks 0.75
## histogram_number_of_zeroes 0.32
## histogram_mode -0.16
## histogram_mean -0.28
## histogram_median -0.17
## histogram_variance 0.62
## histogram_tendency 0.12
## histogram_min
## baseline.value 0.36
## accelerations -0.15
## fetal_movement -0.15
## uterine_contractions -0.11
## light_decelerations -0.55
## severe_decelerations -0.07
## prolongued_decelerations -0.28
## abnormal_short_term_variability 0.28
## mean_value_of_short_term_variability -0.62
## percentage_of_time_with_abnormal_long_term_variability 0.42
## mean_value_of_long_term_variability -0.14
## histogram_width -0.90
## histogram_min 1.00
## histogram_max -0.30
## histogram_number_of_peaks -0.67
## histogram_number_of_zeroes -0.31
## histogram_mode 0.35
## histogram_mean 0.49
## histogram_median 0.40
## histogram_variance -0.55
## histogram_tendency -0.24
## histogram_max
## baseline.value 0.28
## accelerations 0.39
## fetal_movement 0.10
## uterine_contractions 0.12
## light_decelerations 0.22
## severe_decelerations -0.02
## prolongued_decelerations 0.12
## abnormal_short_term_variability -0.11
## mean_value_of_short_term_variability 0.41
## percentage_of_time_with_abnormal_long_term_variability -0.28
## mean_value_of_long_term_variability 0.00
## histogram_width 0.69
## histogram_min -0.30
## histogram_max 1.00
## histogram_number_of_peaks 0.52
## histogram_number_of_zeroes 0.18
## histogram_mode 0.24
## histogram_mean 0.19
## histogram_median 0.29
## histogram_variance 0.44
## histogram_tendency -0.14
## histogram_number_of_peaks
## baseline.value -0.11
## accelerations 0.19
## fetal_movement 0.16
## uterine_contractions 0.08
## light_decelerations 0.40
## severe_decelerations 0.01
## prolongued_decelerations 0.22
## abnormal_short_term_variability -0.17
## mean_value_of_short_term_variability 0.50
## percentage_of_time_with_abnormal_long_term_variability -0.28
## mean_value_of_long_term_variability 0.06
## histogram_width 0.75
## histogram_min -0.67
## histogram_max 0.52
## histogram_number_of_peaks 1.00
## histogram_number_of_zeroes 0.29
## histogram_mode -0.10
## histogram_mean -0.22
## histogram_median -0.12
## histogram_variance 0.45
## histogram_tendency 0.11
## histogram_number_of_zeroes
## baseline.value 0.00
## accelerations -0.01
## fetal_movement -0.02
## uterine_contractions 0.06
## light_decelerations 0.24
## severe_decelerations 0.04
## prolongued_decelerations 0.06
## abnormal_short_term_variability -0.15
## mean_value_of_short_term_variability 0.27
## percentage_of_time_with_abnormal_long_term_variability -0.12
## mean_value_of_long_term_variability 0.12
## histogram_width 0.32
## histogram_min -0.31
## histogram_max 0.18
## histogram_number_of_peaks 0.29
## histogram_number_of_zeroes 1.00
## histogram_mode -0.06
## histogram_mean -0.08
## histogram_median -0.05
## histogram_variance 0.20
## histogram_tendency 0.08
## histogram_mode
## baseline.value 0.71
## accelerations 0.24
## fetal_movement -0.06
## uterine_contractions -0.10
## light_decelerations -0.35
## severe_decelerations -0.22
## prolongued_decelerations -0.44
## abnormal_short_term_variability 0.06
## mean_value_of_short_term_variability -0.31
## percentage_of_time_with_abnormal_long_term_variability 0.17
## mean_value_of_long_term_variability 0.07
## histogram_width -0.16
## histogram_min 0.35
## histogram_max 0.24
## histogram_number_of_peaks -0.10
## histogram_number_of_zeroes -0.06
## histogram_mode 1.00
## histogram_mean 0.89
## histogram_median 0.93
## histogram_variance -0.31
## histogram_tendency 0.42
## histogram_mean
## baseline.value 0.72
## accelerations 0.27
## fetal_movement -0.09
## uterine_contractions -0.19
## light_decelerations -0.53
## severe_decelerations -0.16
## prolongued_decelerations -0.49
## abnormal_short_term_variability 0.07
## mean_value_of_short_term_variability -0.45
## percentage_of_time_with_abnormal_long_term_variability 0.22
## mean_value_of_long_term_variability 0.14
## histogram_width -0.28
## histogram_min 0.49
## histogram_max 0.19
## histogram_number_of_peaks -0.22
## histogram_number_of_zeroes -0.08
## histogram_mode 0.89
## histogram_mean 1.00
## histogram_median 0.95
## histogram_variance -0.40
## histogram_tendency 0.33
## histogram_median
## baseline.value 0.79
## accelerations 0.27
## fetal_movement -0.07
## uterine_contractions -0.14
## light_decelerations -0.39
## severe_decelerations -0.16
## prolongued_decelerations -0.44
## abnormal_short_term_variability 0.12
## mean_value_of_short_term_variability -0.34
## percentage_of_time_with_abnormal_long_term_variability 0.19
## mean_value_of_long_term_variability 0.06
## histogram_width -0.17
## histogram_min 0.40
## histogram_max 0.29
## histogram_number_of_peaks -0.12
## histogram_number_of_zeroes -0.05
## histogram_mode 0.93
## histogram_mean 0.95
## histogram_median 1.00
## histogram_variance -0.29
## histogram_tendency 0.39
## histogram_variance
## baseline.value -0.13
## accelerations 0.13
## fetal_movement 0.18
## uterine_contractions 0.24
## light_decelerations 0.56
## severe_decelerations 0.14
## prolongued_decelerations 0.50
## abnormal_short_term_variability -0.15
## mean_value_of_short_term_variability 0.56
## percentage_of_time_with_abnormal_long_term_variability -0.28
## mean_value_of_long_term_variability -0.16
## histogram_width 0.62
## histogram_min -0.55
## histogram_max 0.44
## histogram_number_of_peaks 0.45
## histogram_number_of_zeroes 0.20
## histogram_mode -0.31
## histogram_mean -0.40
## histogram_median -0.29
## histogram_variance 1.00
## histogram_tendency -0.08
## histogram_tendency
## baseline.value 0.29
## accelerations 0.03
## fetal_movement 0.00
## uterine_contractions -0.07
## light_decelerations 0.00
## severe_decelerations -0.07
## prolongued_decelerations -0.22
## abnormal_short_term_variability -0.01
## mean_value_of_short_term_variability -0.07
## percentage_of_time_with_abnormal_long_term_variability 0.04
## mean_value_of_long_term_variability 0.15
## histogram_width 0.12
## histogram_min -0.24
## histogram_max -0.14
## histogram_number_of_peaks 0.11
## histogram_number_of_zeroes 0.08
## histogram_mode 0.42
## histogram_mean 0.33
## histogram_median 0.39
## histogram_variance -0.08
## histogram_tendency 1.00
Matriks korelasi antar seluruh variabel prediktor (kecuali target fetal_health) menggunakan fungsi cor(). Hasil matriks korelasi menunjukkan hubungan linier antara pasangan variabel. Korelasi positif menandakan bahwa kenaikan nilai suatu variabel cenderung diikuti oleh kenaikan variabel lain, sedangkan korelasi negatif menunjukkan arah sebaliknya.
# Cari pasangan fitur yang sangat berkorelasi (|cor| > 0.8)
high_cor_pairs <- which(abs(cor_matrix) > 0.8 & abs(cor_matrix) < 1, arr.ind = TRUE)
high_cor_df <- data.frame(
Var1 = rownames(cor_matrix)[high_cor_pairs[, 1]],
Var2 = colnames(cor_matrix)[high_cor_pairs[, 2]],
Correlation = cor_matrix[high_cor_pairs]
)
Mencari pasangan variabel yang memiliki korelasi tinggi, didefinisikan sebagai nilai absolut korelasi di atas 0.8 namun kurang dari 1 (untuk mengecualikan korelasi dengan dirinya sendiri).
# Hilangkan duplikat
high_cor_df <- high_cor_df[high_cor_df$Var1 < high_cor_df$Var2, ]
print(high_cor_df)
## Var1 Var2 Correlation
## 1 histogram_min histogram_width -0.8985190
## 3 histogram_mean histogram_mode 0.8934124
## 4 histogram_median histogram_mode 0.9333992
## 8 histogram_mean histogram_median 0.9482513
Duplikasi pasangan yang identik dibuang agar tidak ada redudansi. Dari hasil tersebut, ditemukan empat pasangan fitur dengan korelasi tinggi:
Korelasi yang sangat tinggi seperti ini dapat menyebabkan multikolinearitas, yang dapat memengaruhi kestabilan koefisien dalam model prediktif
# Cek struktur data setelah perubahan
str(data)
## 'data.frame': 2126 obs. of 22 variables:
## $ baseline.value : num -1.3519 -0.1325 -0.0309 0.0707 -0.1325 ...
## $ accelerations : num -0.8222 0.73 -0.0461 -0.0461 0.9887 ...
## $ fetal_movement : num -0.203 -0.203 -0.203 -0.203 -0.203 ...
## $ uterine_contractions : num -1.482 0.554 1.233 1.233 1.233 ...
## $ light_decelerations : num -0.638 0.375 0.375 0.375 -0.638 ...
## $ severe_decelerations : num -0.0575 -0.0575 -0.0575 -0.0575 -0.0575 ...
## $ prolongued_decelerations : num -0.269 -0.269 -0.269 -0.269 -0.269 ...
## $ abnormal_short_term_variability : num 1.51 -1.74 -1.8 -1.8 -1.8 ...
## $ mean_value_of_short_term_variability : num -0.943 0.869 0.869 1.208 1.208 ...
## $ percentage_of_time_with_abnormal_long_term_variability: num 1.802 -0.535 -0.535 -0.535 -0.535 ...
## $ mean_value_of_long_term_variability : num -1.028 0.393 0.926 2.632 2.081 ...
## $ histogram_width : num -0.165 1.529 1.529 1.195 1.195 ...
## $ histogram_min : num -1.068 -0.865 -0.865 -1.373 -1.373 ...
## $ histogram_max : num -2.119 1.893 1.893 0.333 0.333 ...
## $ histogram_number_of_peaks : num -0.701 0.655 0.316 2.35 1.672 ...
## $ histogram_number_of_zeroes : num -0.458 0.958 0.958 -0.458 -0.458 ...
## $ histogram_mode : num -1.0654 0.2166 0.2166 -0.0276 -0.0276 ...
## $ histogram_mean : num 0.1532 0.0891 0.025 -0.0392 0.0891 ...
## $ histogram_median : num -1.18136 0.13201 -0.00624 -0.07537 -0.00624 ...
## $ histogram_variance : num 1.87 -0.235 -0.2 -0.2 -0.269 ...
## $ histogram_tendency : num 1.113 -0.524 -0.524 1.113 1.113 ...
## $ fetal_health : Ord.factor w/ 3 levels "Normal"<"Suspect"<..: 2 1 1 1 1 3 3 3 3 3 ...
summary(data)
## baseline.value accelerations fetal_movement uterine_contractions
## Min. :-2.77454 Min. :-0.8222 Min. :-0.2032 Min. :-1.4821
## 1st Qu.:-0.74220 1st Qu.:-0.8222 1st Qu.:-0.2032 1st Qu.:-0.8032
## Median :-0.03088 Median :-0.3048 Median :-0.2032 Median :-0.1244
## Mean : 0.00000 Mean : 0.0000 Mean : 0.0000 Mean : 0.0000
## 3rd Qu.: 0.68044 3rd Qu.: 0.7300 3rd Qu.:-0.1389 3rd Qu.: 0.8939
## Max. : 2.71279 Max. : 4.0930 Max. :10.1042 Max. : 3.6094
## light_decelerations severe_decelerations prolongued_decelerations
## Min. :-0.6383 Min. :-0.05746 Min. :-0.2687
## 1st Qu.:-0.6383 1st Qu.:-0.05746 1st Qu.:-0.2687
## Median :-0.6383 Median :-0.05746 Median :-0.2687
## Mean : 0.0000 Mean : 0.00000 Mean : 0.0000
## 3rd Qu.: 0.3752 3rd Qu.:-0.05746 3rd Qu.:-0.2687
## Max. : 4.4289 Max. :17.39459 Max. : 8.2066
## abnormal_short_term_variability mean_value_of_short_term_variability
## Min. :-2.0352 Min. :-1.2825
## 1st Qu.:-0.8719 1st Qu.:-0.7164
## Median : 0.1169 Median :-0.1503
## Mean : 0.0000 Mean : 0.0000
## 3rd Qu.: 0.8149 3rd Qu.: 0.4158
## Max. : 2.3271 Max. : 6.4164
## percentage_of_time_with_abnormal_long_term_variability
## Min. :-0.53524
## 1st Qu.:-0.53524
## Median :-0.53524
## Mean : 0.00000
## 3rd Qu.: 0.06269
## Max. : 4.41126
## mean_value_of_long_term_variability histogram_width histogram_min
## Min. :-1.4547 Min. :-1.73135 Min. :-1.4743
## 1st Qu.:-0.6374 1st Qu.:-0.85856 1st Qu.:-0.8992
## Median :-0.1399 Median :-0.07562 Median :-0.0196
## Mean : 0.0000 Mean : 0.00000 Mean : 0.0000
## 3rd Qu.: 0.4642 3rd Qu.: 0.75866 3rd Qu.: 0.8938
## Max. : 7.5534 Max. : 2.81227 Max. : 2.2131
## histogram_max histogram_number_of_peaks histogram_number_of_zeroes
## Min. :-2.3420 Min. :-1.3793 Min. :-0.4583
## 1st Qu.:-0.6702 1st Qu.:-0.7012 1st Qu.:-0.4583
## Median :-0.1129 Median :-0.3622 Median :-0.4583
## Mean : 0.0000 Mean : 0.0000 Mean : 0.0000
## 3rd Qu.: 0.5559 3rd Qu.: 0.6550 3rd Qu.:-0.4583
## Max. : 4.1225 Max. : 4.7236 Max. :13.7048
## histogram_mode histogram_mean histogram_median histogram_variance
## Min. :-4.7281 Min. :-3.95101 Min. :-4.22286 Min. :-0.6491
## 1st Qu.:-0.5160 1st Qu.:-0.61631 1st Qu.:-0.62837 1st Qu.:-0.5800
## Median : 0.0945 Median : 0.08911 Median : 0.06288 Median :-0.4075
## Mean : 0.0000 Mean : 0.00000 Mean : 0.00000 Mean : 0.0000
## 3rd Qu.: 0.6439 3rd Qu.: 0.66626 3rd Qu.: 0.68500 3rd Qu.: 0.1792
## Max. : 3.0247 Max. : 3.03903 Max. : 3.31175 Max. : 8.6340
## histogram_tendency fetal_health
## Min. :-2.1615 Normal :1655
## 1st Qu.:-0.5244 Suspect : 295
## Median :-0.5244 Pathologic: 176
## Mean : 0.0000
## 3rd Qu.: 1.1127
## Max. : 1.1127
library(arsenal)
## Warning: package 'arsenal' was built under R version 4.4.3
tab <- tableby(fetal_health ~ ., data)
summary(tab, text = TRUE)
##
##
## | | Normal (N=1655) | Suspect (N=295) | Pathologic (N=176) | Total (N=2126) | p value|
## |:------------------------------------------------------|:---------------:|:---------------:|:------------------:|:---------------:|-------:|
## |baseline.value | | | | | < 0.001|
## |- Mean (SD) | -0.134 (0.961) | 0.852 (0.802) | -0.164 (0.959) | 0.000 (1.000) | |
## |- Range | -2.775 - 2.713 | -1.352 - 2.611 | -2.368 - 1.900 | -2.775 - 2.713 | |
## |accelerations | | | | | < 0.001|
## |- Mean (SD) | 0.211 (1.035) | -0.751 (0.188) | -0.721 (0.261) | -0.000 (1.000) | |
## |- Range | -0.822 - 4.093 | -0.822 - 0.471 | -0.822 - 0.471 | -0.822 - 4.093 | |
## |fetal_movement | | | | | < 0.001|
## |- Mean (SD) | -0.033 (0.878) | -0.025 (0.894) | 0.347 (1.838) | -0.000 (1.000) | |
## |- Range | -0.203 - 10.104 | -0.203 - 9.011 | -0.203 - 7.833 | -0.203 - 10.104 | |
## |uterine_contractions | | | | | < 0.001|
## |- Mean (SD) | 0.141 (0.936) | -0.671 (0.903) | -0.198 (1.231) | -0.000 (1.000) | |
## |- Range | -1.482 - 3.609 | -1.482 - 2.252 | -1.482 - 3.270 | -1.482 - 3.609 | |
## |light_decelerations | | | | | < 0.001|
## |- Mean (SD) | 0.018 (0.977) | -0.457 (0.518) | 0.602 (1.398) | 0.000 (1.000) | |
## |- Range | -0.638 - 4.429 | -0.638 - 4.091 | -0.638 - 4.429 | -0.638 - 4.429 | |
## |severe_decelerations | | | | | < 0.001|
## |- Mean (SD) | -0.047 (0.429) | -0.057 (0.000) | 0.537 (3.176) | 0.000 (1.000) | |
## |- Range | -0.057 - 17.395 | -0.057 - -0.057 | -0.057 - 17.395 | -0.057 - 17.395 | |
## |prolongued_decelerations | | | | | < 0.001|
## |- Mean (SD) | -0.182 (0.446) | -0.108 (0.749) | 1.889 (2.324) | -0.000 (1.000) | |
## |- Range | -0.269 - 4.817 | -0.269 - 4.817 | -0.269 - 8.207 | -0.269 - 8.207 | |
## |abnormal_short_term_variability | | | | | < 0.001|
## |- Mean (SD) | -0.263 (0.901) | 0.867 (0.684) | 1.021 (0.841) | -0.000 (1.000) | |
## |- Range | -2.035 - 2.094 | -1.686 - 1.862 | -1.686 - 2.327 | -2.035 - 2.327 | |
## |mean_value_of_short_term_variability | | | | | < 0.001|
## |- Mean (SD) | 0.111 (0.927) | -0.786 (0.748) | 0.275 (1.358) | 0.000 (1.000) | |
## |- Range | -1.283 - 6.416 | -1.283 - 5.624 | -1.283 - 5.624 | -1.283 - 6.416 | |
## |percentage_of_time_with_abnormal_long_term_variability | | | | | < 0.001|
## |- Mean (SD) | -0.261 (0.627) | 1.043 (1.102) | 0.707 (1.848) | -0.000 (1.000) | |
## |- Range | -0.535 - 3.433 | -0.535 - 3.161 | -0.535 - 4.411 | -0.535 - 4.411 | |
## |mean_value_of_long_term_variability | | | | | < 0.001|
## |- Mean (SD) | 0.092 (1.034) | -0.029 (0.667) | -0.817 (0.727) | -0.000 (1.000) | |
## |- Range | -1.455 - 7.553 | -1.455 - 3.787 | -1.455 - 2.365 | -1.455 - 7.553 | |
## |histogram_width | | | | | < 0.001|
## |- Mean (SD) | 0.076 (0.933) | -0.546 (1.014) | 0.203 (1.260) | -0.000 (1.000) | |
## |- Range | -1.552 - 2.710 | -1.603 - 2.042 | -1.731 - 2.812 | -1.731 - 2.812 | |
## |histogram_min | | | | | < 0.001|
## |- Mean (SD) | -0.084 (0.922) | 0.667 (1.049) | -0.325 (1.156) | -0.000 (1.000) | |
## |- Range | -1.474 - 2.213 | -1.474 - 2.078 | -1.474 - 2.044 | -1.474 - 2.213 | |
## |histogram_max | | | | | 0.085|
## |- Mean (SD) | 0.026 (0.990) | -0.088 (0.910) | -0.095 (1.208) | -0.000 (1.000) | |
## |- Range | -2.342 - 4.122 | -2.119 - 2.005 | -2.008 - 3.677 | -2.342 - 4.122 | |
## |histogram_number_of_peaks | | | | | < 0.001|
## |- Mean (SD) | 0.032 (0.970) | -0.256 (1.051) | 0.127 (1.124) | -0.000 (1.000) | |
## |- Range | -1.379 - 4.724 | -1.379 - 4.046 | -1.379 - 3.367 | -1.379 - 4.724 | |
## |histogram_number_of_zeroes | | | | | 0.111|
## |- Mean (SD) | 0.017 (0.978) | -0.113 (1.134) | 0.033 (0.957) | 0.000 (1.000) | |
## |- Range | -0.458 - 13.705 | -0.458 - 10.872 | -0.458 - 3.791 | -0.458 - 13.705 | |
## |histogram_mode | | | | | < 0.001|
## |- Mean (SD) | 0.049 (0.819) | 0.556 (0.670) | -1.395 (1.596) | 0.000 (1.000) | |
## |- Range | -3.141 - 3.025 | -2.897 - 1.804 | -4.728 - 1.376 | -4.728 - 3.025 | |
## |histogram_mean | | | | | < 0.001|
## |- Mean (SD) | 0.032 (0.835) | 0.651 (0.675) | -1.387 (1.461) | -0.000 (1.000) | |
## |- Range | -2.989 - 3.039 | -2.348 - 2.398 | -3.951 - 1.500 | -3.951 - 3.039 | |
## |histogram_median | | | | | < 0.001|
## |- Mean (SD) | 0.026 (0.871) | 0.621 (0.725) | -1.281 (1.337) | 0.000 (1.000) | |
## |- Range | -2.287 - 3.312 | -3.255 - 2.482 | -4.223 - 1.515 | -4.223 - 3.312 | |
## |histogram_variance | | | | | < 0.001|
## |- Mean (SD) | -0.046 (0.769) | -0.400 (0.630) | 1.102 (2.091) | -0.000 (1.000) | |
## |- Range | -0.649 - 5.459 | -0.649 - 3.354 | -0.649 - 8.634 | -0.649 - 8.634 | |
## |histogram_tendency | | | | | < 0.001|
## |- Mean (SD) | 0.035 (0.965) | 0.186 (0.966) | -0.645 (1.134) | -0.000 (1.000) | |
## |- Range | -2.162 - 1.113 | -2.162 - 1.113 | -2.162 - 1.113 | -2.162 - 1.113 | |
Bertujuan untuk memberikan gambaran umum mengenai distribusi data. tableby() digunakan untuk membuat ringkasan statistik deskriptif berdasarkan kategori dari variabel target.
library(MASS)
## Warning: package 'MASS' was built under R version 4.4.3
# Model ordinal logistic regression
model_ord <- polr(fetal_health ~ ., data, method = "logistic", Hess = TRUE)
## Warning in polr(fetal_health ~ ., data, method = "logistic", Hess = TRUE):
## design appears to be rank-deficient, so dropping some coefs
summary(model_ord)
## Call:
## polr(formula = fetal_health ~ ., data = data, Hess = TRUE, method = "logistic")
##
## Coefficients:
## Value Std. Error
## baseline.value 0.525506 0.23798
## accelerations -2.632034 0.35347
## fetal_movement 0.228139 0.09161
## uterine_contractions -0.554651 0.09109
## light_decelerations 0.008476 0.15504
## severe_decelerations 0.113793 0.07364
## prolongued_decelerations 1.388268 0.14036
## abnormal_short_term_variability 1.469920 0.14113
## mean_value_of_short_term_variability -0.189618 0.17190
## percentage_of_time_with_abnormal_long_term_variability 0.592582 0.08245
## mean_value_of_long_term_variability 0.202377 0.14070
## histogram_width 1.517214 0.29220
## histogram_min 1.719456 0.30570
## histogram_number_of_peaks -0.085116 0.12574
## histogram_number_of_zeroes 0.037260 0.08212
## histogram_mode -0.918328 0.30500
## histogram_mean 0.653210 0.34330
## histogram_median -0.663068 0.42446
## histogram_variance 0.799546 0.15981
## histogram_tendency 0.254947 0.11559
## t value
## baseline.value 2.20818
## accelerations -7.44622
## fetal_movement 2.49022
## uterine_contractions -6.08873
## light_decelerations 0.05467
## severe_decelerations 1.54532
## prolongued_decelerations 9.89088
## abnormal_short_term_variability 10.41539
## mean_value_of_short_term_variability -1.10308
## percentage_of_time_with_abnormal_long_term_variability 7.18695
## mean_value_of_long_term_variability 1.43836
## histogram_width 5.19245
## histogram_min 5.62465
## histogram_number_of_peaks -0.67690
## histogram_number_of_zeroes 0.45375
## histogram_mode -3.01091
## histogram_mean 1.90272
## histogram_median -1.56215
## histogram_variance 5.00325
## histogram_tendency 2.20561
##
## Intercepts:
## Value Std. Error t value
## Normal|Suspect 3.5905 0.2488 14.4340
## Suspect|Pathologic 6.5563 0.3120 21.0165
##
## Residual Deviance: 1253.083
## AIC: 1297.083
Model regresi logistik ordinal berhasil dibentuk untuk memprediksi tingkat kesehatan janin (fetal_health). Hasil menunjukkan bahwa beberapa variabel berpengaruh signifikan terhadap klasifikasi, seperti accelerations (pengaruh negatif signifikan), prolongued_decelerations, abnormal_short_term_variability, percentage_of_time_with_abnormal_long_term_variability, histogram_width, dan histogram_min (semuanya dengan pengaruh positif signifikan). Nilai t yang tinggi menunjukkan kekuatan kontribusi fitur tersebut dalam memisahkan kategori Normal, Suspect, dan Pathologic. Sementara itu, beberapa variabel seperti light_decelerations, histogram_number_of_zeroes, dan number_of_peaks tampak tidak signifikan, yang berpotensi dieliminasi atau ditinjau kembali.
library(performance)
## Warning: package 'performance' was built under R version 4.4.3
# Cek multikolinearitas
vif_info <- check_collinearity(model_ord)
# Variabel dengan VIF > 5
high_vif_vars <- vif_info$Term[vif_info$VIF > 5]
# Tampilkan
print("Variabel yang akan dihapus karena VIF > 5:")
## [1] "Variabel yang akan dihapus karena VIF > 5:"
print(high_vif_vars)
## [1] "baseline.value" "abnormal_short_term_variability"
## [3] "mean_value_of_long_term_variability" "histogram_width"
## [5] "histogram_number_of_zeroes" "histogram_mode"
## [7] "histogram_variance" "histogram_tendency"
Uji multikolinieritas dilakukan menggunakan fungsi check_collinearity(). Hasilnya menunjukkan bahwa delapan variabel memiliki nilai VIF (Variance Inflation Factor) lebih dari 5, yang mengindikasikan adanya korelasi tinggi antar prediktor.
# Hapus variabel tersebut dari data
data <- data[, !names(data) %in% high_vif_vars]
Karena multikolinieritas dapat mengganggu kestabilan dan interpretabilitas model, variabel-variabel ini dihapus sebelum dilakukan pemodelan ulang.
model_ord <- polr(fetal_health ~ ., data, method = "logistic", Hess = TRUE)
summary(model_ord)
## Call:
## polr(formula = fetal_health ~ ., data = data, Hess = TRUE, method = "logistic")
##
## Coefficients:
## Value Std. Error
## accelerations -3.12105 0.31847
## fetal_movement 0.01265 0.08728
## uterine_contractions -0.65147 0.08492
## light_decelerations 0.27568 0.12309
## severe_decelerations 0.28106 0.06605
## prolongued_decelerations 1.58846 0.10977
## mean_value_of_short_term_variability -0.68567 0.14536
## percentage_of_time_with_abnormal_long_term_variability 0.77818 0.07034
## histogram_min 0.37637 0.11846
## histogram_max 0.88920 0.10828
## histogram_number_of_peaks -0.13929 0.11959
## histogram_mean -0.37598 0.28591
## histogram_median -0.01112 0.26907
## t value
## accelerations -9.80028
## fetal_movement 0.14498
## uterine_contractions -7.67186
## light_decelerations 2.23960
## severe_decelerations 4.25514
## prolongued_decelerations 14.47134
## mean_value_of_short_term_variability -4.71696
## percentage_of_time_with_abnormal_long_term_variability 11.06395
## histogram_min 3.17730
## histogram_max 8.21205
## histogram_number_of_peaks -1.16471
## histogram_mean -1.31503
## histogram_median -0.04135
##
## Intercepts:
## Value Std. Error t value
## Normal|Suspect 3.4384 0.2381 14.4423
## Suspect|Pathologic 5.8827 0.2807 20.9594
##
## Residual Deviance: 1483.986
## AIC: 1513.986
Setelah menghapus variabel-variabel dengan multikolinieritas tinggi, model regresi logistik ordinal dibangun ulang menggunakan variabel yang tersisa. Hasilnya menunjukkan bahwa sebagian besar variabel tetap memberikan kontribusi signifikan terhadap prediksi tingkat kesehatan janin. Dibandingkan dengan model sebelumnya, model ini lebih stabil secara statistik karena terbebas dari multikolinieritas, meskipun nilai AIC sedikit meningkat menjadi 1513.986 (dari sebelumnya 1297.083), namun merupakan kompromi wajar dalam upaya mendapatkan model yang lebih dapat diinterpretasikan dan bebas dari bias korelasi internal.
library(generalhoslem)
## Warning: package 'generalhoslem' was built under R version 4.4.3
## Loading required package: reshape
## Warning: package 'reshape' was built under R version 4.4.3
# Uji Lipsitz
lipsitz.test(model_ord)
##
## Lipsitz goodness of fit test for ordinal response models
##
## data: formula: fetal_health ~ accelerations + fetal_movement + uterine_contractions + formula: light_decelerations + severe_decelerations + prolongued_decelerations + formula: mean_value_of_short_term_variability + percentage_of_time_with_abnormal_long_term_variability + formula: histogram_min + histogram_max + histogram_number_of_peaks + formula: histogram_mean + histogram_median
## LR statistic = 10.138, df = 9, p-value = 0.3394
Hipotesis :
H0 : Model sesuai (tidak ada perbedaan antara observasi dan prediksi)
H1 : Model tidak sesuai (ada perbedaan antara observasi dan prediksi)
Berdasarkan output tersebut diperoleh informasi bahwa pada pada taraf signifikansi 5%, gagal tolak H0 karena p-value 0.3394 > 0.05 (α = 0.05). Artinya, tidak ada perbedaan antara observasi dan prediksi.
# Odds Ratio
odds_ratio <- exp(coef(model_ord))
print("Odds Ratio:")
## [1] "Odds Ratio:"
print(odds_ratio)
## accelerations
## 0.04411088
## fetal_movement
## 1.01273435
## uterine_contractions
## 0.52127953
## light_decelerations
## 1.31743010
## severe_decelerations
## 1.32453887
## prolongued_decelerations
## 4.89622506
## mean_value_of_short_term_variability
## 0.50375130
## percentage_of_time_with_abnormal_long_term_variability
## 2.17751404
## histogram_min
## 1.45698534
## histogram_max
## 2.43317045
## histogram_number_of_peaks
## 0.86997802
## histogram_mean
## 0.68661884
## histogram_median
## 0.98893667
Dari output tersebut, diperoleh informasi sebagai berikut:
Untuk variabel accelerations, diperoleh nilai odds ratio sebesar 0.0441, artinya setiap peningkatan satu unit pada akselerasi, kemungkinan status kesehatan janin yang lebih buruk (Suspect atau Pathologic) berkurang 0.044 kali dibandingkan dengan keadaan tanpa akselerasi. Ini menunjukkan bahwa lebih banyak akselerasi berhubungan dengan penurunan risiko masalah kesehatan janin.
Untuk variabel fetal_movement, diperoleh nilai odds ratio sebesar 1.0127, artinya setiap peningkatan satu unit pada pergerakan janin akan meningkatkan kemungkinan status kesehatan janin yang lebih buruk sebesar 1.01 kali. Ini menunjukkan bahwa lebih banyak gerakan janin berhubungan dengan peningkatan risiko masalah kesehatan janin, meskipun efeknya sangat kecil.
Untuk variabel uterine_contractions, diperoleh nilai odds ratio sebesar 0.5213, yang berarti setiap peningkatan satu unit pada kontraksi uterine, kemungkinan status patologis pada janin berkurang 0.52 kali dibandingkan dengan keadaan tanpa kontraksi uterine. Ini menunjukkan bahwa kontraksi uterine yang lebih kuat berhubungan dengan penurunan risiko masalah kesehatan janin.
Untuk variabel light_decelerations, diperoleh nilai odds ratio sebesar 1.3174, artinya jika ada satu unit peningkatan dalam decelerasi ringan, kemungkinan status kesehatan janin yang lebih buruk akan meningkat 1.32 kali. Ini menunjukkan bahwa lebih banyak decelerasi ringan berhubungan dengan peningkatan risiko masalah kesehatan janin.
Untuk variabel severe_decelerations, diperoleh nilai odds ratio sebesar 1.3245, artinya jika ada satu unit peningkatan dalam decelerasi berat, kemungkinan status patologis pada janin akan meningkat 1.32 kali dibandingkan dengan keadaan sebelumnya.Menunjukkan bahwa decelerasi berat berhubungan dengan peningkatan risiko masalah kesehatan janin.
Untuk variabel prolongued_decelerations, diperoleh nilai odds ratio sebesar 4.8962, yang berarti jika ada satu unit peningkatan dalam decelerasi berkepanjangan, kemungkinan status patologis pada janin akan meningkat 4.90 kali. Ini menunjukkan bahwa decelerasi berkepanjangan sangat kuat berhubungan dengan peningkatan risiko masalah kesehatan janin.
Untuk variabel mean_value_of_short_term_variability, diperoleh nilai odds ratio sebesar 0.5038, artinya setiap peningkatan satu unit dalam variabilitas jangka pendek, kemungkinan status patologis pada janin akan berkurang 0.50 kali. Menunjukkan bahwa lebih banyak variabilitas jangka pendek berhubungan dengan penurunan risiko masalah kesehatan janin.
Untuk variabel percentage_of_time_with_abnormal_long_term_variability, diperoleh nilai odds ratio sebesar 2.1775, artinya setiap peningkatan satu unit dalam persentase waktu dengan variabilitas jangka panjang abnormal, kemungkinan status patologis pada janin akan meningkat 2.18 kali. Ini menunjukkan bahwa lebih banyak waktu dengan variabilitas jangka panjang abnormal berhubungan dengan peningkatan risiko masalah kesehatan janin.
Untuk variabel histogram_min, diperoleh nilai odds ratio sebesar 1.4570, artinya jika ada satu unit peningkatan pada nilai minimum histogram, kemungkinan status patologis pada janin akan meningkat 1.46 kali. Ini menunjukkan bahwa nilai minimum histogram yang lebih rendah berhubungan dengan peningkatan risiko masalah kesehatan janin.
Untuk variabel histogram_max, diperoleh nilai odds ratio sebesar 2.4332, yang berarti jika ada satu unit peningkatan pada nilai maksimum histogram, kemungkinan status patologis pada janin akan meningkat 2.43 kali. Ini menunjukkan bahwa nilai maksimum histogram yang lebih tinggi berhubungan dengan peningkatan risiko masalah kesehatan janin.
Untuk variabel histogram_number_of_peaks, diperoleh nilai odds ratio sebesar 0.8700, yang berarti setiap peningkatan satu unit pada jumlah puncak histogram, kemungkinan status patologis pada janin akan berkurang 0.87 kali. Ini menunjukkan bahwa lebih banyak puncak histogram berhubungan dengan penurunan risiko masalah kesehatan janin.
Untuk variabel histogram_mean, diperoleh nilai odds ratio sebesar 0.6866, yang berarti setiap peningkatan satu unit pada rata-rata histogram, kemungkinan status patologis pada janin akan berkurang 0.69 kali. Ini menunjukkan bahwa rata-rata histogram yang lebih tinggi berhubungan dengan penurunan risiko masalah kesehatan janin.
Untuk variabel histogram_median, diperoleh nilai odds ratio sebesar 0.9889, artinya setiap peningkatan satu unit pada median histogram, kemungkinan status patologis pada janin akan berkurang 0.99 kali. Ini menunjukkan bahwa median histogram yang lebih tinggi berhubungan dengan penurunan risiko masalah kesehatan janin, meskipun efeknya sangat kecil.
` ## 8. Kesimpulan
Penelitian ini bertujuan untuk menganalisis faktor-faktor yang memengaruhi tingkat kesehatan janin menggunakan metode regresi logistik ordinal. Dengan menggunakan dataset yang terdiri dari berbagai variabel fisiologis hasil pemantauan detak jantung janin melalui kardiotokografi (CTG), dilakukan serangkaian tahap analisis mulai dari eksplorasi data, deteksi multikolinearitas, hingga pemodelan regresi.
Hasil analisis menunjukkan bahwa beberapa fitur seperti accelerations, prolongued decelerations, abnormal short term variability, dan histogram_width memiliki pengaruh signifikan terhadap status kesehatan janin. Secara khusus, peningkatan jumlah akselerasi berkaitan dengan kondisi janin yang lebih sehat, sedangkan tingginya nilai deselerasi berkepanjangan dan variabilitas jangka pendek abnormal meningkatkan risiko janin mengalami kondisi mencurigakan atau patologis. Selain itu, bentuk distribusi histogram denyut jantung janin, seperti lebar histogram, juga memberikan kontribusi dalam memprediksi risiko.
Penghapusan variabel dengan nilai VIF tinggi dilakukan untuk mengatasi multikolinearitas antar variabel dan meningkatkan stabilitas model. Model regresi logistik ordinal yang dibangun setelah proses tersebut menunjukkan hasil yang lebih baik dan mudah diinterpretasikan, serta mampu menangkap urutan tingkat keparahan kondisi janin secara statistik.
Secara keseluruhan, pendekatan regresi logistik ordinal terbukti sesuai dan efektif untuk menganalisis data kesehatan janin yang bersifat ordinal. Hasil penelitian ini dapat memberikan landasan awal bagi pengembangan sistem pendukung keputusan berbasis data untuk membantu tenaga medis dalam memantau dan mengantisipasi kondisi janin secara lebih akurat dan objektif.