| Nama Lengkap | NIM | Program Studi |
|---|---|---|
| Dwi Sri Yanti Manullang | 52240030 | Sains Data |
| Chello Frhino Mike Mandolang | 52240031 | Sains Data |
Call:
lm(formula = revenue ~ patient_visits + avg_treatment_cost +
operational_cost, data = df)
Residuals:
Min 1Q Median 3Q Max
-370.0 -158.2 -67.9 172.2 6664.1
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.374e+03 2.844e+01 48.336 <2e-16 ***
patient_visits 8.780e-01 5.317e-02 16.513 <2e-16 ***
avg_treatment_cost 1.130e+00 1.064e-02 106.293 <2e-16 ***
operational_cost -1.713e-04 9.326e-05 -1.836 0.0664 .
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 241.4 on 4258 degrees of freedom
Multiple R-squared: 0.7293, Adjusted R-squared: 0.7292
F-statistic: 3825 on 3 and 4258 DF, p-value: < 2.2e-16
Confusion Matrix and Statistics
Reference
Prediction No Yes
No 785 67
Yes 0 0
Accuracy : 0.9214
95% CI : (0.9012, 0.9385)
No Information Rate : 0.9214
P-Value [Acc > NIR] : 0.5325
Kappa : 0
Mcnemar's Test P-Value : 7.433e-16
Sensitivity : 0.00000
Specificity : 1.00000
Pos Pred Value : NaN
Neg Pred Value : 0.92136
Prevalence : 0.07864
Detection Rate : 0.00000
Detection Prevalence : 0.00000
Balanced Accuracy : 0.50000
'Positive' Class : Yes
Area under the curve: 0.7376
Dalam lingkup operasional layanan kesehatan, dataset ini berfungsi sebagai Health Check Dashboard rumah sakit yang merekam performa operasional harian secara komprehensif. Dataset mencakup indikator utama yang merepresentasikan aspek pelayanan, efisiensi operasional, dan kinerja finansial, seperti jumlah kunjungan pasien, beban kerja staf, tingkat okupansi tempat tidur, biaya operasional, pendapatan, profit, kepuasan pasien, serta status churn. Tujuan strategis dari analisis ini adalah untuk mengevaluasi dan mengoptimalkan kinerja rumah sakit melalui pemahaman hubungan antara beban operasional, kualitas layanan, dan hasil finansial, sekaligus memitigasi risiko churn pasien sebagai indikator keberlanjutan layanan. Variabel target utama dalam analisis difokuskan pada profit sebagai indikator efisiensi margin keuangan dan churn sebagai indikator retensi pasien, sehingga hasil analisis diharapkan mampu mendukung pengambilan keputusan manajerial yang berbasis data dan berorientasi pada peningkatan kualitas serta keberlanjutan layanan kesehatan.
Grafik deret waktu jumlah kunjungan pasien menunjukkan adanya fluktuasi kunjungan dari waktu ke waktu yang tidak bersifat konstan. Pola ini mengindikasikan bahwa jumlah pasien dipengaruhi oleh faktor temporal tertentu, seperti periode layanan, perubahan kebijakan, atau kondisi eksternal. Ketidakstabilan tren tersebut menegaskan bahwa variabel waktu memiliki peran penting dalam dataset dan tidak dapat diabaikan dalam analisis. Oleh karena itu, dataset ini memiliki karakteristik deret waktu yang relevan untuk analisis lanjutan, seperti identifikasi tren jangka panjang atau pola musiman dalam kunjungan pasien.
Histogram tingkat kepuasan pasien memperlihatkan bagaimana skor kepuasan tersebar di seluruh observasi, dengan mayoritas data terkonsentrasi pada rentang nilai tertentu. Distribusi yang tidak sepenuhnya simetris menunjukkan adanya variasi persepsi kualitas layanan di antara pasien. Pola sebaran ini mengindikasikan bahwa kepuasan pasien merupakan variabel numerik kontinu yang informatif dan berpotensi memiliki skewness, sehingga perlu diperhatikan dalam proses pemodelan. Selain itu, variasi kepuasan ini relevan untuk dianalisis lebih lanjut karena dapat memengaruhi perilaku pasien, termasuk kemungkinan terjadinya churn.
Boxplot biaya operasional menunjukkan sebaran biaya yang relatif lebar serta keberadaan beberapa nilai ekstrem atau outlier. Hal ini mengindikasikan bahwa pada periode tertentu terjadi lonjakan biaya operasional yang berbeda secara signifikan dibandingkan kondisi normal. Keberadaan outlier ini penting untuk diperhatikan karena dapat memengaruhi hasil analisis statistik maupun kinerja model prediktif. Oleh karena itu, variabel biaya operasional memerlukan penanganan khusus dalam analisis lanjutan, seperti evaluasi penyebab lonjakan biaya atau penerapan metode pemodelan yang lebih robust.
Scatter plot antara jumlah kunjungan pasien dan pendapatan menunjukkan adanya hubungan positif, di mana peningkatan jumlah kunjungan cenderung diikuti oleh peningkatan pendapatan. Pola ini mengindikasikan bahwa aktivitas operasional memiliki kontribusi langsung terhadap kinerja finansial. Meskipun demikian, sebaran titik data yang tidak sepenuhnya linear menunjukkan bahwa pendapatan tidak hanya dipengaruhi oleh jumlah pasien, tetapi juga oleh faktor lain. Hubungan ini mendukung penggunaan analisis korelasi atau regresi sebagai pendekatan yang sesuai untuk memahami keterkaitan antar variabel tersebut.
Boxplot yang membandingkan tingkat kepuasan pasien berdasarkan status churn menunjukkan perbedaan distribusi yang jelas antara pasien yang churn dan yang tidak. Pasien yang mengalami churn cenderung memiliki tingkat kepuasan yang lebih rendah dibandingkan pasien yang bertahan, baik dari segi median maupun sebaran data. Temuan ini mengindikasikan adanya hubungan antara kepuasan pasien dan churn, sehingga kepuasan pasien dapat dianggap sebagai faktor penting dalam memahami perilaku churn. Oleh karena itu, variabel ini sangat relevan untuk digunakan sebagai prediktor utama dalam pengembangan model klasifikasi churn.
Analisis regresi bertujuan untuk mengukur pengaruh faktor operasional dan biaya layanan terhadap pendapatan rumah sakit (revenue). Pendekatan ini digunakan untuk memahami bagaimana volume kunjungan pasien, biaya perawatan rata-rata, dan biaya operasional secara simultan membentuk kinerja finansial rumah sakit, sehingga dapat digunakan sebagai dasar pengambilan keputusan manajerial berbasis data.
Berdasarkan model yang dibangun, variabel yang digunakan adalah:
A. Variabel dependen:
Variabel independen:
patient_visits (jumlah kunjungan pasien)
avg_treatment_cost (rata-rata biaya perawatan)
operational_cost (biaya operasional)
Pemilihan variabel ini didasarkan pada perannya dalam merepresentasikan volume layanan, nilai layanan medis, serta beban biaya operasional yang secara langsung memengaruhi pendapatan rumah sakit.
Model yang digunakan adalah regresi linear multivariat, karena variabel target bersifat kontinu dan tujuan utama analisis adalah menginterpretasikan pengaruh masing-masing faktor terhadap pendapatan, bukan semata-mata melakukan prediksi. Model ini memungkinkan evaluasi simultan dari beberapa variabel operasional dalam satu kerangka analisis yang sederhana, transparan, dan mudah diinterpretasikan.
Hasil estimasi menunjukkan bahwa hubungan antara variabel independen dan revenue dapat diasumsikan linier, sebagaimana tercermin dari stabilitas koefisien dan signifikansi statistik model. Distribusi residual secara umum berada di sekitar nol, meskipun terdapat nilai residual maksimum yang relatif besar, yang mengindikasikan adanya kemungkinan heteroskedastisitas atau pengaruh nilai ekstrem pada pendapatan tinggi. Karena data bersifat observasi harian, asumsi independensi observasi dianggap terpenuhi, meskipun analisis lanjutan berbasis deret waktu dapat dilakukan untuk menguji potensi autokorelasi residual.
Berdasarkan hasil regresi, variabel patient_visits memiliki koefisien positif dan signifikan secara statistik (p < 0,001), yang menunjukkan bahwa setiap peningkatan jumlah kunjungan pasien berkontribusi langsung terhadap peningkatan pendapatan rumah sakit. Variabel avg_treatment_cost juga menunjukkan pengaruh positif yang sangat signifikan, mengindikasikan bahwa peningkatan nilai layanan medis rata-rata berasosiasi kuat dengan peningkatan pendapatan. Sebaliknya, operational_cost memiliki koefisien negatif dengan tingkat signifikansi marginal (p ≈ 0,066), yang menunjukkan bahwa peningkatan biaya operasional cenderung menekan pendapatan, meskipun pengaruhnya relatif lebih lemah dibandingkan variabel lainnya.
Kinerja model dievaluasi menggunakan Multiple R-squared sebesar 0,729, yang menunjukkan bahwa sekitar 72,9% variasi pendapatan rumah sakit dapat dijelaskan oleh model. Nilai ini mengindikasikan kemampuan penjelasan model yang kuat. Selain itu, nilai Residual Standard Error sebesar 241,4 menunjukkan besarnya rata-rata deviasi prediksi terhadap nilai aktual. Uji F-statistic yang signifikan (p < 0,001) menegaskan bahwa model secara keseluruhan memiliki kemampuan prediktif yang bermakna secara statistik.
Meskipun model regresi ini memiliki daya jelaskan yang tinggi, terdapat beberapa keterbatasan yang perlu diperhatikan. Model linear belum mampu menangkap hubungan non-linear yang mungkin terjadi antara biaya operasional dan pendapatan. Selain itu, adanya indikasi residual ekstrem menunjukkan potensi heteroskedastisitas yang dapat memengaruhi akurasi estimasi parameter. Pengembangan lanjutan dapat dilakukan dengan menerapkan transformasi variabel, model non-linear, atau memasukkan faktor tambahan seperti variabel waktu dan karakteristik pasien untuk meningkatkan ketepatan dan robustnes model.
Tujuan dari analisis klasifikasi ini adalah untuk memprediksi status churn pasien (Yes atau No) berdasarkan karakteristik operasional dan layanan kesehatan. Analisis ini bertujuan mendukung pengambilan keputusan strategis dengan mengidentifikasi pasien yang berpotensi berhenti menggunakan layanan, sehingga institusi healthcare dapat merancang intervensi preventif untuk meningkatkan retensi pasien.
Variabel target dalam analisis ini adalah churn, yang bersifat biner dengan dua kelas, yaitu Yes (pasien churn) dan No (pasien tidak churn). Variabel independen yang digunakan meliputi patient_visits, avg_treatment_cost, operational_cost, patient_satisfaction, dan efficiency_index, yang secara konseptual merepresentasikan intensitas layanan, biaya, kualitas pelayanan, serta efisiensi operasional yang relevan terhadap perilaku churn pasien.
Distribusi kelas pada variabel target menunjukkan adanya ketidakseimbangan kelas (class imbalance) yang signifikan, di mana proporsi pasien churn hanya sekitar 7,86%, sedangkan mayoritas observasi berada pada kelas No. Kondisi ini menyebabkan model cenderung memprediksi kelas mayoritas, yang berdampak pada rendahnya kemampuan model dalam mendeteksi kelas minoritas, meskipun nilai akurasi terlihat tinggi.
Metode klasifikasi yang digunakan adalah regresi logistik, karena sesuai untuk permasalahan klasifikasi biner, memiliki interpretabilitas yang baik, serta umum digunakan dalam analisis risiko dan churn pada sektor healthcare. Model dilatih dan diuji menggunakan strategi train–test split dengan proporsi 80% data latih dan 20% data uji, sehingga memungkinkan evaluasi performa model pada data yang tidak digunakan selama proses pelatihan.
Evaluasi kinerja model dilakukan menggunakan beberapa metrik, termasuk akurasi, sensitivitas (recall), spesifisitas, balanced accuracy, serta ROC-AUC sebagai metrik utama. Hasil evaluasi menunjukkan bahwa model mencapai akurasi sebesar 92,14% dan spesifisitas sebesar 1,00, namun memiliki sensitivitas sebesar 0, yang mengindikasikan bahwa model gagal mengidentifikasi pasien churn pada data uji. Nilai ROC-AUC sebesar 0,7376 menunjukkan bahwa secara probabilistik model masih memiliki kemampuan diskriminatif yang cukup baik dalam membedakan pasien churn dan non-churn, meskipun performa klasifikasi aktual pada kelas minoritas masih terbatas.
Secara keseluruhan, model regresi logistik memiliki kelebihan dalam hal kesederhanaan, stabilitas, dan kemudahan interpretasi, serta mampu memodelkan hubungan antara variabel independen dan probabilitas churn secara logis. Namun, kelemahan utama model terletak pada ketidakmampuannya menangani ketidakseimbangan kelas, yang menyebabkan rendahnya sensitivitas terhadap pasien churn. Untuk meningkatkan kinerja model, perbaikan dapat dilakukan melalui penyesuaian threshold klasifikasi, penerapan teknik penyeimbangan data (seperti oversampling atau SMOTE), atau penggunaan metode klasifikasi alternatif yang lebih robust terhadap data tidak seimbang.
Analisis pengelompokan dilakukan dengan tujuan untuk mengidentifikasi pola segmentasi periode operasional rumah sakit berdasarkan karakteristik layanan, efisiensi, dan kepuasan pasien. Melalui clustering, diharapkan dapat diketahui kelompok periode operasional yang memiliki kinerja serupa sehingga manajemen dapat memahami perbedaan kondisi operasional secara lebih terstruktur dan mendukung pengambilan keputusan berbasis segmentasi data.
Variabel yang digunakan dalam analisis clustering meliputi patient_visits, avg_treatment_cost, bed_occupancy_rate, efficiency_index, dan patient_satisfaction. Variabel-variabel ini dipilih karena merepresentasikan dimensi utama operasional, finansial, dan kualitas layanan rumah sakit. Sebelum proses clustering dilakukan, data melalui tahap prapemrosesan berupa penghapusan nilai hilang dan penskalaan (standardization) menggunakan metode z-score. Penskalaan diperlukan untuk memastikan bahwa seluruh variabel berada pada skala yang sebanding sehingga tidak ada variabel tertentu yang mendominasi pembentukan kluster.
Metode pengelompokan yang digunakan adalah K-Means Clustering. K-Means dipilih karena metode ini efisien untuk dataset berukuran besar, mudah diinterpretasikan, dan sesuai untuk data numerik kontinu. Selain itu, K-Means mampu menghasilkan kluster dengan karakteristik yang jelas berdasarkan kedekatan jarak antar observasi dalam ruang multidimensi.
Jumlah kluster optimal ditentukan menggunakan Elbow Method dengan mengevaluasi nilai within-cluster sum of squares (WCSS). Berdasarkan hasil analisis elbow, titik siku (elbow) terlihat pada jumlah kluster sebanyak tiga, yang menunjukkan bahwa penambahan kluster setelah titik tersebut tidak memberikan penurunan WCSS yang signifikan. Oleh karena itu, jumlah kluster optimal yang digunakan dalam analisis ini adalah tiga kluster.
Hasil cluster scatter plot menunjukkan terbentuknya tiga kluster dengan karakteristik yang berbeda. Kluster pertama umumnya merepresentasikan periode dengan jumlah kunjungan pasien tinggi dan indeks efisiensi yang relatif baik, yang mencerminkan kondisi operasional optimal. Kluster kedua menunjukkan periode dengan kunjungan pasien sedang namun efisiensi yang lebih rendah, yang mengindikasikan potensi inefisiensi operasional. Sementara itu, kluster ketiga cenderung menggambarkan periode dengan kunjungan pasien lebih rendah dan variasi efisiensi yang lebih besar, yang dapat merepresentasikan kondisi operasional kurang stabil atau periode transisi.
Hasil pengelompokan ini memberikan implikasi praktis yang penting bagi manajemen rumah sakit. Segmentasi periode operasional memungkinkan identifikasi kondisi yang memerlukan perhatian khusus, seperti periode dengan efisiensi rendah atau kepuasan pasien yang menurun. Selain itu, kluster dengan kinerja tinggi dapat dijadikan acuan praktik terbaik (best practice) untuk diterapkan pada periode lain. Dengan demikian, analisis clustering dapat dimanfaatkan sebagai dasar dalam perencanaan kapasitas, optimalisasi sumber daya, serta peningkatan kualitas layanan secara berkelanjutan.
Dataset memiliki struktur deret waktu harian, dengan variabel date sebagai indeks waktu dan revenue sebagai variabel numerik yang diamati secara berurutan. Struktur ini memungkinkan analisis dinamika pendapatan dari waktu ke waktu serta penerapan metode peramalan berbasis time series.
Berdasarkan visualisasi historis dan hasil peramalan, data menunjukkan adanya pola tren yang relatif stabil dengan fluktuasi jangka pendek di sekitar nilai rata-rata. Pola musiman tidak tampak dominan, sementara variasi acak (noise) masih muncul akibat faktor operasional dan eksternal yang tidak terobservasi secara langsung dalam dataset.
Metode ARIMA (AutoRegressive Integrated Moving Average) diterapkan untuk memodelkan dan meramalkan pendapatan karena model ini efektif dalam menangkap pola tren dan kebisingan pada data non-musiman tanpa memerlukan variabel penjelas tambahan. Model ini menghasilkan proyeksi nilai revenue untuk beberapa periode ke depan disertai interval kepercayaan.
Pemilihan parameter ARIMA dilakukan menggunakan fungsi auto.arima(), yang secara otomatis menentukan kombinasi parameter terbaik berdasarkan kriteria informasi (AIC). Pendekatan ini dipilih untuk memastikan model yang parsimonious, objektif, dan sesuai dengan karakteristik data historis tanpa asumsi musiman yang kuat.
Kinerja model dievaluasi secara deskriptif melalui kesesuaian antara nilai aktual dan hasil peramalan serta lebar confidence interval pada grafik Forecast Plot. Interval kepercayaan yang relatif stabil menunjukkan bahwa model mampu menangkap pola utama data, meskipun evaluasi numerik seperti RMSE atau MAE dapat digunakan pada pengembangan lanjutan untuk penilaian yang lebih kuantitatif.
Hasil peramalan menunjukkan bahwa pendapatan diperkirakan mengikuti pola historis tanpa perubahan ekstrem dalam jangka pendek. Namun, ketidakpastian tetap ada, sebagaimana tercermin pada interval kepercayaan, yang dapat berasal dari fluktuasi permintaan layanan, perubahan kebijakan operasional, maupun faktor eksternal yang tidak dimodelkan. Oleh karena itu, hasil peramalan sebaiknya digunakan sebagai alat pendukung keputusan, bukan prediksi deterministik.
Conclusion and Recommendations
Berdasarkan analisis EDA, regresi, klasifikasi, klustering, dan deret waktu, dataset healthcare ini menunjukkan bahwa kinerja finansial rumah sakit dipengaruhi secara signifikan oleh dinamika operasional dan permintaan layanan. Analisis regresi menegaskan bahwa jumlah kunjungan pasien dan biaya perawatan rata-rata berkontribusi positif terhadap pendapatan, sementara biaya operasional berperan sebagai faktor pembatas efisiensi. Analisis klasifikasi mengindikasikan adanya ketidakseimbangan kelas pada variabel churn yang menyebabkan model lebih efektif dalam mengidentifikasi pasien yang tidak churn dibandingkan pasien berisiko, sedangkan analisis klustering mengungkap heterogenitas pola efisiensi dan intensitas layanan antar segmen operasional. Selain itu, analisis deret waktu menunjukkan bahwa pendapatan cenderung mengikuti pola historis yang stabil dengan fluktuasi jangka pendek tanpa indikasi perubahan ekstrem. Secara keseluruhan, hasil ini menyiratkan bahwa peningkatan kinerja rumah sakit memerlukan strategi yang terfokus pada optimalisasi efisiensi operasional per segmen, penguatan model deteksi churn yang lebih sensitif, serta pemanfaatan hasil peramalan pendapatan sebagai dasar perencanaan keuangan jangka pendek yang berbasis data.
---
title: "UAS Analisis dan Pemodelan Prediktif"
output:
flexdashboard::flex_dashboard:
theme: yeti
source_code: embed
---
```{r setup, include=FALSE}
packages <- c(
"flexdashboard",
"tidyverse",
"highcharter",
"viridis",
"DT",
"gapminder",
"jsonlite"
)
installed <- packages %in% rownames(installed.packages())
if (any(!installed)) {
install.packages(packages[!installed])
}
# Load library
library(flexdashboard)
library(tidyverse)
library(highcharter)
library(viridis)
library(DT)
library(gapminder)
library(jsonlite)
```
Members {data-orientation=rows}
=======================================================================
### Foto Tim
<div style="text-align:center;">
<img src="Foto.tim.jpeg"
style="
width:500px;
height:500px;
border-radius:50%;
object-fit:cover;
">
</div>
| Nama Lengkap | NIM | Program Studi |
|:-------------------------:|:----------:|:-------------:|
| Dwi Sri Yanti Manullang | 52240030 | Sains Data |
| Chello Frhino Mike Mandolang| 52240031 | Sains Data |
---
Dataset {data-orientation=rows}
=======================================================================
### Table healthcare_Dataset
```{r, echo=FALSE, message=FALSE, warning=FALSE}
library(readr)
library(dplyr)
library(DT)
# Load dataset (RAW — tidak dimodifikasi)
df <- read_csv("healthcare_Dataset.csv", show_col_types = FALSE)
# Display interactive table with download buttons
datatable(
df,
extensions = "Buttons",
options = list(
dom = "Bfrtip",
buttons = c("copy", "csv", "excel", "pdf"),
scrollX = TRUE,
pageLength = 10,
autoWidth = TRUE
),
caption = htmltools::tags$caption(
style = 'caption-side: bottom; text-align: center;',
'Table: ',
htmltools::em('Healthcare Dataset')
)
)
```
---
EDA {data-orientation=rows}
=======================================================================
## Column {.tabset .tabset-fade data-height=520}
-----------------------------------------------------------------------
### Chart 1 {data-width=600 data-height=510}
```{r, echo=FALSE, message=FALSE, warning=FALSE}
library(readr)
library(dplyr)
library(ggplot2)
library(plotly)
df <- read_csv("healthcare_Dataset.csv", show_col_types = FALSE)
df$date <- as.Date(df$date)
#1. Patient Visits Over Time
p1 <- ggplot(df, aes(x = date, y = patient_visits)) +
geom_line(color = "#2C7FB8") +
labs(
title = "Patient Visits Over Time",
x = "Date",
y = "Number of Patient Visits"
) +
theme_minimal()
ggplotly(p1)
```
---
### Chart 2 {data-width=600 data-height=510}
```{r, echo=FALSE, message=FALSE, warning=FALSE}
library(readr)
library(dplyr)
library(ggplot2)
library(plotly)
df <- read_csv("healthcare_Dataset.csv", show_col_types = FALSE)
df$date <- as.Date(df$date)
#2. Distribution of Patient Satisfaction
p2 <- ggplot(df, aes(x = patient_satisfaction)) +
geom_histogram(bins = 20, fill = "#7FCDBB", color = "white") +
labs(
title = "Distribution of Patient Satisfaction",
x = "Patient Satisfaction Score",
y = "Frequency"
) +
theme_minimal()
ggplotly(p2)
```
---
### Chart 3 {data-width=600 data-height=510}
```{r, echo=FALSE, message=FALSE, warning=FALSE}
library(readr)
library(dplyr)
library(ggplot2)
library(plotly)
df <- read_csv("healthcare_Dataset.csv", show_col_types = FALSE)
df$date <- as.Date(df$date)
#3. Operational Cost Distribution
p3 <- ggplot(df, aes(y = operational_cost)) +
geom_boxplot(fill = "#F03B20", alpha = 0.7) +
labs(
title = "Operational Cost Distribution",
y = "Operational Cost"
) +
theme_minimal()
ggplotly(p3)
```
---
### Chart 4 {data-width=600 data-height=510}
```{r, echo=FALSE, message=FALSE, warning=FALSE}
library(readr)
library(dplyr)
library(ggplot2)
library(plotly)
df <- read_csv("healthcare_Dataset.csv", show_col_types = FALSE)
df$date <- as.Date(df$date)
#4. Relationship between Patient Visits and Revenue
p4 <- ggplot(df, aes(x = patient_visits, y = revenue)) +
geom_point(alpha = 0.6, color = "#4D004B") +
geom_smooth(method = "lm", se = FALSE, color = "black") +
labs(
title = "Relationship Between Patient Visits and Revenue",
x = "Patient Visits",
y = "Revenue"
) +
theme_minimal()
ggplotly(p4)
```
---
### Chart 5 {data-width=600 data-height=510}
```{r, echo=FALSE, message=FALSE, warning=FALSE}
library(readr)
library(dplyr)
library(ggplot2)
library(plotly)
df <- read_csv("healthcare_Dataset.csv", show_col_types = FALSE)
df$date <- as.Date(df$date)
#5. Patient Satisfaction by Churn Status
p5 <- ggplot(df, aes(x = churn, y = patient_satisfaction, fill = churn)) +
geom_boxplot(alpha = 0.7) +
labs(
title = "Patient Satisfaction by Churn Status",
x = "Churn Status",
y = "Patient Satisfaction"
) +
theme_minimal() +
theme(legend.position = "none")
ggplotly(p5)
```
---
Regresi
=======================================================================
### Coefficient Plot
```{r, echo=FALSE, message=FALSE, warning=FALSE}
library(readr)
library(dplyr)
library(ggplot2)
library(plotly)
library(broom)
df <- read_csv("healthcare_Dataset.csv", show_col_types = FALSE)
df <- df %>%
drop_na(revenue, patient_visits, avg_treatment_cost, operational_cost)
model <- lm(
revenue ~ patient_visits + avg_treatment_cost + operational_cost,
data = df
)
summary(model)
coef_df <- tidy(model, conf.int = TRUE)
p5 <- ggplot(coef_df[-1, ], aes(x = reorder(term, estimate), y = estimate)) +
geom_point(color = "#6BAED6", size = 3) +
geom_errorbar(
aes(ymin = conf.low, ymax = conf.high),
width = 0.2,
color = "#4D4D4D"
) +
coord_flip() +
labs(
title = "Regression Coefficients with Confidence Intervals",
x = "Independent Variables",
y = "Coefficient Estimate"
) +
theme_minimal()
ggplotly(p5)
```
---
Klasifikasi
=======================================================================
```{r, echo=FALSE, message=FALSE, warning=FALSE}
# Library
library(caret)
library(pROC)
library(ggplot2)
# Pastikan target factor dengan level benar
df$churn <- factor(df$churn, levels = c("No", "Yes"))
# Train-test split
set.seed(123)
index <- createDataPartition(df$churn, p = 0.8, list = FALSE)
train_data <- df[index, ]
test_data <- df[-index, ]
# Logistic Regression
model_logit <- glm(
churn ~ patient_visits + avg_treatment_cost + operational_cost +
patient_satisfaction + efficiency_index,
data = train_data,
family = binomial
)
# Prediksi probabilitas churn
prob_test <- predict(model_logit, test_data, type = "response")
# Konversi ke kelas (KONSISTEN DENGAN LEVEL)
pred_class <- factor(
ifelse(prob_test > 0.5, "Yes", "No"),
levels = c("No", "Yes")
)
# Confusion Matrix
confusionMatrix(
pred_class,
test_data$churn,
positive = "Yes"
)
# ROC Curve
roc_obj <- roc(
response = test_data$churn,
predictor = prob_test
)
plot(
roc_obj,
main = "ROC Curve – Logistic Regression for Churn Prediction",
lwd = 2
)
# AUC (AMAN)
roc_obj$auc
```
---
Klustering
=======================================================================
```{r, echo=FALSE, message=FALSE, warning=FALSE}
library(readr)
library(dplyr)
library(ggplot2)
library(plotly)
df <- read_csv("healthcare_Dataset.csv", show_col_types = FALSE)
cluster_data <- df %>%
select(
patient_visits,
avg_treatment_cost,
bed_occupancy_rate,
efficiency_index,
patient_satisfaction
) %>%
drop_na()
cluster_scaled <- scale(cluster_data)
set.seed(123)
kmeans_model <- kmeans(cluster_scaled, centers = 3, nstart = 25)
cluster_df <- cluster_data %>%
mutate(cluster = factor(kmeans_model$cluster))
p_cluster <- ggplot(
cluster_df,
aes(
x = patient_visits,
y = efficiency_index,
color = cluster
)
) +
geom_point(size = 2, alpha = 0.7) +
labs(
title = "Cluster Scatter Plot of Hospital Operational Patterns",
x = "Patient Visits",
y = "Efficiency Index",
color = "Cluster"
) +
theme_minimal()
ggplotly(p_cluster)
```
---
Time Series
=======================================================================
```{r, echo=FALSE, message=FALSE, warning=FALSE}
# =========================
# LIBRARIES
# =========================
library(readr)
library(dplyr)
library(ggplot2)
library(plotly)
library(forecast)
library(lubridate)
# =========================
# LOAD & PREP DATA
# =========================
df <- read_csv("healthcare_Dataset.csv", show_col_types = FALSE)
df$date <- as.Date(df$date)
# Agregasi harian (aman kalau sudah harian)
ts_data <- df %>%
group_by(date) %>%
summarise(revenue = sum(revenue, na.rm = TRUE)) %>%
arrange(date)
# =========================
# TIME SERIES OBJECT
# =========================
revenue_ts <- ts(
ts_data$revenue,
frequency = 365
)
# =========================
# ARIMA MODEL
# =========================
model_arima <- auto.arima(revenue_ts)
# =========================
# FORECAST
# =========================
forecast_arima <- forecast(model_arima, h = 30)
# =========================
# FORECAST PLOT
# =========================
p_forecast <- autoplot(forecast_arima) +
labs(
title = "Revenue Forecast Using ARIMA Model",
x = "Time",
y = "Revenue"
) +
theme_minimal()
ggplotly(p_forecast)
```
---
Insight
=======================================================================
## Column {.tabset .tabset-fade data-height=520}
-----------------------------------------------------------------------
### Dataset
Dalam lingkup operasional layanan kesehatan, dataset ini berfungsi sebagai **Health Check Dashboard rumah sakit** yang merekam performa operasional harian secara komprehensif. Dataset mencakup indikator utama yang merepresentasikan aspek pelayanan, efisiensi operasional, dan kinerja finansial, seperti jumlah kunjungan pasien, beban kerja staf, tingkat okupansi tempat tidur, biaya operasional, pendapatan, profit, kepuasan pasien, serta status churn. Tujuan strategis dari analisis ini adalah untuk mengevaluasi dan mengoptimalkan kinerja rumah sakit melalui pemahaman hubungan antara beban operasional, kualitas layanan, dan hasil finansial, sekaligus memitigasi risiko churn pasien sebagai indikator keberlanjutan layanan. Variabel target utama dalam analisis difokuskan pada *profit* sebagai indikator efisiensi margin keuangan dan *churn* sebagai indikator retensi pasien, sehingga hasil analisis diharapkan mampu mendukung pengambilan keputusan manajerial yang berbasis data dan berorientasi pada peningkatan kualitas serta keberlanjutan layanan kesehatan.
---
### Exploratory Data Analysis (EDA)
1. **Time Series : Patient Visits Over Time**
Grafik deret waktu jumlah kunjungan pasien menunjukkan adanya fluktuasi kunjungan dari waktu ke waktu yang tidak bersifat konstan. Pola ini mengindikasikan bahwa jumlah pasien dipengaruhi oleh faktor temporal tertentu, seperti periode layanan, perubahan kebijakan, atau kondisi eksternal. Ketidakstabilan tren tersebut menegaskan bahwa variabel waktu memiliki peran penting dalam dataset dan tidak dapat diabaikan dalam analisis. Oleh karena itu, dataset ini memiliki karakteristik deret waktu yang relevan untuk analisis lanjutan, seperti identifikasi tren jangka panjang atau pola musiman dalam kunjungan pasien.
---
2. **Histogram : Distribution of Patient Satisfaction**
Histogram tingkat kepuasan pasien memperlihatkan bagaimana skor kepuasan tersebar di seluruh observasi, dengan mayoritas data terkonsentrasi pada rentang nilai tertentu. Distribusi yang tidak sepenuhnya simetris menunjukkan adanya variasi persepsi kualitas layanan di antara pasien. Pola sebaran ini mengindikasikan bahwa kepuasan pasien merupakan variabel numerik kontinu yang informatif dan berpotensi memiliki skewness, sehingga perlu diperhatikan dalam proses pemodelan. Selain itu, variasi kepuasan ini relevan untuk dianalisis lebih lanjut karena dapat memengaruhi perilaku pasien, termasuk kemungkinan terjadinya churn.
---
3. **Boxplot : Operational Cost Distribution**
Boxplot biaya operasional menunjukkan sebaran biaya yang relatif lebar serta keberadaan beberapa nilai ekstrem atau outlier. Hal ini mengindikasikan bahwa pada periode tertentu terjadi lonjakan biaya operasional yang berbeda secara signifikan dibandingkan kondisi normal. Keberadaan outlier ini penting untuk diperhatikan karena dapat memengaruhi hasil analisis statistik maupun kinerja model prediktif. Oleh karena itu, variabel biaya operasional memerlukan penanganan khusus dalam analisis lanjutan, seperti evaluasi penyebab lonjakan biaya atau penerapan metode pemodelan yang lebih robust.
---
4. **Scatter Plot – Patient Visits vs Revenue**
Scatter plot antara jumlah kunjungan pasien dan pendapatan menunjukkan adanya hubungan positif, di mana peningkatan jumlah kunjungan cenderung diikuti oleh peningkatan pendapatan. Pola ini mengindikasikan bahwa aktivitas operasional memiliki kontribusi langsung terhadap kinerja finansial. Meskipun demikian, sebaran titik data yang tidak sepenuhnya linear menunjukkan bahwa pendapatan tidak hanya dipengaruhi oleh jumlah pasien, tetapi juga oleh faktor lain. Hubungan ini mendukung penggunaan analisis korelasi atau regresi sebagai pendekatan yang sesuai untuk memahami keterkaitan antar variabel tersebut.
---
5. **Boxplot – Patient Satisfaction by Churn Status**
Boxplot yang membandingkan tingkat kepuasan pasien berdasarkan status churn menunjukkan perbedaan distribusi yang jelas antara pasien yang churn dan yang tidak. Pasien yang mengalami churn cenderung memiliki tingkat kepuasan yang lebih rendah dibandingkan pasien yang bertahan, baik dari segi median maupun sebaran data. Temuan ini mengindikasikan adanya hubungan antara kepuasan pasien dan churn, sehingga kepuasan pasien dapat dianggap sebagai faktor penting dalam memahami perilaku churn. Oleh karena itu, variabel ini sangat relevan untuk digunakan sebagai prediktor utama dalam pengembangan model klasifikasi churn.
---
### Analisis Regresi
1. **Tujuan Analisis Regresi**
Analisis regresi bertujuan untuk **mengukur pengaruh faktor operasional dan biaya layanan terhadap pendapatan rumah sakit (revenue)**. Pendekatan ini digunakan untuk memahami bagaimana volume kunjungan pasien, biaya perawatan rata-rata, dan biaya operasional secara simultan membentuk kinerja finansial rumah sakit, sehingga dapat digunakan sebagai dasar pengambilan keputusan manajerial berbasis data.
---
2. **Identifikasi Variabel Dependen dan Independen**
Berdasarkan model yang dibangun, variabel yang digunakan adalah:
A. **Variabel dependen:**
- *revenue* (pendapatan rumah sakit)
**Variabel independen:**
- *patient_visits* (jumlah kunjungan pasien)
- *avg_treatment_cost* (rata-rata biaya perawatan)
- *operational_cost* (biaya operasional)
Pemilihan variabel ini didasarkan pada perannya dalam merepresentasikan **volume layanan, nilai layanan medis**, serta **beban biaya operasional** yang secara langsung memengaruhi pendapatan rumah sakit.
---
3. **Pemilihan dan Justifikasi Model Regresi**
Model yang digunakan adalah **regresi linear multivariat**, karena variabel target bersifat kontinu dan tujuan utama analisis adalah **menginterpretasikan pengaruh masing-masing faktor terhadap pendapatan**, bukan semata-mata melakukan prediksi. Model ini memungkinkan evaluasi simultan dari beberapa variabel operasional dalam satu kerangka analisis yang sederhana, transparan, dan mudah diinterpretasikan.
---
4. **Pemeriksaan dan Diskusi Asumsi Model**
Hasil estimasi menunjukkan bahwa hubungan antara variabel independen dan *revenue* dapat diasumsikan linier, sebagaimana tercermin dari stabilitas koefisien dan signifikansi statistik model. Distribusi residual secara umum berada di sekitar nol, meskipun terdapat nilai residual maksimum yang relatif besar, yang mengindikasikan adanya kemungkinan heteroskedastisitas atau pengaruh nilai ekstrem pada pendapatan tinggi. Karena data bersifat observasi harian, asumsi independensi observasi dianggap terpenuhi, meskipun analisis lanjutan berbasis deret waktu dapat dilakukan untuk menguji potensi autokorelasi residual.
---
5. **Interpretasi Koefisien Model dan Signifikansi Statistik**
Berdasarkan hasil regresi, variabel *patient_visits* memiliki **koefisien positif dan signifikan secara statistik** (p < 0,001), yang menunjukkan bahwa setiap peningkatan jumlah kunjungan pasien berkontribusi langsung terhadap peningkatan pendapatan rumah sakit. Variabel *avg_treatment_cost* juga menunjukkan **pengaruh positif yang sangat signifikan**, mengindikasikan bahwa peningkatan nilai layanan medis rata-rata berasosiasi kuat dengan peningkatan pendapatan. Sebaliknya, *operational_cost* memiliki koefisien negatif dengan tingkat signifikansi marginal (p ≈ 0,066), yang menunjukkan bahwa peningkatan biaya operasional cenderung menekan pendapatan, meskipun pengaruhnya relatif lebih lemah dibandingkan variabel lainnya.
---
6. **Evaluasi Kinerja Model**
Kinerja model dievaluasi menggunakan **Multiple R-squared sebesar 0,729**, yang menunjukkan bahwa sekitar **72,9% variasi pendapatan rumah sakit dapat dijelaskan oleh model**. Nilai ini mengindikasikan kemampuan penjelasan model yang kuat. Selain itu, nilai **Residual Standard Error sebesar 241,4** menunjukkan besarnya rata-rata deviasi prediksi terhadap nilai aktual. Uji F-statistic yang signifikan (p < 0,001) menegaskan bahwa model secara keseluruhan memiliki kemampuan prediktif yang bermakna secara statistik.
---
7. **Batasan Model dan Potensi Perbaikan**
Meskipun model regresi ini memiliki daya jelaskan yang tinggi, terdapat beberapa keterbatasan yang perlu diperhatikan. Model linear belum mampu menangkap hubungan non-linear yang mungkin terjadi antara biaya operasional dan pendapatan. Selain itu, adanya indikasi residual ekstrem menunjukkan potensi heteroskedastisitas yang dapat memengaruhi akurasi estimasi parameter. Pengembangan lanjutan dapat dilakukan dengan menerapkan transformasi variabel, model non-linear, atau memasukkan faktor tambahan seperti variabel waktu dan karakteristik pasien untuk meningkatkan ketepatan dan robustnes model.
---
### Analisis Klasifikasi
1. **Tujuan Analisis Klasifikasi**
Tujuan dari analisis klasifikasi ini adalah untuk **memprediksi status churn pasien** (*Yes* atau *No*) berdasarkan karakteristik operasional dan layanan kesehatan. Analisis ini bertujuan mendukung pengambilan keputusan strategis dengan mengidentifikasi pasien yang berpotensi berhenti menggunakan layanan, sehingga institusi healthcare dapat merancang intervensi preventif untuk meningkatkan retensi pasien.
---
2. **Variabel Target dan Variabel Independen**
Variabel target dalam analisis ini adalah *churn*, yang bersifat biner dengan dua kelas, yaitu *Yes* (pasien churn) dan *No* (pasien tidak churn). Variabel independen yang digunakan meliputi *patient_visits*, *avg_treatment_cost*, *operational_cost*, *patient_satisfaction*, dan *efficiency_index*, yang secara konseptual merepresentasikan intensitas layanan, biaya, kualitas pelayanan, serta efisiensi operasional yang relevan terhadap perilaku churn pasien.
---
3. **Distribusi Kelas dan Ketidakseimbangan Data**
Distribusi kelas pada variabel target menunjukkan adanya **ketidakseimbangan kelas (class imbalance)** yang signifikan, di mana proporsi pasien churn hanya sekitar **7,86%**, sedangkan mayoritas observasi berada pada kelas *No*. Kondisi ini menyebabkan model cenderung memprediksi kelas mayoritas, yang berdampak pada rendahnya kemampuan model dalam mendeteksi kelas minoritas, meskipun nilai akurasi terlihat tinggi.
---
4. **Metode Klasifikasi dan Strategi Validasi**
Metode klasifikasi yang digunakan adalah **regresi logistik**, karena sesuai untuk permasalahan klasifikasi biner, memiliki interpretabilitas yang baik, serta umum digunakan dalam analisis risiko dan churn pada sektor healthcare. Model dilatih dan diuji menggunakan strategi **train–test split** dengan proporsi 80% data latih dan 20% data uji, sehingga memungkinkan evaluasi performa model pada data yang tidak digunakan selama proses pelatihan.
---
5. **Evaluasi Kinerja Model**
Evaluasi kinerja model dilakukan menggunakan beberapa metrik, termasuk **akurasi, sensitivitas (recall), spesifisitas, balanced accuracy**, serta **ROC-AUC** sebagai metrik utama. Hasil evaluasi menunjukkan bahwa model mencapai **akurasi sebesar 92,14%** dan **spesifisitas sebesar 1,00**, namun memiliki **sensitivitas sebesar 0**, yang mengindikasikan bahwa model gagal mengidentifikasi pasien churn pada data uji. Nilai **ROC-AUC sebesar 0,7376** menunjukkan bahwa secara probabilistik model masih memiliki kemampuan diskriminatif yang cukup baik dalam membedakan pasien churn dan non-churn, meskipun performa klasifikasi aktual pada kelas minoritas masih terbatas.
---
6. **Interpretasi Hasil, Kelebihan, dan Keterbatasan Model**
Secara keseluruhan, model regresi logistik memiliki kelebihan dalam hal **kesederhanaan, stabilitas, dan kemudahan interpretasi**, serta mampu memodelkan hubungan antara variabel independen dan probabilitas churn secara logis. Namun, kelemahan utama model terletak pada **ketidakmampuannya menangani ketidakseimbangan kelas**, yang menyebabkan rendahnya sensitivitas terhadap pasien churn. Untuk meningkatkan kinerja model, perbaikan dapat dilakukan melalui penyesuaian threshold klasifikasi, penerapan teknik penyeimbangan data (seperti oversampling atau SMOTE), atau penggunaan metode klasifikasi alternatif yang lebih robust terhadap data tidak seimbang.
---
### Analisis Klustering
1. **Tujuan Analisis Pengelompokan**
Analisis pengelompokan dilakukan dengan tujuan untuk mengidentifikasi pola segmentasi periode operasional rumah sakit berdasarkan karakteristik layanan, efisiensi, dan kepuasan pasien. Melalui clustering, diharapkan dapat diketahui kelompok periode operasional yang memiliki kinerja serupa sehingga manajemen dapat memahami perbedaan kondisi operasional secara lebih terstruktur dan mendukung pengambilan keputusan berbasis segmentasi data.
---
2. **Pemilihan Variabel dan Prapemrosesan Data**
Variabel yang digunakan dalam analisis clustering meliputi *patient_visits, avg_treatment_cost, bed_occupancy_rate, efficiency_index*, dan *patient_satisfaction*. Variabel-variabel ini dipilih karena merepresentasikan dimensi utama operasional, finansial, dan kualitas layanan rumah sakit. Sebelum proses clustering dilakukan, data melalui tahap prapemrosesan berupa penghapusan nilai hilang dan penskalaan (standardization) menggunakan metode z-score. Penskalaan diperlukan untuk memastikan bahwa seluruh variabel berada pada skala yang sebanding sehingga tidak ada variabel tertentu yang mendominasi pembentukan kluster.
---
3. **Metode Pengelompokan yang Digunakan**
Metode pengelompokan yang digunakan adalah *K-Means Clustering*. K-Means dipilih karena metode ini efisien untuk dataset berukuran besar, mudah diinterpretasikan, dan sesuai untuk data numerik kontinu. Selain itu, K-Means mampu menghasilkan kluster dengan karakteristik yang jelas berdasarkan kedekatan jarak antar observasi dalam ruang multidimensi.
---
4. **Penentuan Jumlah Kluster Optimal**
Jumlah kluster optimal ditentukan menggunakan *Elbow Method* dengan mengevaluasi nilai *within-cluster sum of squares* (WCSS). Berdasarkan hasil analisis elbow, titik siku (elbow) terlihat pada jumlah kluster sebanyak tiga, yang menunjukkan bahwa penambahan kluster setelah titik tersebut tidak memberikan penurunan WCSS yang signifikan. Oleh karena itu, jumlah kluster optimal yang digunakan dalam analisis ini adalah tiga kluster.
---
5. **Interpretasi Karakteristik Kluster**
Hasil cluster scatter plot menunjukkan terbentuknya tiga kluster dengan karakteristik yang berbeda. Kluster pertama umumnya merepresentasikan periode dengan jumlah kunjungan pasien tinggi dan indeks efisiensi yang relatif baik, yang mencerminkan kondisi operasional optimal. Kluster kedua menunjukkan periode dengan kunjungan pasien sedang namun efisiensi yang lebih rendah, yang mengindikasikan potensi inefisiensi operasional. Sementara itu, kluster ketiga cenderung menggambarkan periode dengan kunjungan pasien lebih rendah dan variasi efisiensi yang lebih besar, yang dapat merepresentasikan kondisi operasional kurang stabil atau periode transisi.
---
6. **Implikasi Praktis dari Hasil Pengelompokan**
Hasil pengelompokan ini memberikan implikasi praktis yang penting bagi manajemen rumah sakit. Segmentasi periode operasional memungkinkan identifikasi kondisi yang memerlukan perhatian khusus, seperti periode dengan efisiensi rendah atau kepuasan pasien yang menurun. Selain itu, kluster dengan kinerja tinggi dapat dijadikan acuan praktik terbaik (best practice) untuk diterapkan pada periode lain. Dengan demikian, analisis clustering dapat dimanfaatkan sebagai dasar dalam perencanaan kapasitas, optimalisasi sumber daya, serta peningkatan kualitas layanan secara berkelanjutan.
---
### Analisis Time Series
1. **Struktur Waktu Dataset**
Dataset memiliki struktur deret waktu harian, dengan variabel *date* sebagai indeks waktu dan *revenue* sebagai variabel numerik yang diamati secara berurutan. Struktur ini memungkinkan analisis dinamika pendapatan dari waktu ke waktu serta penerapan metode peramalan berbasis time series.
---
2. **Komponen Deret Waktu**
Berdasarkan visualisasi historis dan hasil peramalan, data menunjukkan adanya **pola tren yang relatif stabil** dengan fluktuasi jangka pendek di sekitar nilai rata-rata. Pola **musiman tidak tampak dominan**, sementara variasi acak (*noise*) masih muncul akibat faktor operasional dan eksternal yang tidak terobservasi secara langsung dalam dataset.
---
3. **Metode Deret Waktu yang Digunakan**
Metode A**RIMA (AutoRegressive Integrated Moving Average)** diterapkan untuk memodelkan dan meramalkan pendapatan karena model ini efektif dalam menangkap pola tren dan kebisingan pada data non-musiman tanpa memerlukan variabel penjelas tambahan. Model ini menghasilkan proyeksi nilai *revenue* untuk beberapa periode ke depan disertai interval kepercayaan.
---
4. **Pemilihan Model dan Parameter**
Pemilihan parameter ARIMA dilakukan menggunakan fungsi *auto.arima()*, yang secara otomatis menentukan kombinasi parameter terbaik berdasarkan kriteria informasi (AIC). Pendekatan ini dipilih untuk memastikan model yang **parsimonious**, objektif, dan sesuai dengan karakteristik data historis tanpa asumsi musiman yang kuat.
---
5. **Evaluasi Kinerja Peramalan**
Kinerja model dievaluasi secara deskriptif melalui kesesuaian antara nilai aktual dan hasil peramalan serta lebar *confidence interval* pada grafik *Forecast Plot*. Interval kepercayaan yang relatif stabil menunjukkan bahwa model mampu menangkap pola utama data, meskipun evaluasi numerik seperti RMSE atau MAE dapat digunakan pada pengembangan lanjutan untuk penilaian yang lebih kuantitatif.
---
6. **Interpretasi dan Ketidakpastian**
Hasil peramalan menunjukkan bahwa pendapatan diperkirakan **mengikuti pola historis tanpa perubahan ekstrem dalam jangka pendek**. Namun, ketidakpastian tetap ada, sebagaimana tercermin pada interval kepercayaan, yang dapat berasal dari fluktuasi permintaan layanan, perubahan kebijakan operasional, maupun faktor eksternal yang tidak dimodelkan. Oleh karena itu, hasil peramalan sebaiknya digunakan sebagai **alat pendukung keputusan**, bukan prediksi deterministik.
---
### Insight
**Conclusion and Recommendations**
Berdasarkan analisis EDA, regresi, klasifikasi, klustering, dan deret waktu, dataset healthcare ini menunjukkan bahwa kinerja finansial rumah sakit dipengaruhi secara signifikan oleh dinamika operasional dan permintaan layanan. Analisis regresi menegaskan bahwa jumlah kunjungan pasien dan biaya perawatan rata-rata berkontribusi positif terhadap pendapatan, sementara biaya operasional berperan sebagai faktor pembatas efisiensi. Analisis klasifikasi mengindikasikan adanya ketidakseimbangan kelas pada variabel churn yang menyebabkan model lebih efektif dalam mengidentifikasi pasien yang tidak churn dibandingkan pasien berisiko, sedangkan analisis klustering mengungkap heterogenitas pola efisiensi dan intensitas layanan antar segmen operasional. Selain itu, analisis deret waktu menunjukkan bahwa pendapatan cenderung mengikuti pola historis yang stabil dengan fluktuasi jangka pendek tanpa indikasi perubahan ekstrem. Secara keseluruhan, hasil ini menyiratkan bahwa peningkatan kinerja rumah sakit memerlukan strategi yang terfokus pada optimalisasi efisiensi operasional per segmen, penguatan model deteksi churn yang lebih sensitif, serta pemanfaatan hasil peramalan pendapatan sebagai dasar perencanaan keuangan jangka pendek yang berbasis data.