PCOS Early Detection Based On Symptoms and Lab Tests and an Overview of How Treat It Well
By Delvia
Background
Polycystic ovarian syndrome (PCOS) terjadi pada 1 di antara 10 wanita pada usia reproduktif. PCOS adalah suatu gangguan sistem endokrin cukup kompleks yang dapat berdampak pada berbagai masalah serius diantaranya infertilitas, diabetes, anxiety, depresi, penyakit kardiovaskular [3,4, 11]. Dokter tidak mengetahui pasti penyebab PCOS, tetapi pada umumnya terjadi ketika ada ketidakseimbangan hormon, dimana tubuh memproduksi hormon androgen, estrogen, progesteron dan insulin secara tidak seimbang. Studi lain mengatakan bahwa penyebab PCOS adalah faktor genetik dan lingkungan termasuk pola hidup yang tidak sehat [12].
Sebagian besar studi epidemiologi PCOS telah dilakukan di negara maju, namun hanya sedikit informasi mengenai sindrom ini di negara berkembang [6], termasuk Indonesia. Sehingga, sangat sulit mendapatkan data prevalensi PCOS di Indonesia. Berikut adalah studi prevalensi PCOS di rawat inap persalinan rumah sakit Amerika serikat [9].
Dari data di atas, dapat dilihat bahwa prevalensi PCOS di rawat inap persalinan rumah sakit Amerika serikat mengalami peningkatan selama periode 17 tahun. Berdasarkan sumber data, juga dilaporkan bahwa tingkat komplikasi kardiovaskular lebih tinggi di antara wanita dengan PCOS, dibandingkan dengan mereka yang tidak memiliki PCOS [9].
Permasalahannya, PCOS sangat sulit didiagnosis karena setiap wanita memiliki simtom serta hasil lab yang berbeda-beda. Umumnya, PCOS akan didiagnosa ketika telah berkembang menjadi komplikasi yang dapat menurunkan kualitas hidup penderitanya seperti infertilitas, obesitas, penyakit kardiovaskular, liver dan bahkan kanker endometrium. Rotterdam merupakan metode diagnosa PCOS yang paling banyak digunakan di seluruh dunia. Namun, berdasarkan studi literatur, masih terdapat sekitar 70% wanita yang tidak terdiagnosa sebagai PCOS bahkan setelah mengunjungi praktisi medis [6]. Oleh karenanya, penting untuk membentuk model machine learning yang dapat mempelajari karakteristik pasien PCOS berdasarkan simtom dan hasil lab. Project ini akan sangat bermanfaat bagi dunia medis, baik bagi pasien maupun dokter untuk mengurangi kesalahan diagnosa serta mengoptimalkan terapi sedini mungkin.
Sebagai tambahan, mengutip dari sebuah survei di Canada, ditemukan bahwa sebagian besar pasien PCOS mengalami ketidakpuasan dengan informasi yang diberikan ketika diagnosa (65.9%). Sebagian besar pasien tidak menerima informasi tentang manajemen pola hidup (41,9%), dan dari pasien yang menerima informasi manajemen pola hidup, sekitar 33,5% merasa tidak puas atau sangat tidak puas dengan informasi tersebut. Sekitar sepertiga (38,1%) pasien melaporkan tidak puas atau sangat tidak puas dengan informasi yang diberikan tentang terapi medis, dan 28,1% sama sekali tidak menerima informasi tentang terapi medis. Temuan survei ini sangat mirip dengan skor kepuasan dari survei lain yang dilakukan pada populasi PCOS di Australia dan internasional [11]. Dari hasil survei tersebut, saya kemudian tertarik untuk membuat suatu review artikel terkini (up-to-date) tentang manajemen dan perubahan pola hidup pasien PCOS sebagai terapi lini pertama.
Problem Statement
Beragamnya simtom serta hasil lab pasien menjadi tantangan bagi dokter dalam mendiagnosa apakah pasien mengalami PCOS atau tidak. Kesalahan diagnosa pasien yang ternyata PCOS namun didiagnosa tidak, akan menyebabkan tertundanya treatment lebih lanjut, mengingat sindrom ini akan bertambah buruk seiring perjalanan waktu dengan pola hidup yang tidak sehat. Sebaliknya, jika pasien ternyata bukan PCOS namun didiagnosa PCOS, mungkin akan menyebabkan kesalahan treatment misalnya saja jika pasien dianjurkan dokter untuk mengonsumsi obat-obatan dalam hal treatment PCOS seperti metformin, oral kontrasepsi, ataupun antidepressan. Bagaimana jika obat-obatan tersebut justru menimbulkan efek samping atau memperburuk status kesehatan pasien.
Project Idea
Kehadiran machine learning dengan model terbaik mungkin dapat menjadi solusi dalam pencegahan kesalahan diagnosa PCOS. Machine learning dibangun dengan mempelajari data aktual pasien PCOS dan yang bukan PCOS. Model kemudian dievaluasi menggunakan data test untuk melihat apakah model dapat membedakan pasien PCOS atau tidak dengan menggunakan parameter ROC dan AUC, serta confusion matrix dengan melihat empat parameter yaitu, accuracy, sensitivity, recall dan precision. Akan dilakukan lima model klasifikasi supervised learning yaitu Logistik Regression, Naive Bayes, Decision Tree, Random Forest dan Xgboost. Harapannya, wanita khususnya remaja akan dapat melakukan deteksi PCOS sedini mungkin untuk kemudian di treatment guna mencegah perkembangan komplikasi yang lebih buruk.
Problem Scope
Pada project ini akan digunakan sebuat dataset dari situs kaggle.
Sumber data dikumpulkan dari 10 rumah sakit di India. Dataset ini
terdiri dari 541 baris dan 36 kolom, memuat informasi sebagai
berikut:
- PCOS
: label pcos (yes/no)
-
Age
: umur pasien
- BMI
: indeks massa
tubuh
- Blood_group
: golongan darah
-
Pulse_rate
: denyut nadi (byte/minute)
-
Resp_rate
: laju respirasi (breaths/minute)
-
Hb
: kadar hemoglobin (g/dL)
- Cycle_RI
:
keteraturan siklus menstruasi (reguler/irreguler)
-
Cycle_length
: lama siklus menstruasi (days/week)
-
Marriage_length
: lama pernikahan (years)
-
Pregnant
: status kehamilan (yes/no)
-
No.of_abortions
: jumlah kejadian keguguran
-
Beta-HCG
: kadar hormon Beta-HCG (mIU/mL)
-
FSH/LH
: rasio kadar hormon FSH/LH (mIU/mL)
-
Waist
: lebar lingkar pinggang (inch)
-
Waist/Hip
: rasio lebar pinggang/panggul
-
TSH
: kadar hormon TSH (mIU/L)
- AMH
:
kadar hormon AMH (ng/mL)
- Prolactin
: kadar hormon
prolactin (ng/mL)
- Vit.D3
: kadar vitamin D3 dalam
darah (ng/mL)
- Progesteron
: kadar hormon progesteron
(ng/mL)
- Random_blood_glucose
: kadar gula darah acak
(mg/dL)
- Weight_gain
: kenaikan berat badan
(yes/no)
- Hair_growth
: hirsutism atau tumbuhnya
rambut pada area tertentu seperti wajah (yes/no)
-
Skin_darkening
: penggelapan area kulit tertentu seperti
ketiak, siku, lutut (yes/no)
- Hair_loss
: alopecia
atau kebotakan (yes/no)
- Pimples
: timbulnya jerawat
(yes/no)
- Fast_food
: kebiasaan mengonsumsi makanan
siap saji (yes/no)
- Regular_exercise
: olahraga secara
teratur (yes/no)
- Systolic_BP
: tekanan darah sistolik
(mmHg)
- Diastolic_BP
: tekanan darah diastolik
(mmHg)
- No.left_ventricle
: jumlah ventrikel kiri
- No.right_ventricle
: jumlah ventrikel kanan
-
Avg.size_left_ventricle
: ukuran rata-rata ventrikel kiri
(mm)
- Avg.size_right_ventricle
: ukuran rata-rata
ventrikel kanan (mm)
- Diameter_endometrium
: diameter
of endometrium (mm)
Selanjutnya, pembuatan model machine learning untuk mengidentifikasi
apakah pasien PCOS atau tidak, akan digunakan variabel PCOS
sebagai variabel target dan variabel-variabel lain akan dijadikan
sebagai variabel prediktor untuk dieksplor lebih lanjut dan dianalisis
serta digunakan dalam pembuatan model machine learning.
Output
Selain mencari model machine learning terbaik, project ini juga akan dilengkapi dengan review artikel mengenai treatment lini pertama yaitu perubahan pola hidup, sehingga harapannya pasien akan lebih mengutamakan cara mentreatment sindrom ini dengan mengubah pola hidup yang lebih sehat dan tentunya treatment ini dikhususkan pada pasien PCOS saja. Untuk pasien yang bukan PCOS juga akan diberikan edukasi dan awareness untuk tetap menjaga pola hidup sehat mengingat bahwa pola hidup yang tidak sehat menjadi salah satu penyebab sindrom ini. Selain review artikel, project ini juga akan dilengkapi dengan poster dan beberapa rekomendasi rujukan lembaga/komunitas nasional maupun internasional terkait PCOS yang dapat digunakan sebagai wadah untuk saling sharing pengalaman antar pasien PCOS.
Project ini akan ditampilkan dalam bentuk web dashboard, dengan
rincian sebagai berikut:
- Overview project dan overview data
-
Architecture model machine learning
- Input data simtom dan hasil
lab pasien yang akan dihubungkan dengan model machine learning serta
hasil evaluasi model (accuracy, sensitivity, recall, precision, ROC
& AUC)
- Halaman artikel dan poster tentang PCOS
- Halaman
rekomendasi komunitas online PCOS nasional dan internasional
-
Halaman profil data diri.
Business Impact
Project ini dapat diaplikasikan di pelayanan kesehatan seperti rumah sakit maupun klinik yang memfasilitasi tes lab pcos, khususnya tes lab yang digunakan sebagai prediktor pada model machine learning project ini. Sehingga, harapannya pasien akan mendapatkan jawaban lebih cepat dan akurat terkait apakah dirinya mengalami pcos atau tidak, serta mendapatkan informasi lebih dari artikel kesehatan terkait pcos dan treatment serta rekomendasi rujukan lembaga/komunitas nasional maupun internasional terkait PCOS yang dapat digunakan sebagai wadah untuk saling sharing pengalaman antar pasien PCOS.
Target user yang utama adalah fasilitas kesehatan seperti rumah sakit maupun klinik yang memfasilitasi tes lab PCOS. Nantinya, wanita remaja maupun dewasa yang dicurigai mengalami PCOS ditandai dengan sedikit/banyaknya simtom PCOS yang mereka miliki akan datang ke rumah sakit/klinik untuk melakukan tes lab. Kemudian, hasil tes tersebut akan di input ke dalam model machine learning. Selanjutnya, jika pasien dinyatakan positif, maka pasien akan diedukasi terapi lini pertama PCOS yaitu melakukan perubahan pola hidup. Edukasi tersebut akan disampaikan oleh dokter dengan merujuk pada satu review artikel yang ditulis oleh saya sendiri dengan cara merangkum puluhan jurnal/artikel kesehatan up-to-date mengenai PCOS serta dikombinasikan dengan pengetahuan medis yang dimiliki oleh dokter tersebut. Agar lebih mudah diingat, poin-poin penting review artikel tersebut akan disajikan dalam bentuk poster. Jika dibutuhkan, pasien juga akan mendapatkan rujukan lembaga/komunitas nasional maupun internasional terkait PCOS sebagai wadah sharing pengalaman antar pasien PCOS. Keuntungan yang didapatkan oleh rumah sakit adalah dapat meminimalisir kesalahan diagnosa, mempercepat penegakan diagnosa serta mengoptimalkan terapi lini pertama pasien PCOS.
Project ini juga dapat dikembangkan lebih lanjut untuk pembuatan aplikasi (apps) misalnya, sehingga dapat digunakan oleh umum namun pasien tetap harus melakukan tes lab terlebih dahulu.
Exploratory Data Analysis (EDA)
Import Library dan Read Data
# Import library
library(readxl)
library(dplyr)
library(rmdformats)
library(GGally)
library(psych)
library(inspectdf)
library(caret) # to pre-process data
library(caretEnsemble)
library(naivebayes)
library(tidyr)
library(e1071) # model naive bayes
library(haven)
library(nnet)
library(class)
library(pracma)
library(ROCR)
library(randomForest)
library(remotes)
library(ggplot2) # to visualize data
library(gridExtra) # to display multiple graph
library(tidymodels) # to build tidy models
library(car)
library(graphics)
# Read data
<- read_excel("PCOS DATASET/PCOS_data_without_infertility.xlsx", sheet = "Full_new", na=c("NA", "N/A", " ", "-"))
pcos <- as.data.frame(pcos)
pcos ::paged_table(pcos) rmarkdown
Cek missing value
# cek missing value
is.na(pcos) %>% colSums()
#> Sl. No Patient File No. PCOS (Y/N)
#> 0 0 0
#> Age (yrs) Weight (Kg) Height(Cm)
#> 0 0 0
#> BMI Blood Group Pulse rate(bpm)
#> 0 0 0
#> RR (breaths/min) Hb(g/dl) Cycle(R/I)
#> 0 0 0
#> Cycle length(days) Marraige Status (Yrs) Pregnant(Y/N)
#> 0 1 0
#> No. of aborptions I beta-HCG(mIU/mL) II beta-HCG(mIU/mL)
#> 0 0 0
#> FSH(mIU/mL) LH(mIU/mL) FSH/LH
#> 0 0 0
#> Hip(inch) Waist(inch) Waist:Hip Ratio
#> 0 0 0
#> TSH (mIU/L) AMH(ng/mL) PRL(ng/mL)
#> 0 0 0
#> Vit D3 (ng/mL) PRG(ng/mL) RBS(mg/dl)
#> 0 0 0
#> Weight gain(Y/N) hair growth(Y/N) Skin darkening (Y/N)
#> 0 0 0
#> Hair loss(Y/N) Pimples(Y/N) Fast food (Y/N)
#> 0 0 1
#> Reg.Exercise(Y/N) BP _Systolic (mmHg) BP _Diastolic (mmHg)
#> 0 0 0
#> Follicle No. (L) Follicle No. (R) Avg. F size (L) (mm)
#> 0 0 0
#> Avg. F size (R) (mm) Endometrium (mm)
#> 0 0
Handling missing value
# replace missing value with 0
<- replace(pcos, is.na(pcos), 0)
pcos
# check again missing value
anyNA(pcos)
#> [1] FALSE
Drop and Rename column
# drop column
<- pcos[,-c(1,2,5,6,18,19,20,22)]
pcos_clean
# rename column
colnames(pcos_clean) <- c("PCOS", "Age", "BMI", "Blood_group", "Pulse_rate", "Resp_rate", "Hb", "Cycle_RI", "Cycle_length", "Marriage_length", "Pregnant", "No.of_abortions", "Beta-HCG", "FSH/LH", "Waist", "Waist/Hip", "TSH", "AMH", "Prolactin", "Vit.D3", "Progesteron", "Random_blood_glucose", "Weight_gain", "Hair_growth", "Skin_darkening", "Hair_loss", "Pimples", "Fast_food", "Regular_exercise", "Systolic_BP", "Diastolic_BP", "No.left_ventricle", "No.right_ventricle", "Avg.size_left_ventricle", "Avg.size_right_ventricle", "Diameter_endometrium")
Finalizing data preparation
$Blood_group <- factor(case_when(
pcos_clean$Blood_group == 11 ~ "A+",
pcos_clean$Blood_group == 12 ~ "A-",
pcos_clean$Blood_group == 13 ~ "B+",
pcos_clean$Blood_group == 14 ~ "B-",
pcos_clean$Blood_group == 15 ~ "O+",
pcos_clean$Blood_group == 16 ~ "O-",
pcos_clean$Blood_group == 17 ~ "AB+",
pcos_clean$Blood_group == 18 ~ "AB-",
pcos_cleanTRUE ~ "Unknown"
))
# replace 0 to be no and 1 to be yes
<- as.data.frame(pcos_clean %>%
pcos_clean mutate(across(c(1,11,23,24,25,26,27,28,29), ~ ifelse(. == 0, "no", "yes")),
across(8, ~ ifelse(. == 4, "irregular", "regular")),
across(c(1,8,11,23,24,25,26,27,28,29), as.factor),
`Beta-HCG`=as.numeric(`Beta-HCG`),
AMH=as.numeric(AMH)))
# drop missing value
<- pcos_clean %>% drop_na()
pcos_clean ::paged_table(pcos_clean) rmarkdown
Deskripsi:
- PCOS
: label pcos (yes/no)
-
Age
: umur pasien
- BMI
: indeks massa
tubuh
- Blood_group
: golongan darah
-
Pulse_rate
: denyut nadi (byte/minute)
-
Resp_rate
: laju respirasi (breaths/minute)
-
Hb
: kadar hemoglobin (g/dL)
- Cycle_RI
:
keteraturan siklus menstruasi (reguler/irreguler)
-
Cycle_length
: lama siklus menstruasi (days/week)
-
Marriage_length
: lama pernikahan (years)
-
Pregnant
: status kehamilan (yes/no)
-
No.of_abortions
: jumlah kejadian keguguran
-
Beta-HCG
: kadar hormon Beta-HCG (mIU/mL)
-
FSH/LH
: rasio kadar hormon FSH/LH (mIU/mL)
-
Waist
: lebar lingkar pinggang (inch)
-
Waist/Hip
: rasio lebar pinggang/panggul
-
TSH
: kadar hormon TSH (mIU/L)
- AMH
:
kadar hormon AMH (ng/mL)
- Prolactin
: kadar hormon
prolactin (ng/mL)
- Vit.D3
: kadar vitamin D3 dalam
darah (ng/mL)
- Progesteron
: kadar hormon progesteron
(ng/mL)
- Random_blood_glucose
: kadar gula darah acak
(mg/dL)
- Weight_gain
: kenaikan berat badan
(yes/no)
- Hair_growth
: hirsutism atau tumbuhnya
rambut pada area tertentu seperti wajah (yes/no)
-
Skin_darkening
: penggelapan area kulit tertentu seperti
ketiak, siku, lutut (yes/no)
- Hair_loss
: alopecia
atau kebotakan (yes/no)
- Pimples
: timbulnya jerawat
(yes/no)
- Fast_food
: kebiasaan mengonsumsi makanan
siap saji (yes/no)
- Regular_exercise
: olahraga secara
teratur (yes/no)
- Systolic_BP
: tekanan darah sistolik
(mmHg)
- Diastolic_BP
: tekanan darah diastolik
(mmHg)
- No.left_ventricle
: jumlah ventrikel kiri
- No.right_ventricle
: jumlah ventrikel kanan
-
Avg.size_left_ventricle
: ukuran rata-rata ventrikel kiri
(mm)
- Avg.size_right_ventricle
: ukuran rata-rata
ventrikel kanan (mm)
- Diameter_endometrium
: diameter
of endometrium (mm)
Cek Proporsi Data
# cek proporsi kolom target
prop.table(table(pcos$`PCOS (Y/N)`))
#>
#> 0 1
#> 0.6728281 0.3271719
Proporsi kelas positif PCOS 67% dan bukan PCOS sebanyak 32%
Visualisasi EDA
hist(pcos_clean$Age)
💡 Insight:
Range umur wanita yang menjadi objek
penelitian data berkisar antara 20-50 tahun, dimana range umur 25-35
tahun adalah yang menjadi dominan.
plot(pcos_clean$PCOS, pcos_clean$Age, horizontal=T)
summary(pcos_clean$Age)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 20.00 27.75 31.00 31.42 35.00 48.00
💡 Insight:
- Pasien PCOS pada data umumnya
memiliki range usia 27-33 tahun.
hist(pcos_clean$BMI)
💡 Insight:
Range BMI objek penelitian yang
digunakan pada data ini berkisar antara 12-40 yang berarti objek
penelitian memiliki berat badan underweight, normal, overweight hingga
obesitas. Namun objek penelitian yang mendominasi data ini memiliki BMI
di range 20-30 yang berarti berat badan normal dan overweight.
<- pcos_clean[pcos_clean$PCOS=="yes",]
pcos_yes <- pcos_clean[pcos_clean$PCOS=="no",]
pcos_no
<- inspect_cat(pcos_yes)
x3 show_plot(x3)
💡 Insight:
Dari inspeksi simtom dan kondisi pasien
PCOS pada data secara garis besar, diperoleh informasi bahwa:
-
pasien PCOS cenderung memiliki sedentary lifestyle habits
seperti, mengonsumsi fast food dan tidak olahraga secara teratur
-
pasien PCOS memiliki simtom, seperti menstruasi yang tidak teratur, hair
growth (pertumbuhan rambut secara berlebih terutama di area wajah), hair
loss (kerontokan rambut bahkan mengalami alopecia atau kebotakan), acne
(tumbuhnya jerawat secara berlebih dan sulit disembuhkan),
skin_darkening (penggelapan area kulit tertentu seperti di lipatan siku,
selangkangan) dan weight_gain (pertambahan berat badan hingga mengalami
overweight bahkan obesitas)
- pasien PCOS didominasi oleh golongan
darah O
hist(pcos_clean$Random_blood_glucose)
par(mfrow=c(1,2))
hist(pcos_yes$Random_blood_glucose)
hist(pcos_no$Random_blood_glucose)
💡 Insight:
- Pasien yang diobservasi pada data ini
umumnya memiliki glukosa darah acak 80-120 mg/dL, pasien PCOS berada
pada range 50-150 mg/dL, sementara pasien bukan PCOS 80-120 mg/dL. Range
tersebut masih berada di kisaran normal. Dimana seseorang akan dikatakan
diabetes jika glukosa darah acak nya > 200 mg/dL.
ggcorr(pcos_clean %>%
select_if(is.numeric), label = T, label_round = 3, label_size=2)
Terdapat korelasi yang kuat positif antara:
1. variabel
Age
dengan Cycle_length
2. Variabel
FSH/LH
dengan BMI
Mari kita lihat scatter plot antar variabel di atas
plot(pcos_clean$Age, pcos_clean$Cycle_length)
abline(lm(pcos_clean$Cycle_length ~ pcos_clean$Age), # garis linear `lm`
col = 'red')
💡 Insight:
Meskipun grafik tidak terlalu
menunjukkan garis korelasi positif, namun nilai korelasi antara age
dengan cycle_length 0.65 yang berarti seiring bertambahnya usia, lama
siklus menstruasi juga bertambah.
plot(pcos_clean$BMI, pcos_clean$`FSH/LH`)
abline(lm(pcos_clean$`FSH/LH` ~ pcos_clean$BMI), # garis linear `lm`
col = 'red')
💡 Insight:
Meskipun grafik tidak terlalu
menunjukkan garis korelasi positif, namun nilai korelasi antara BMI
dengan FSH/LH 0.6 yang berarti semakin tinggi nilai BMI, maka rasio
FSH/LH cenderung semakin tinggi.
<- pcos_clean[,c(1,8)]
data1 <- table(data1)
count1
# Convert the counts to a data frame
<- data.frame(count1)
count_df1 count_df1
#> PCOS Cycle_RI Freq
#> 1 no irregular 56
#> 2 yes irregular 94
#> 3 no regular 307
#> 4 yes regular 83
# Create a stacked bar plot
ggplot(count_df1, aes(x=Freq, y=PCOS, fill=Cycle_RI)) +
geom_bar(stat="identity") +
labs(x="Count", y="PCOS", fill="Cycle_RI") +
ggtitle("PCOS by regular/irregular of menses")
💡 Insight:
Jumlah pasien PCOS yang memiliki simtom
menstruasi tidak teratur lebih banyak (53%) dibandingkan mereka yang
memiliki siklus menstruasi teratur (47%). Selain itu, terdapat sekitar
15% pasien bukan PCOS yang mengalami ketidakteraturan siklus menstruasi.
Meskipun tidak dapat dijadikan sebagai diagnosa tunggal dalam menentukan
PCOS karena prevalensinya hampir sama, namun sebaiknya simtom ini tidak
diabaikan dan segera melakukan pemeriksaan ke dokter gynecology untuk
ditangani lebih lanjut.
plot(pcos_clean$`Cycle_RI`, pcos_clean$BMI, horizontal = T)
💡 Insight:
Wanita yang siklus menstruasinya tidak
teratur cenderung memiliki BMI >25 yang berarti wanita tersebut
mengalami overweight hingga obesitas. Sebaliknya, siklus menstruasi
teratur cenderung dimiliki oleh wanita yang memiliki BMI <25.
plot(pcos_clean$PCOS, pcos_clean$`Waist/Hip`, horizontal=T)
💡 Insight:
Pasien PCOS cenderung memiliki rasio
lingkar pinggang/panggul Waist/Hip
yang lebih tinggi
(>0.9) dibandingkan pasien bukan PCOS (<0.9). Rasio ini merupakan
indikator central obesity atau penimbunan lemak pada perut. Sebuah studi
menunjukkan bahwa pasien PCOS cenderung memiliki rasio waist/hip >
0.87. Beberapa studi lebih menggunakan lingkar pinggang
Waist
sebagai indikator central obesity daripada rasio
Waist/Hip
. Berikut adalah hasil plotnya.
plot(pcos_clean$PCOS, pcos_clean$Waist, horizontal=T)
💡 Insight:
Jika dibandingkan dengan rasio
Waist/Hip
, variabel Waist
lebih menunjukkan
perbedaan antara pasien PCOS dan bukan PCOS, dimana pasien PCOS
cenderung memiliki lebar pinggang >35 inch, sementara pasien bukan
PCOS memiliki lebar pinggang <35 inch.
plot(pcos_clean$PCOS, pcos_clean$BMI, horizontal=T)
💡 Insight:
Pasien PCOS cenderung memiliki BMI
lebih tinggi yaitu >25 yang berarti pasien mengalami overweight dan
obesitas. Meskipun terdapat juga beberapa pasien PCOS yang memiliki BMI
<25 yang berarti memiliki berat badan normal ataupun underweight.
plot(pcos_clean$BMI, pcos_clean$Waist)
abline(lm(pcos_clean$Waist ~ pcos_clean$BMI), # garis linear `lm`
col = 'red')
💡 Insight:
Semakin tinggi BMI wanita, maka lebar
lingkar pinggang nya juga akan semakin meningkat, Hal ini menandakan
bahwa wanita tersebut cenderung mengalami central obesity.
plot(pcos_clean$PCOS, pcos_clean$Pulse_rate, horizontal=T)
summary(pcos_clean$Pulse_rate)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 13.00 72.00 72.00 73.25 74.00 82.00
💡 Insight:
Tidak terdapat perbedaan signifikan
antara denyut nadi pasien PCOS dan bukan PCOS. Untuk menganalisis lebih
lanjut, kita akan coba membandingkan hasilnya dengan plot laju respirasi
pasien.
plot(pcos_clean$PCOS, pcos_clean$Resp_rate, horizontal=T)
summary(pcos_clean$Resp_rate)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 16.00 18.00 18.00 19.24 20.00 28.00
💡 Insight:
Pasien PCOS cenderung memiliki laju
respirasi yang lebih tinggi dibandingkan pasien bukan PCOS, hal ini
dapat dilihat dari nilai median keduanya, dimana pasien PCOS dominan
memiliki laju respirasi dominan 20 breaths/min, sedangkan pasien bukan
PCOS memiliki laju respirasi dominan 18 breaths/min.
plot(pcos_clean$PCOS, pcos_clean$Hb, horizontal=T)
summary(pcos_clean$Hb)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 8.50 10.50 11.00 11.16 11.72 14.80
💡 Insight:
Pasien PCOS cenderung memiliki nilai
Hb yang lebih tinggi >11, sedangkan pasien bukan PCOS cenderung
memiliki nilai Hb <11.
plot(pcos_clean$PCOS, pcos_clean$Cycle_length, horizontal=T)
summary(pcos_clean$Cycle_length)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 0.000 4.000 5.000 4.941 5.000 12.000
💡 Insight:
Pasien PCOS cenderung memiliki
siklus menstruasi yang lebih sedikit < 5 hari, jika dibandingkan
dengan pasien bukan PCOS.
plot(pcos_clean$PCOS, pcos_clean$TSH, horizontal=T)
summary(pcos_clean$TSH)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 0.040 1.480 2.250 2.957 3.570 65.000
💡 Insight:
Tidak terdapat perbedaan signifikan
kadar TSH pada pasien PCOS dan bukan PCOS
plot(pcos_clean$PCOS, pcos_clean$AMH, horizontal=T)
summary(pcos_clean$AMH)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 0.100 2.010 3.700 5.624 6.925 66.000
💡 Insight:
Kadar hormon AMH pada pasien PCOS
cenderung lebih tinggi (>5 ng/mL) dibandingkan pasien bukan PCOS
(>3 ng/mL)
plot(pcos_clean$PCOS, pcos_clean$Prolactin, horizontal=T)
table(pcos_yes$Prolactin<=25)
#>
#> FALSE TRUE
#> 77 100
summary(pcos_clean$Prolactin)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 0.40 14.52 21.92 24.36 29.91 128.24
💡 Insight:
Kadar hormon proklatin pada pasien
PCOS sedikit lebih tinggi dibanding pasien bukan PCOS. Jika diteliti
lebih lanjut, maka dari 541 keseluruhan pasien, 177 diantaranya
merupakan pasien PCOS dimana sekitar 56.4% memiliki kadar hormon
prolaktin normal (<=25 ng/mL) dan 43.5% diantaranya mengalami
hiperprolaktinemia (>25 ng/mL).
plot(pcos_clean$PCOS, pcos_clean$Vit.D3, horizontal=T)
summary(pcos_clean$Vit.D3)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 0.00 20.77 25.90 49.94 34.42 6014.66
💡 Insight:
Tidak terdapat perbedaan signifikan
kadar vitamin D3 dalam darah antara pasien PCOS dan bukan PCOS. Umumnya,
pasien PCOS mengalami defisiensi vitamin D3.
plot(pcos_clean$PCOS, pcos_clean$Progesteron, horizontal=T)
summary(pcos_clean$Progesteron)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 0.0470 0.2500 0.3200 0.6115 0.4525 85.0000
💡 Insight:
Tidak terdapat perbedaan signifikan
kadar hormon progesteron pada pasien PCOS dan bukan PCOS.
plot(pcos_clean$PCOS, pcos_clean$No.left_ventricle, horizontal=T)
summary(pcos_clean$No.left_ventricle)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 0.000 3.000 5.000 6.133 9.000 22.000
💡 Insight:
Jumlah ventrikel kiri pada pasien
PCOS lebih tinggi dibandingkan pasien bukan PCOS.
plot(pcos_clean$PCOS, pcos_clean$No.right_ventricle, horizontal=T)
summary(pcos_clean$No.right_ventricle)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 0.000 3.000 6.000 6.644 10.000 20.000
💡 Insight:
Jumlah ventrikel kanan pada pasien
PCOS lebih tinggi dibandingkan pasien bukan PCOS.
plot(pcos_clean$PCOS, pcos_clean$Avg.size_left_ventricle, horizontal=T)
summary(pcos_clean$Avg.size_left_ventricle)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 0.00 13.00 15.00 15.01 18.00 24.00
💡 Insight:
Rata-rata ukuran ventrikel kiri
pasien PCOS sedikit lebih tinggi (>16 mm) dibandingkan pasien bukan
PCOS (>15 mm)
plot(pcos_clean$PCOS, pcos_clean$Avg.size_right_ventricle, horizontal=T)
summary(pcos_clean$Avg.size_right_ventricle)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 0.00 13.00 16.00 15.45 18.00 24.00
💡 Insight:
Rata-rata ukuran ventrikel kanan
pasien PCOS sedikit lebih tinggi (>16 mm) dibandingkan pasien bukan
PCOS (>15 mm)
plot(pcos_clean$PCOS, pcos_clean$Diameter_endometrium, horizontal=T)
summary(pcos_clean$Diameter_endometrium)
#> Min. 1st Qu. Median Mean 3rd Qu. Max.
#> 0.000 7.000 8.500 8.481 9.800 18.000
💡 Insight:
Diameter endometrium pasien PCOS
sedikit lebih tinggi (>9 mm) dibandingkan pasien bukan PCOS (>8
mm)
Cross validation
RNGkind(sample.kind = "Rounding")
set.seed(123) # mengunci seed agar hasil split sama di tiap komputer
<- sample(nrow(pcos_clean), nrow(pcos_clean)*0.80)
split <- pcos_clean[split, ]
pcos_train <- pcos_clean[-split, ] pcos_test
Reference
[1] https://www.kaggle.com/code/ananyasingh008/pcos-diagnosis/input
[2] https://pcoschallenge.org/
[3] https://academic.oup.com/humrep/article/36/4/1108/6120666?login=false
[4] https://academic.oup.com/database/article/doi/10.1093/database/bax098/4765917?login=false
[5] https://www.couricenter.com/articles/are-you-the-one-in-ten-by-dana-humes-goff-aprn-cnm-dnp/
[6] https://www.nature.com/articles/s41598-022-11006-0
[7] https://www.timeofcare.com/rotterdam-criteria-for-diagnosing-polycystic-ovarian-syndrome-pcos/
[8] https://healthmatch.io/blog/infertility-linked-to-polycystic-ovary-syndrome-pcos-in-women
[9] https://www.ahajournals.org/doi/10.1161/JAHA.121.025839
[10] https://www.researchgate.net/publication/332016860_Waist_hip_ratio_an_anatomical_predictive_marker_of_risk_of_PCOS
[11] https://bmcwomenshealth.biomedcentral.com/articles/10.1186/s12905-022-01630-3
[12] https://www.nichd.nih.gov/health/topics/pcos/conditioninfo/causes