Members

ITSB

Foto Kelompok Tiguy

Final Exam

Data Science - ITSB

👥 Kelompok Tiguy - ITSB
📊 Mata Kuliah: Probability Distribution

Summary of Basic Statistics

## Column

Cahpter 1

Intro to Statistics

Definisi

Statistika merupakan ilmu yang berperan penting dalam mengubah data mentah menjadi informasi yang bermakna, sehingga dapat mendukung pemahaman dan pengambilan keputusan yang lebih baik.

Permasalahan Statistik Utama

Permasalahan statistik utama dalam dataset ini adalah memahami kondisi kesehatan pasien serta faktor-faktor yang berhubungan dengan risiko penyakit metabolik dan kardiovaskular, seperti diabetes dan hipertensi. Dataset ini memungkinkan analisis hubungan antara variabel demografis (usia, gender), indikator fisik (BMI), dan indikator klinis (kadar glukosa darah, kolesterol, tekanan darah).

Selain itu, permasalahan statistik lainnya adalah:

  • Mengidentifikasi pola distribusi data kesehatan pada populasi.
  • Mengetahui kecenderungan nilai rata-rata dan penyebaran variabel kesehatan.
  • Mendeteksi anomali atau nilai ekstrem.

Jenis Statistik yang Digunakan

Jenis statistik yang digunakan dalam analisis ini adalah statistik deskriptif, karena fokus utama adalah:

  • Mendeskripsikan karakteristik data
  • Menyajikan ringkasan numerik
  • Memvisualisasikan distribusi dan pola data

Statistik inferensial belum digunakan karena tidak dilakukan pengujian hipotesis atau generalisasi ke populasi yang lebih luas.

Cahpter 2

Data Exploration

Definsi

Eksplorasi data adalah proses awal untuk memahami karakteristik data sebelum dilakukan analisis lanjutan atau pemodelan statistik. Tujuan utamanya adalah “mengenal data”: melihat pola, kecenderungan, variasi, dan keanehan yang ada di dalam data.

Ringkasan Statistik Variabel Numerik

Variabel numerik utama dalam dataset ini meliputi: Age, BMI, Blood Glucose, Cholesterol, Systolic Blood Pressure.

Ringkasan statistik yang dianalisis mencakup: Mean (rata-rata), Median (nilai tengah), Nilai minimum dan maksimum, dan Standar deviasi.

Secara umum:

  • Usia: menunjukkan rentang yang cukup luas, menandakan dataset mencakup pasien usia muda hingga lanjut.
  • BMI: memiliki variasi yang cukup besar, menunjukkan adanya pasien dengan berat badan normal hingga obesitas.
  • Blood Glucose dan Cholesterol: menunjukkan sebaran yang cenderung right-skewed.

Pola Awal, Tren, dan Anomali

Beberapa pola awal yang teridentifikasi:

  • Nilai blood glucose dan BMI cenderung lebih tinggi pada pasien dengan status diabetes.
  • Terdapat outlier pada variabel blood glucose dan systolic blood pressure, yang mencerminkan kondisi medis serius.
  • Distribusi data numerik umumnya tidak berdistribusi normal sempurna.

Cahpter 3

Basic Visualizations

Definisi

Visualisasi data adalah seni dan ilmu dalam mengkomunikasikan informasi melalui grafik dan gambar. Visualisasi data bertujuan untuk membantu kita melihat kaitan, pola, dan tren dalam data.

Visualisasi yang Digunakan

  • 1. Histogram (Blood Glucose / BMI)
    • Digunakan untuk melihat distribusi data numerik.
  • 2. Bar Chart (Gender atau Diabetes Status)
    • Digunakan untuk membandingkan frekuensi kategori.
  • 3. Line Chart (Age vs Blood Glucose atau Age vs Systolic BP)
    • Digunakan untuk melihat tren perubahan nilai kesehatan terhadap usia.

Alasan Pemilihan Visualisasi

Visualisasi tersebut dipilih karena:

  • Mudah dipahami secara visual
  • Sesuai dengan jenis data (numerik dan kategorikal)
  • Mampu menampilkan pola, tren, dan perbandingan secara efektif
  • Membantu mengidentifikasi outlier dan anomali data
  • Memperjelas distribusi dan penyebaran data

Cahpter 4

Central Tendency

Definisi

Central Tendency adalah sebuah konsep dalam statistik deskriptif yang berfokus pada pencarian satu nilai yang dapat mewakili keseluruhan isi dari kumpulan data. Dengan kata lain, kita berusaha menemukan “titik kumpul” atau pusat data kita.

Perhitungan Variabel 1: Blood Glucose

Data: 90, 100, 110, 110, 150

  • 1. \(\text{Mean} = \frac{90+100+110+110+150}{5} = 112\)
  • 2. \(\text{Median} = 110\)
  • 3. \(\text{Modus} = 110\)

Perhitungan Variabel 2: BMI

Data: 22, 24, 24, 26, 30

  • 1. \(\text{Mean} = \frac{22+24+24=26+30}{5} = 25.2\)
  • 2. \(\text{Median} = 24\)
  • 3. \(\text{Modus} = 24\)

Interpretasi Singkat

  • Pada blood glucose, mean lebih besar dari median, menunjukkan adanya nilai tinggi yang memengaruhi rata-rata.
  • Pada BMI, mean dan median relatif berdekatan, menandakan distribusi data lebih seimbang.
  • Median sering lebih representatif untuk data kesehatan.

Cahpter 5

Statistical Dispersion

Definisi

Dispersi, atau variabilitas, merupakan ukuran yang menggambarkan sejauh mana data tersebar dari nilai pusatnya (rata-rata). Dua kumpulan data dapat memiliki rata-rata yang sama, namun tingkat penyebarannya bisa sangat berbeda; ada yang terpusat dan ada yang terpencar jauh.

Perhitungan Blood Glucose

Contoh Data : 90, 100, 110, 110, 150

1. Range \(\text{Range}= \text{Nilai maks} - \text{Nilai min} = 150 - 90 = 60\)

2. Varians

Langkah: Hitung mean = 112, Hitung selisih tiap data dengan mean, lalu kuadratkan. \(\text{Varians} = \frac{484 + 144+4+4+1444}{5} = 416\)

3. Standar Deviasi \(SD= \sqrt{416} \approx {20.4}\)

Interpretasi

Hasil perhitungan range, varians, dan standar deviasi menunjukkan bahwa data kadar gula darah memiliki tingkat penyebaran yang cukup besar. Nilai range yang tinggi menandakan adanya perbedaan yang signifikan antara nilai minimum dan maksimum, yang mencerminkan kondisi kesehatan pasien yang beragam, mulai dari kadar gula normal hingga sangat tinggi. Dengan demikian, ukuran penyebaran sangat penting untuk melengkapi nilai rata-rata, karena mean saja tidak cukup untuk menggambarkan variasi kondisi kesehatan dalam dataset.

Cahpter 6

Essentials of Probability

Definisi

Probabilitas adalah ilmu matematika untuk mengukur kemungkinan terjadinya peristiwa yang tidak pasti, dengan rentang nilai antara 0 (mustahil) hingga 1 (pasti).

Event & Peluang

Misalkan event yang diambil dari variabel diabetes:

  • Event A = Pasien menderita diabetes

Dari 100 pasien:

  • 35 pasien diabetes

Peluang \(P(A) = \frac{35}{100} = 0.35\)

Interpretasi

Perhitungan peluang kejadian diabetes memberikan gambaran tentang proporsi risiko penyakit dalam populasi yang diamati. Nilai peluang yang cukup besar menunjukkan bahwa diabetes merupakan kondisi yang cukup umum dalam dataset ini, sehingga menjadi isu kesehatan yang perlu mendapatkan perhatian khusus.

Selain itu, konsep probabilitas juga menjadi dasar untuk analisis statistik lanjutan, seperti inferensi statistik dan pemodelan risiko penyakit, yang bertujuan untuk memahami ketidakpastian dalam data kesehatan.

Cahpter 7

Probability Distributions

Definisi

Distribusi probabilitas adalah daftar atau gambaran yang menunjukkan peluang dari semua hasil yang mungkin terjadi dalam suatu percobaan.

Variabel Acak Kontinu dan Distribusi Sampling

Variabel acak kontinu merupakan data hasil pengukuran yang dapat mengambil nilai desimal dalam rentang tertentu, sehingga peluang suatu nilai ditentukan melalui luas area di bawah kurva fungsi kerapatan probabilitas (PDF) yang total luasnya sama dengan satu. Dalam analisis statistik, konsep ini diperluas melalui distribusi sampling, yaitu distribusi dari statistik sampel seperti rata-rata, yang menunjukkan bagaimana sampel dapat merepresentasikan populasi. Tingkat ketelitian estimasi rata-rata sampel diukur melalui kesalahan standar (standard error), yang semakin kecil seiring bertambahnya ukuran sampel.

Teorema Limit Tengah dan Distribusi Proporsi Sampel

Teorema Limit Tengah menyatakan bahwa distribusi rata-rata sampel akan mendekati distribusi normal apabila ukuran sampel cukup besar, terlepas dari bentuk distribusi populasi awal. Prinsip ini memungkinkan penggunaan pendekatan normal dalam inferensi statistik, termasuk perhitungan interval kepercayaan dan uji hipotesis. Selain itu, pada data berbentuk proporsi, distribusi proporsi sampel digunakan dengan syarat tertentu agar dapat diasumsikan normal, sehingga sering diaplikasikan dalam survei dan analisis persentase untuk menentukan tingkat ketidakpastian hasil.

Cahpter 8

Confidence Interval

Definisi

Confidence Interval (CI) atau Selang Kepercayaan adalah rentang nilai yang digunakan untuk memperkirakan nilai asli populasi (seperti rata-rata atau persentase) berdasarkan data sampel. CI menunjukkan sejauh mana kita bisa “percaya” pada keakuratan data kita.

Perhitungan

Misalkan:

  • Mean blood glucose = 112
  • Standar deviasi = 20
  • Jumlah sampel = 100
  • Tingkat kepercayaan = 95%

Rumus: \(CI = \bar{x} \pm Z \left( \frac{s}{\sqrt{n}} \right)\)

Interval Kepercayaan

Dengan Z = 1.96 \(CI = 112 \pm 1.96 \left( \frac{20}{\sqrt{100}} \right) = 112 \pm 1.96 (2) = 112 \pm 3.92\)

Interval kepercayaan: \((108.08, 115.92)\)

Makna: Dari interval kepercayaan ini adalah bahwa jika proses pengambilan sampel dilakukan berulang kali dengan metode yang sama, maka sekitar 95% dari interval yang terbentuk akan mencakup nilai rata-rata populasi yang sebenarnya. Dengan demikian, interval kepercayaan tidak hanya menunjukkan satu nilai estimasi, tetapi juga tingkat ketidakpastian dari estimasi tersebut.

Cahpter 9

Definisi

Statistika Inferensial adalah proses menarik kesimpulan tentang populasi berdasarkan data sampel. Tujuannya adalah menjembatani data yang terlihat dengan kondisi nyata di bawah ketidakpastian.

Uji Hipotesis

Uji yang digunakan adalah uji t satu sampel (one-sample t-test) untuk mengetahui apakah rata-rata blood glucose pasien berbeda dari nilai acuan normal.

Hipotesis

  • Hipotesis nol (\(H_0\)): \(H_0: \mu = 100\)
  • Hipotesis alternatif (\(H_1\)): \(H_1: \mu \neq 100\)

Diketahui: * \(\bar{x} = 112\) * \(s = 20\) * \(n = 100\) * \(\alpha = 0.05\)

Statistik Uji

\[t = \frac{\bar{x} - \mu_0}{s / \sqrt{n}}\] \[t = \frac{112 - 100}{20 / \sqrt{100}} = \frac{12}{2} = 6\]

Derajat Kebebasan \[df = n - 1 = 99\]

Nilai Kritis \[|t_{\text{hitung}}| = 6 > t_{\text{tabel}} = 1.984\] Maka hipotesis nol ditolak.

Kesimpulan

Berdasarkan hasil uji, disimpulkan bahwa rata-rata kadar blood glucose pasien berbeda secara signifikan dari 100 mg/dL pada tingkat signifikansi 5%. Hal ini menunjukkan bahwa kadar gula darah pasien dalam dataset tidak berada pada nilai acuan normal.

Cahpter 10

Nonparametric Methods

Definisi

Metode Statistik Nonparametrik adalah teknik analisis data yang tidak mewajibkan data berdistribusi normal. Metode ini fokus pada peringkat (rank), tanda (sign), dan median, bukan pada rata-rata populasi.

Uji Nonparametrik

Uji yang digunakan adalah uji Mann–Whitney U

Contoh Data Sampel BMI

  • Kelompok Diabetes (A) 28, 30, 32, 35

  • Kelompok Non-Diabetes (B) 22, 24, 25, 27

\(RA = 5 + 6 + 7 + 8 = 26\) \(RB = 1 + 2 + 3 + 4 = 10\)

Statistik U

\(U_A = n_A n_B + \frac{n_A (n_A + 1)}{2} - R_A\) \(U_A = (4)(4) + \frac{4(5)}{2} - 26 = 16 + 10 - 26 = 0\)

\(U_{\text{hitung}} = 0 < U_{\text{tabel}} = 2\) maka hipotesis nol ditolak.

Kesimpulan

Berdasarkan uji Mann–Whitney U, terdapat perbedaan yang signifikan pada nilai BMI antara pasien diabetes dan non-diabetes. Hal ini menunjukkan bahwa pasien dengan diabetes cenderung memiliki BMI yang lebih tinggi dibandingkan pasien non-diabetes, dan uji nonparametrik ini sesuai digunakan karena tidak bergantung pada asumsi normalitas data.

Dataset

Table & Dataset Overview

Table & Dataset Overview

EKSPLORASI DATA
Interpretasi Dataset

Dataset ini merupakan representasi klinis yang kompleks, mencakup 13 variabel kesehatan esensial untuk mendeteksi profil risiko pasien:

  • Dimensi Numerik: Parameter seperti BMI dan Sistolik memungkinkan analisis distribusi normal dan korelasi linear.
  • Dimensi Kategorik: Variabel biner (Diabetes/Hipertensi) menjadi target utama dalam pemodelan risiko.
STRATEGI RISET
Kualitas & Integritas Data

Integrasi antara data demografi (Usia/Gender) dan indikator klinis menciptakan struktur data yang Robust untuk analisis tingkat lanjut:

Struktur ini mendukung Inferensi Statistik yang akurat, memungkinkan kita memprediksi tren kesehatan populasi berdasarkan sampel responden yang luas.

“Keberhasilan pemodelan statistik sangat bergantung pada pemahaman mendalam terhadap karakteristik awal dataset.”

All About Basic Visualizations

## Column

Pie-Chart

Interpretation

Berdasarkan pie chart yang ditampilkan, dapat dilihat bahwa distribusi data responden berdasarkan gender dan smoking status tidak bersifat seimbang. Salah satu kategori memiliki proporsi yang lebih besar dibandingkan kategori lainnya, yang menunjukkan dominasi kelompok tertentu dalam dataset.

Kondisi ini menggambarkan bahwa karakteristik responden tidak homogen, sehingga komposisi sampel lebih merepresentasikan kelompok mayoritas. Pada variabel smoking status, proporsi non-smoker yang lebih besar mengindikasikan bahwa sebagian besar responden tidak memiliki kebiasaan merokok.

Hal ini penting untuk diperhatikan karena perbedaan proporsi ini dapat memengaruhi interpretasi analisis lanjutan, terutama ketika dikaitkan dengan variabel kesehatan seperti tekanan darah, kadar kolesterol, dan gula darah.

Bar-Chart

Interpretation

Visualisasi bar chart menunjukkan perbedaan frekuensi yang jelas antar kategori pada variabel kategorikal. Tinggi batang yang berbeda merefleksikan jumlah observasi pada masing-masing kategori, di mana kategori dengan batang tertinggi menandakan kelompok yang paling dominan dalam data.

Perbedaan ini mengindikasikan adanya ketimpangan distribusi, misalnya antara individu dengan dan tanpa kondisi tertentu seperti diabetes atau hipertensi.

Bar chart ini membantu memperjelas struktur data dan menunjukkan bahwa sebagian besar responden berada pada kondisi kesehatan normal, sementara sebagian kecil berada pada kategori dengan risiko kesehatan tertentu, yang berpotensi memunculkan nilai ekstrem pada analisis variabel numerik.

Line-Chart

Interpretation

Line chart memperlihatkan pola perubahan nilai variabel numerik yang berfluktuasi sepanjang urutan data, yang menunjukkan bahwa data kesehatan bersifat dinamis dan bervariasi antar individu. Naik-turunnya garis mencerminkan perbedaan kondisi fisiologis responden, yang dapat dipengaruhi oleh usia, gaya hidup, maupun adanya penyakit penyerta.

Pola fluktuatif ini menandakan bahwa variabel yang diamati tidak bersifat konstan dan memiliki variabilitas yang cukup tinggi.

Line chart ini memberikan gambaran awal mengenai kemungkinan adanya tren atau kecenderungan tertentu, meskipun diperlukan analisis statistik lanjutan untuk memastikan hubungan yang signifikan antar variabel.

Central Tendency

Interpretation

Berdasarkan visualisasi central tendency yang ditampilkan, terlihat bahwa nilai mean dan median tidak berada pada posisi yang sama, yang menunjukkan bahwa distribusi data cenderung tidak simetris.

Pada beberapa variabel numerik seperti blood glucose, BMI, dan tekanan darah, mean tampak lebih tinggi dibandingkan median, yang mengindikasikan adanya nilai-nilai ekstrem di sisi kanan distribusi.

Kondisi ini menunjukkan bahwa meskipun sebagian besar responden berada pada rentang nilai normal, terdapat sejumlah kecil responden dengan nilai yang sangat tinggi sehingga memengaruhi nilai rata-rata. Oleh karena itu, median pada visualisasi ini lebih merepresentasikan kondisi tipikal responden dibandingkan mean.

Statistical Dispersion

Interpretation

Visualisasi statistical dispersion menunjukkan sebaran data yang cukup luas, yang ditandai dengan range yang besar serta standar deviasi yang relatif tinggi.

Hal ini terlihat dari grafik yang memperlihatkan jarak yang cukup jauh antara nilai minimum dan maksimum, serta distribusi data yang tidak terkonsentrasi pada satu titik saja. Penyebaran yang lebar ini mencerminkan adanya variasi kondisi kesehatan antar responden, di mana sebagian individu memiliki nilai yang jauh dari pusat data.

Pola ini mengindikasikan bahwa dataset bersifat heterogen dan dipengaruhi oleh faktor-faktor individual seperti usia, kondisi medis, dan gaya hidup.

Probability Distributions

Interpretation

Berdasarkan visualisasi probability distribution yang ditampilkan, terlihat bahwa distribusi data cenderung miring ke kanan dan tidak mengikuti pola distribusi normal secara sempurna. Sebagian besar probabilitas terkonsentrasi pada rentang nilai tertentu, sementara terdapat ekor distribusi yang memanjang ke arah nilai yang lebih tinggi.

Hal ini menunjukkan bahwa peluang terjadinya nilai ekstrem relatif kecil, namun tetap ada dan signifikan secara analitis.

Pola distribusi ini konsisten dengan karakteristik data kesehatan, di mana mayoritas responden berada pada kondisi normal dan sebagian kecil berada pada kondisi berisiko tinggi, sehingga asumsi normalitas perlu dipertimbangkan kembali dalam analisis lanjutan.

Confidence Interval

## Column

Case Study Example

Konteks Analisis: Penyedia layanan kesehatan bertujuan untuk memvalidasi apakah rata-rata tekanan darah sistolik populasi masih berada di bawah ambang batas klinis hipertensi (130 mmHg).

Tujuan Penelitian

Digunakan metode One-Sided Confidence Interval (Upper Bound) untuk menetapkan batas atas estimasi rata-rata populasi. Fokus utama kita adalah memastikan bahwa batas maksimal rata-rata populasi (dengan tingkat keyakinan 95%) tidak melampaui target yang ditetapkan. Jika Upper Bound melebihi 130 mmHg, maka diperlukan intervensi medis pada populasi tersebut.


Parameter Data

Untuk melakukan perhitungan ini, berikut adalah data yang diperoleh dari lapangan:

  • Simpangan Baku Populasi (\(\sigma\)): \(14{,}9\) mmHg
  • Ukuran Sampel (\(n\)): \(15.000\) Responden
  • Rata-rata Sampel (\(\bar{x}\)): \(130{,}2\) mmHg
  • Tingkat Kepercayaan: \(95\%\) (\(\alpha = 0,05\))

Catatan: Penggunaan sampel besar (\(n=15.000\)) memberikan tingkat presisi yang tinggi dalam mengestimasi rata-rata populasi melalui nilai Standard Error yang kecil.

Perhitungan

1. Hitung Standard Error (SE): \[SE = \frac{\sigma}{\sqrt{n}} = \frac{14{,}9}{\sqrt{15000}}\] \[SE = \frac{14{,}9}{122{,}474} \approx 0{,}1217 \ \text{mmHg}\]

2. Tentukan nilai z untuk one-sided 95% CI: \[z_{0,95} = 1,645\] (Distribusi Z digunakan karena sampel \(n \geq 30\) sangat besar, sehingga memenuhi Teorema Limit Tengah).

3. Hitung Margin of Error (MOE): \[MOE = z_{0,95} \times SE = 1,645 \times 0,1217\] \[MOE \approx 0,2002 \ \text{mmHg}\]

4. Hitung Upper Bound: \[\text{Upper Bound} = \bar{x} + MOE = 130,2 + 0,2002\] \[\text{Upper Bound} = 130,4002 \approx 130,40 \ \text{mmHg}\]

Hasil Akhir: \[\boxed{\mu \leq 130,40 \ \text{mmHg}}\] Kita yakin 95% bahwa rata-rata tekanan darah populasi tidak akan melebihi 130,40 mmHg.

Visualisasi

Interpretasi

Ringkasan Temuan: Berdasarkan analisis one-sided 95% upper confidence interval, diperoleh estimasi bahwa rata-rata tekanan darah sistolik populasi tidak melebihi 130,40 mmHg.

Analisis Ambang Hipertensi

  • Ambang Klinis (Target): 130,00 mmHg
  • Batas Atas (Upper Bound): 130,40 mmHg
  • Selisih: 0,40 mmHg

Kesimpulan Strategis

Hasil perhitungan menunjukkan bahwa batas atas interval kepercayaan sedikit melewati ambang batas hipertensi.

  1. Potensi Risiko: Rata-rata populasi berada pada zona kritis. Dengan tingkat kepercayaan 95%, kita yakin rata-rata populasi tidak lebih dari 130,40, namun angka ini sudah berada di atas target 130.
  2. Signifikansi Klinis: Meskipun secara statistik selisihnya kecil (hanya 0,40 mmHg), dalam konteks kesehatan populasi, angka ini mengindikasikan perlunya pemantauan tren hipertensi secara berkala.
  3. Rekomendasi: Penyedia layanan kesehatan disarankan untuk meningkatkan program preventif karena estimasi rata-rata populasi sudah mulai menyentuh kategori hipertensi.

Refleksi Analitis: Memahami Rentang Risiko (Confidence Interval)

1. Confidence Interval sebagai “Radar” Risiko

Jika Uji Hipotesis adalah keputusan sesaat, maka Confidence Interval adalah pandangan jangka panjang: * Bukan Sekadar Angka Tunggal: Kita tidak hanya melihat rata-rata 130,2 mmHg, tapi kita yakin 95% bahwa rata-rata populasi sebenarnya ada di rentang 129,99 hingga 130,40 mmHg. * Pesan di Balik Rentang: Karena angka 130 berada di dalam rentang tersebut, secara statistik kita belum bisa “menghukum” populasi ini sebagai penderita hipertensi. Namun, radar menunjukkan kita sudah sangat dekat dengan batas bahaya.

2. Makna Strategis untuk Masa Depan

Refleksi dari temuan ini memberikan kita dua poin penting untuk kebijakan kesehatan: * Analisis Pergeseran: Batas atas kita (\(130,40\)) sudah melewati ambang batas. Ini artinya, meski saat ini masih dianggap “normal”, tren kesehatan populasi sedang bergerak menuju risiko tinggi. * Tindakan Pencegahan: Kita tidak perlu menunggu sampai rata-rata benar-benar melonjak tinggi. Radar ini memberi kita waktu untuk berbenah sekarang.

Rekomendasi Reflektif: Gunakan hasil ini sebagai alarm peringatan. Fokuskan upaya pada pengendalian faktor risiko agar di pengukuran berikutnya, seluruh rentang radar (CI) kembali berada di bawah 130 mmHg.

Statistical Inference

## Column

Case Study

Konteks Analisis: Sebuah lembaga kesehatan ingin membuktikan secara empiris apakah rata-rata tekanan darah sistolik populasi memiliki perbedaan yang signifikan secara statistik dibandingkan dengan nilai acuan standar yaitu 130 mmHg.

Tujuan Penelitian

Tugas ini bertujuan melakukan Uji Hipotesis Dua Arah (Two-Tailed Test) untuk menguji perbedaan nyata antara rata-rata lapangan dengan standar 130 mmHg. Fokus utamanya adalah menentukan apakah selisih yang ditemukan merupakan perubahan populasi atau sekadar variasi acak sampel.


Parameter Uji & Pengendalian Risiko (Error Analysis)

  • Hipotesis: \(H_0: \mu = 130\) mmHg vs \(H_1: \mu \neq 130\) mmHg
  • Data Sampel: \(\bar{x} = 130,2\) | \(\sigma = 14,9\) | \(n = 15.000\) Responden
  • Tingkat Signifikansi (\(\alpha\)): 0,05
    • Pengendalian Type I Error: Batas risiko 5% untuk salah menolak \(H_0\) (menyatakan ada perbedaan padahal aslinya tidak ada).
    • Pengendalian Type II Error: Sampel besar (\(n=15.000\)) digunakan untuk meminimalisir risiko gagal mendeteksi perbedaan nyata (Power of Test).

Catatan Penting Hipotesis Error: 1. Type I Error (False Positive): Menyimpulkan rata-rata populasi sudah bergeser, padahal sebenarnya masih stabil. 2. Type II Error (False Negative): Gagal mendeteksi pergeseran populasi, padahal sebenarnya sudah tidak di angka 130 mmHg.


Catatan: Uji dua arah dipilih untuk mengakomodasi kemungkinan rata-rata populasi yang bisa lebih rendah atau lebih tinggi dari nilai acuan.

Langkah Perhitungan Statistik Inferensial

Prosedur Pengujian: Tahapan ini mengonversi selisih absolut antara rata-rata sampel dan nilai acuan ke dalam unit standar (t-score) untuk divalidasi dengan distribusi peluang.

1. Estimasi Standard Error (SE) Melambangkan rata-rata penyimpangan distribusi sampel terhadap populasi: \[SE = \frac{\sigma}{\sqrt{n}}\] \[SE = \frac{14,9}{\sqrt{15.000}} = \frac{14,9}{122,47} \approx 0,1217\]

2. Perhitungan t-Statistik (t-hitung) Menentukan seberapa jauh rata-rata sampel menyimpang dari hipotesis nol dalam satuan standar deviasi: \[t = \frac{\bar{x} - \mu_0}{SE}\] \[t = \frac{130,2 - 130}{0,1217} = \frac{0,2}{0,1217} \approx 1,643\]

3. Derajat Bebas & Distribusi \[df = n - 1 = 15.000 - 1 = 14.999\] Karena ukuran sampel (\(n > 30\)), distribusi-t ini mendekati Distribusi Normal Standar (Z).

4. Uji Signifikansi (Alpha 5%) Untuk pengujian dua arah (two-tailed test): * t-tabel (\(t_{critical}\)): \(\pm 1,96\) * Nilai P (\(p\)-value): \(0,1004\)

Kriteria Keputusan: Gagal Tolak \(H_0\) jika \(|t_{hitung}| < |t_{tabel}|\). \[1,643 < 1,96 \text{ (Benar)}\]

Keputusan: GAGAL TOLAK \(H_0\). Perbedaan rata-rata secara statistik tidak signifikan.

Visualisasi Uji Hipotesis (Two-Tailed)

Interpretasi

Ringkasan Keputusan: Berdasarkan uji t satu sampel (one-sample t-test) dua arah, kita Gagal Menolak Hipotesis Nol (\(H_0\)). Tidak terdapat bukti statistik yang cukup pada tingkat signifikansi 5% untuk menyatakan bahwa rata-rata tekanan darah sistolik populasi berbeda dari 130 mmHg.

Analisis Hasil Statistik

  1. Posisi t-Statistik: Nilai \(t_{hitung}\) sebesar 1,643 masih berada di dalam rentang nilai kritis (\(t_{tabel}\)) antara -1,96 hingga +1,96. Statistik uji tidak jatuh ke dalam “Daerah Penolakan”.
  2. P-Value: Nilai peluang (P-value) sebesar 0,1004 lebih besar dari ambang batas \(\alpha = 0,05\), sehingga perbedaan dianggap tidak signifikan secara statistik.
  3. Besaran Selisih: Perbedaan antara rata-rata sampel (130,2) dan acuan (130,0) sebesar 0,2 mmHg. Dalam sampel 15.000 responden, ini dianggap sebagai variasi alami data (sampling variation).

Evaluasi Risiko Keputusan (Error Analysis)

  • Potensi Type II Error (False Negative): Terdapat kemungkinan kecil bahwa sebenarnya rata-rata populasi sudah mulai bergeser naik, namun uji statistik belum mampu menyatakannya sebagai “signifikan”.
  • Mitigasi: Penggunaan sampel sangat besar (15.000) telah meminimalisir risiko ini dengan meningkatkan kekuatan uji (Power of Test), sehingga kita memiliki kepercayaan diri tinggi terhadap hasil ini.

Kesimpulan Klinis bagi Penyedia Layanan Kesehatan

Meskipun rata-rata sampel menunjukkan angka sedikit di atas 130 mmHg (130,2), hasil inferensial menunjukkan bahwa secara keseluruhan populasi masih dianggap stabil.

Rekomendasi: * Tidak diperlukan intervensi medis darurat secara massal. * Tetap lakukan pemantauan rutin untuk memastikan tidak terjadi pergeseran tren ke arah hipertensi di masa mendatang, mengingat posisi data yang mulai mendekati ambang batas.

Refleksi Analitis

Menghubungkan Dua Sudut Pandang Statistik

Tugas ini menyajikan dua temuan yang sekilas berbeda namun saling melengkapi: 1. Sisi Statistik Inferensial (Uji Hipotesis): Hasil Gagal Tolak \(H_0\). Perbedaan rata-rata sampel (\(130,2\)) dan target (\(130\)) belum dianggap cukup besar untuk dinyatakan “Signifikan”. Secara hukum statistik, populasi masih dalam batas wajar. 2. Sisi Estimasi Parameter (Confidence Interval): Batas atas (Upper Bound) mencapai 130,40 mmHg. Angka ini adalah sinyal peringatan karena secara klinis sudah melampaui ambang batas hipertensi.


Analisis Risiko Keputusan (Type I & II Error)

  • Dengan gagal menolak \(H_0\), kita berhasil menghindari Type I Error (intervensi medis pada populasi yang sebenarnya masih normal).
  • Namun, posisi Upper Bound yang melewati 130 mmHg memperingatkan potensi Type II Error (gagal mendeteksi pergeseran tren kesehatan yang sebenarnya mulai terjadi).

Analogi Pengambilan Keputusan

  • Uji Hipotesis adalah “Hakim”: Memutuskan belum ada bukti “kejahatan” (pergeseran tren) yang cukup kuat untuk menjatuhkan vonis.
  • Confidence Interval adalah “Radar”: Menunjukkan bahwa posisi populasi saat ini berada sangat dekat dengan “wilayah berbahaya”.

Rekomendasi Strategis: Kebijakan tepat adalah meningkatkan program preventif. Tujuannya agar “Radar” (Confidence Interval) kembali turun di bawah 130 mmHg sebelum “Hakim” (Uji Hipotesis) terpaksa menyatakan populasi benar-benar mengalami hipertensi secara signifikan di masa depan.

Nonparametric Methods

## Column

Case Study

Konteks Analisis: Setelah melihat populasi secara umum, kita perlu memastikan apakah standar 130 mmHg terpenuhi secara merata pada kelompok Laki-laki dan Perempuan. Analisis non-parametrik digunakan di sini karena distribusi tekanan darah pada kelompok spesifik seringkali memiliki kemiringan (skewness) yang berbeda.

Tujuan Penelitian

Menguji apakah terdapat perbedaan signifikan antara Median tekanan darah sistolik kelompok Laki-laki dan Perempuan dibandingkan dengan nilai standar kesehatan 130 mmHg. Hal ini penting untuk mengidentifikasi apakah salah satu kelompok memiliki risiko kesehatan yang lebih tinggi yang mungkin terabaikan jika data digabungkan.


Parameter Pengujian & Risiko (Error Analysis)

  • Hipotesis Kelompok: \(H_0: \tilde{x} = 130\) vs \(H_1: \tilde{x} \neq 130\) (di mana \(\tilde{x}\) adalah Median).
  • Uji Statistik: Wilcoxon Signed-Rank Test (dilakukan per kategori gender).
  • Tingkat Signifikansi (\(\alpha\)): 0,05.
  • Pengendalian Error: * Type I Error: Risiko salah menyimpulkan bahwa suatu gender mengalami hipertensi.
    • Type II Error: Risiko gagal mendeteksi bahwa salah satu gender sebenarnya sudah melewati ambang batas 130 mmHg secara signifikan.

Kenapa Menggunakan Median? Dalam analisis non-parametrik, Median lebih representatif daripada Mean karena tidak mudah terpengaruh oleh segelintir responden yang memiliki tekanan darah sangat ekstrem (outliers), sehingga memberikan gambaran yang lebih “jujur” tentang kondisi mayoritas kelompok.

Perhitungan Non-Parametrik

1. Kalkulasi Statistik W (V-Statistic)

Nilai \(W\) adalah jumlah peringkat dari selisih positif (\(d_i > 0\)). Kalkulasi didasarkan pada total peringkat maksimal (\(n=15.000\)): * Total Peringkat Maksimal: \[\frac{n(n+1)}{2} = \frac{15.000 \times 15.001}{2} = 112.507.500\] * Kalkulasi Laki-laki (\(W_{men}\)): \[W = \sum R(+) = 58.420.500\] * Kalkulasi Perempuan (\(W_{women}\)): \[W = \sum R(+) = 42.150.200\]

Note: Nilai \(W\) didapat dengan mengurutkan seluruh selisih \(|x_i - 130|\), memberi rank 1 s/d 15.000, lalu menjumlahkan rank milik data yang memiliki tensi di atas 130 mmHg.

2. Parameter Teoritis (Expected Value)

  • Mean Teoritis (\(\mu_W\)): \[\mu_W = \frac{n(n+1)}{4} = \frac{15.000 \times 15.001}{4} = 56.253.750\]
  • Standard Deviation (\(\sigma_W\)): \[\sigma_W = \sqrt{\frac{n(n+1)(2n+1)}{24}} \approx 530.360\]

3. Kalkulasi Z-Score Manual

Menggunakan rumus aproksimasi normal untuk sampel besar:
\[Z = \frac{W - \mu_W}{\sigma_W}\]
Substitusi Kelompok Laki-laki:
\[Z = \frac{58.420.500 - 56.253.750}{530.360} = \mathbf{+4,085}\]
Substitusi Kelompok Perempuan:
\[Z = \frac{42.150.200 - 56.253.750}{530.360} = \mathbf{-26,59}\]

4. Verifikasi & Keputusan

  • Laki-laki: Karena \(|Z| > 1,96\) dan \(P < 0,05\), maka Tolak \(H_0\). Median tekanan darah pria terbukti secara statistik berada di atas 130 mmHg.
  • Perempuan: Meskipun nilai \(P\) kecil, arah pergeserannya ke bawah (negatif), sehingga tidak dikategorikan sebagai ancaman hipertensi karena median berada di bawah target 130 mmHg.

Visualisasi Distribusi Tekanan Darah (Non-Parametric Analysis)

Analisis Sebaran Tekanan Darah: Laki-laki vs Perempuan

Interpretasi

Ringkasan Keputusan: Berdasarkan uji peringkat bertanda Wilcoxon, kita menemukan hasil yang kontras. Untuk Laki-laki, kita Tolak Hipotesis Nol (\(H_0\)), sedangkan untuk Perempuan, kita Gagal Menolak \(H_0\) dalam konteks risiko hipertensi. Terdapat bukti kuat bahwa median tekanan darah pria secara signifikan telah melampaui standar 130 mmHg.

Analisis & Evaluasi Risiko

  1. Perbandingan Kekuatan (\(Z\)-Score): Kelompok Laki-laki menunjukkan nilai \(Z = +4,085\) (melewati batas kritis 1,96), yang berarti tekanan darah mereka benar-benar sudah “bergeser” ke zona merah. Sebaliknya, Perempuan memiliki \(Z = -26,59\), yang berarti mereka sangat aman di bawah batas tersebut.
  2. Evaluasi Error: Penggunaan metode non-parametrik ini meminimalisir kesalahan akibat data yang tidak normal atau adanya outlier (nilai ekstrem). Kita memiliki tingkat kepastian yang sangat tinggi bahwa perbedaan antar gender ini nyata, bukan sekadar kebetulan.

Kesimpulan Klinis & Rekomendasi

Hasil “Mikroskop” statistik ini menunjukkan bahwa masalah kesehatan tidak tersebar rata. Tekanan darah tinggi adalah masalah spesifik pada kelompok Laki-laki di populasi ini.

Rekomendasi Strategis: * Intervensi Tertarget: Disarankan melakukan program skrining kesehatan dan kampanye gaya hidup sehat yang difokuskan khusus pada Laki-laki. * Pemeliharaan (Preventif): Untuk kelompok Perempuan, cukup dilakukan edukasi rutin karena data menunjukkan kondisi mereka saat ini masih sangat terkendali di bawah ambang batas.

Refleksi Analitis

Strategi untuk Perempuan: “Menjaga yang Sudah Baik”

Meski hasil tes menunjukkan kelompok perempuan berada di zona aman, bukan berarti mereka diabaikan. Strateginya adalah: * Fokus Utama: Menjaga agar grafik mereka tidak bergeser ke arah bahaya (di atas 130 mmHg). * Langkah Nyata: Memberikan edukasi ringan tentang gaya hidup sehat agar kondisi yang sudah bagus ini tetap terjaga hingga masa depan. * Waspada Dini: Mengingat radar populasi kita menunjukkan angka yang mepet batas (130,40), pemeriksaan rutin tetap perlu dilakukan sebagai langkah antisipasi.

Strategi untuk Laki-laki: “Tindakan Cepat & Tepat”

Berdasarkan data, kelompok laki-laki membutuhkan perhatian lebih besar karena mereka sudah berada di garis risiko: * Alasan Utama: Karena secara statistik mereka sudah melampaui ambang batas 130 mmHg, mereka butuh penanganan yang lebih intensif (bukan sekadar saran biasa). * Efektivitas Biaya: Dengan memprioritaskan bantuan pada mereka yang paling berisiko, kita bisa menurunkan tingkat kesehatan populasi secara keseluruhan dengan lebih efisien. * Langkah Nyata: Disarankan melakukan pemeriksaan kesehatan (medical check-up) yang lebih sering dan perubahan pola hidup yang lebih serius.

Kesimpulan Sederhana: Kita tidak membeda-bedakan, namun kita mengalokasikan tenaga dengan bijak. Kelompok Laki-laki perlu dibantu untuk “turun” ke zona aman, sedangkan kelompok Perempuan perlu dibantu agar “tidak naik” ke zona risiko.

---
title: "UAS Statistika Dasar - Kelompok 3"
output: 
  flexdashboard::flex_dashboard:
    vertical_layout: scroll
    theme: yeti
    source_code: embed
---

<style>
/* ============================================
   1. SETUP DASAR & FONTS
============================================== */
@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&family=Poppins:wght@300;400;600&display=swap');

body {
  background-color: #fcfaf8; /* Latar krem sangat muda agar classic */
  font-family: 'Poppins', sans-serif;
  color: #4a3728;
}

/* ============================================
   2. NAVBAR (NAVIGASI ATAS)
============================================== */
.navbar {
  background-color: #634832 !important; /* Cokelat Espresso */
  border-bottom: 4px solid #d4a373 !important; /* Garis Emas Tan */
  box-shadow: 0 2px 10px rgba(0,0,0,0.2);
}

.navbar-brand {
  font-family: 'Playfair Display', serif;
  font-weight: 700 !important;
  font-size: 22px !important;
  color: #ffffff !important;
}

.navbar-inverse .navbar-nav > li > a {
  color: #f5ebe0 !important;
  transition: all 0.3s ease;
}

.navbar-inverse .navbar-nav > li > a:hover, 
.navbar-inverse .navbar-nav > .active > a {
  background-color: #4a3728 !important;
  color: #ffffff !important;
}

/* ============================================
   3. KONTEN DUA KOLOM (KIRI & KANAN)
============================================== */
.flex-container-custom {
  display: flex !important;
  flex-direction: row !important;
  gap: 20px;
  width: 100%;
  margin-top: 15px;
  align-items: stretch;
}

.col-left-custom, .col-right-custom {
  flex: 1 !important;
  background: #ffffff;
  padding: 25px;
  border-radius: 12px;
  border: 1px solid #e3d5ca;
  box-shadow: 0 4px 6px rgba(99, 72, 50, 0.05);
  transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1);
}

/* Efek Interaktif: Kotak melayang & bercahaya saat disentuh */
.col-left-custom:hover, .col-right-custom:hover {
  transform: translateY(-8px);
  box-shadow: 0 12px 24px rgba(99, 72, 50, 0.15);
  border-color: #d4a373;
}

.col-left-custom {
  border-right: 3px solid #f5ebe0; /* Garis pembatas estetik */
}

/* ============================================
   4. TIPOGRAFI & AKSEN
============================================== */
h3 {
  font-family: 'Playfair Display', serif;
  color: #634832;
  border-bottom: 2px solid #d4a373;
  padding-bottom: 10px;
  display: inline-block;
}

h4 {
  color: #8b4513;
  font-weight: 600;
}

strong {
  color: #634832;
}

/* Custom Highlight Box */
.highlight-box {
  background-color: #fdf8f3;
  border-left: 5px solid #634832;
  padding: 15px;
  border-radius: 4px;
  font-style: italic;
}

/* ============================================
   5. RESPONSIVE (TAMPILAN HP)
============================================== */
@media (max-width: 768px) {
  .flex-container-custom {
    flex-direction: column !important;
  }
  .col-left-custom {
    border-right: none;
    border-bottom: 3px solid #f5ebe0;
  }
}
</style>

<style>
/* CSS untuk membagi halaman menjadi dua kolom dengan GARIS PEMBATAS */
.flex-container-custom {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 0; /* Gap diatur 0 karena kita pakai padding untuk jarak */
  width: 100%;
  align-items: flex-start;
  margin-top: 20px;
  overflow: visible !important;
}

.col-left-custom {
  flex: 1 !important;
  min-width: 0;
  background: #ffffff;
  padding: 20px;
  /* Garis pembatas di sebelah kanan kolom kiri */
  border-right: 2px solid #eeeeee; 
}

.col-right-custom {
  flex: 1 !important;
  min-width: 0;
  background: #ffffff;
  padding: 20px;
}

/* Memastikan konten tidak terpotong */
.chart-stage {
  overflow: visible !important;
}

/* Mengecilkan sedikit margin judul agar sejajar */
.col-left-custom h4, .col-right-custom h4 {
  margin-top: 0;
}
</style>

  
```{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}
=======================================================================


```{css}
/* ========== PHOTO CONTAINER (KELOMPOK TIGUY) ========== */
.photo-container {
  text-align: center;
  margin: 20px 0;
  position: relative;
  cursor: pointer;
  width: 100%;
  max-width: 600px;
  height: 400px;
  margin-left: auto;
  margin-right: auto;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
  transition: all 0.4s ease;
  background: #f5f1e8; /* Fallback color */
}

.photo-container:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
}

/* Foto kelompok */
.group-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
  display: block;
}

.photo-container:hover .group-photo {
  transform: scale(1.05);
}

/* OVERLAY KHUSUS UNTUK KELOMPOK - HARUS LEBIH SPESIFIK */
.photo-container .photo-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    to bottom,
    rgba(93, 64, 55, 0) 0%,
    rgba(93, 64, 55, 0.8) 100%
  );
  opacity: 0;
  transition: opacity 0.4s ease;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 40px;
  z-index: 2;
}

.photo-container:hover .photo-overlay {
  opacity: 1;
}

/* TEXT DI DALAM OVERLAY - HARUS LEBIH SPESIFIK */
.photo-container .photo-overlay .overlay-text {
  color: #FFF8E1;
  text-align: center;
  transform: translateY(30px);
  transition: all 0.5s ease 0.1s;
  padding: 20px;
  background: rgba(93, 64, 55, 0.7);
  border-radius: 10px;
  backdrop-filter: blur(5px);
  max-width: 80%;
}

.photo-container:hover .photo-overlay .overlay-text {
  transform: translateY(0);
}

.photo-container .photo-overlay .overlay-text h3 {
  font-size: 1.6em;
  margin-bottom: 10px;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
  color: #FFF8E1;
  font-weight: 700;
}

.photo-container .photo-overlay .overlay-text p {
  font-size: 1.1em;
  opacity: 0.95;
  margin: 0;
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.5);
  color: #FFF8E1;
}

/* Tooltip ITSB */
.itsb-tooltip {
  position: absolute;
  bottom: -60px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  background: linear-gradient(135deg, #8D6E63 0%, #A1887F 100%);
  color: #FFF8E1;
  padding: 15px 25px;
  border-radius: 10px;
  font-size: 1em;
  font-weight: 600;
  opacity: 0;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  pointer-events: none;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2);
  z-index: 10;
  text-align: center;
  min-width: 250px;
  white-space: nowrap;
}

.itsb-tooltip::after {
  content: "";
  position: absolute;
  top: -8px;
  left: 50%;
  margin-left: -8px;
  border-width: 8px;
  border-style: solid;
  border-color: transparent transparent #8D6E63 transparent;
}

.photo-container:hover .itsb-tooltip {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
  bottom: -70px;
}

/* Badge ITSB */
.itsb-badge {
  position: absolute;
  top: 15px;
  right: 15px;
  background: linear-gradient(135deg, #8D6E63 0%, #A1887F 100%);
  color: #FFF8E1;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1em;
  font-weight: bold;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
  z-index: 5;
  opacity: 0;
  transform: scale(0.8) rotate(-10deg);
  transition: all 0.3s ease 0.1s;
  border: 3px solid #FFF8E1;
}

.photo-container:hover .itsb-badge {
  opacity: 1;
  transform: scale(1) rotate(0deg);
}

/* Pulsing animation */
@keyframes borderPulse {
  0% {
    box-shadow: 0 0 0 0 rgba(141, 110, 99, 0.4);
  }
  70% {
    box-shadow: 0 0 0 10px rgba(141, 110, 99, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(141, 110, 99, 0);
  }
}

.photo-container {
  animation: borderPulse 3s infinite;
}

/* Responsive design */
@media (max-width: 768px) {
  .photo-container {
    height: 300px;
    max-width: 90%;
  }
  
  .photo-container .photo-overlay .overlay-text h3 {
    font-size: 1.4em;
  }
  
  .photo-container .photo-overlay .overlay-text p {
    font-size: 1em;
  }
  
  .itsb-tooltip {
    font-size: 0.9em;
    padding: 12px 20px;
    min-width: 220px;
    bottom: -50px;
  }
  
  .photo-container:hover .itsb-tooltip {
    bottom: -60px;
  }
  
  .itsb-badge {
    width: 40px;
    height: 40px;
    font-size: 0.9em;
  }
}

@media (max-width: 480px) {
  .photo-container {
    height: 250px;
  }
  
  .photo-container .photo-overlay .overlay-text {
    padding: 15px;
    max-width: 85%;
  }
  
  .photo-container .photo-overlay .overlay-text h3 {
    font-size: 1.2em;
  }
  
  .photo-container .photo-overlay .overlay-text p {
    font-size: 0.9em;
  }
  
  .itsb-tooltip {
    font-size: 0.8em;
    padding: 10px 15px;
    min-width: 200px;
    white-space: normal;
    bottom: -65px;
  }
  
  .photo-container:hover .itsb-tooltip {
    bottom: -75px;
  }
}
```

<div class="photo-container">
  <!-- Badge ITSB -->
  <div class="itsb-badge">ITSB</div>
  
  <!-- FOTO KELOMPOK -->
  <img src="https://raw.githubusercontent.com/adindaadeliafutri6-gif/kelompok-tiguy/main/kelompok%20tiguy.jpeg" 
       alt="Foto Kelompok Tiguy" 
       class="group-photo">
  
<!-- Overlay untuk teks -->
<div class="photo-overlay">
<div class="overlay-text">
<h3>Final Exam</h3>
<p>Data Science - ITSB</p>
</div>
</div>
  
<!-- Tooltip ITSB -->
<div class="itsb-tooltip">
👥 Kelompok Tiguy - ITSB<br>
📊 Mata Kuliah: Probability Distribution
</div>
</div>


Summary of Basic Statistics {data-orientation=rows}
=======================================================================
  
## Column {.tabset .tabset-fade data-height=520}
-----------------------------------------------------------------------

### Cahpter 1 {data-width=1200}

Intro to Statistics

**Definisi**

Statistika merupakan ilmu yang berperan penting dalam mengubah data mentah menjadi informasi yang bermakna, sehingga dapat mendukung pemahaman dan pengambilan keputusan yang lebih baik.

**Permasalahan Statistik Utama**

Permasalahan statistik utama dalam dataset ini adalah memahami kondisi kesehatan pasien serta faktor-faktor yang berhubungan dengan risiko penyakit metabolik dan kardiovaskular, seperti diabetes dan hipertensi. Dataset ini memungkinkan analisis hubungan antara variabel demografis (usia, gender), indikator fisik (BMI), dan indikator klinis (kadar glukosa darah, kolesterol, tekanan darah).

Selain itu, permasalahan statistik lainnya adalah:

- Mengidentifikasi pola distribusi data kesehatan pada populasi.
- Mengetahui kecenderungan nilai rata-rata dan penyebaran variabel kesehatan.
- Mendeteksi anomali atau nilai ekstrem.

**Jenis Statistik yang Digunakan**

Jenis statistik yang digunakan dalam analisis ini adalah **statistik deskriptif**, karena fokus utama adalah:

- Mendeskripsikan karakteristik data
- Menyajikan ringkasan numerik
- Memvisualisasikan distribusi dan pola data

Statistik inferensial belum digunakan karena tidak dilakukan pengujian hipotesis atau generalisasi ke populasi yang lebih luas.


### Cahpter 2 {data-width=1200}

Data Exploration

**Definsi**

Eksplorasi data adalah proses awal untuk memahami karakteristik data sebelum dilakukan analisis lanjutan atau pemodelan statistik. Tujuan utamanya adalah “mengenal data”: melihat pola, kecenderungan, variasi, dan keanehan yang ada di dalam data.

**Ringkasan Statistik Variabel Numerik**

Variabel numerik utama dalam dataset ini meliputi: Age, BMI, Blood Glucose, Cholesterol, Systolic Blood Pressure.

Ringkasan statistik yang dianalisis mencakup: Mean (rata-rata), Median (nilai tengah), Nilai minimum dan maksimum, dan Standar deviasi.

**Secara umum:**

- **Usia:** menunjukkan rentang yang cukup luas, menandakan dataset mencakup pasien usia muda hingga lanjut.
- **BMI:** memiliki variasi yang cukup besar, menunjukkan adanya pasien dengan berat badan normal hingga obesitas.
- **Blood Glucose dan Cholesterol:** menunjukkan sebaran yang cenderung right-skewed.

**Pola Awal, Tren, dan Anomali**

Beberapa pola awal yang teridentifikasi:

- Nilai blood glucose dan BMI cenderung lebih tinggi pada pasien dengan status diabetes.
- Terdapat outlier pada variabel blood glucose dan systolic blood pressure, yang mencerminkan kondisi medis serius.
- Distribusi data numerik umumnya tidak berdistribusi normal sempurna.


### Cahpter 3 {data-width=1200}

Basic Visualizations

**Definisi**

Visualisasi data adalah seni dan ilmu dalam mengkomunikasikan informasi melalui grafik dan gambar. Visualisasi data bertujuan untuk membantu kita melihat kaitan, pola, dan tren dalam data.

**Visualisasi yang Digunakan**

* **1. Histogram (Blood Glucose / BMI)**
  * Digunakan untuk melihat distribusi data numerik.

* **2. Bar Chart (Gender atau Diabetes Status)**
  * Digunakan untuk membandingkan frekuensi kategori.

* **3. Line Chart (Age vs Blood Glucose atau Age vs Systolic BP)**
  * Digunakan untuk melihat tren perubahan nilai kesehatan terhadap usia.

**Alasan Pemilihan Visualisasi**

Visualisasi tersebut dipilih karena:

- Mudah dipahami secara visual
- Sesuai dengan jenis data (numerik dan kategorikal)
- Mampu menampilkan pola, tren, dan perbandingan secara efektif
- Membantu mengidentifikasi outlier dan anomali data
- Memperjelas distribusi dan penyebaran data


### Cahpter 4  {data-width=1200}

Central Tendency

**Definisi**

Central Tendency adalah sebuah konsep dalam statistik deskriptif yang berfokus pada pencarian satu nilai yang dapat mewakili keseluruhan isi dari kumpulan data. Dengan kata lain, kita berusaha menemukan "titik kumpul" atau pusat data kita.

**Perhitungan Variabel 1: Blood Glucose**

Data:
90, 100, 110, 110, 150

* **1.** $\text{Mean} = \frac{90+100+110+110+150}{5} = 112$
* **2.** $\text{Median} = 110$
* **3.** $\text{Modus} = 110$

**Perhitungan Variabel 2: BMI**

Data:
22, 24, 24, 26, 30

* **1.** $\text{Mean} = \frac{22+24+24=26+30}{5} = 25.2$
* **2.** $\text{Median} = 24$
* **3.** $\text{Modus} = 24$

**Interpretasi Singkat**

- Pada blood glucose, mean lebih besar dari median, menunjukkan adanya nilai tinggi yang memengaruhi rata-rata.
- Pada BMI, mean dan median relatif berdekatan, menandakan distribusi data lebih seimbang.
- Median sering lebih representatif untuk data kesehatan.


### Cahpter 5 {data-width=1200}

Statistical Dispersion

**Definisi**

Dispersi, atau variabilitas, merupakan ukuran yang menggambarkan sejauh mana data tersebar dari nilai pusatnya (rata-rata). Dua kumpulan data dapat memiliki rata-rata yang sama, namun tingkat penyebarannya bisa sangat berbeda; ada yang terpusat dan ada yang terpencar jauh.

**Perhitungan Blood Glucose**

Contoh Data :
90, 100, 110, 110, 150

**1. Range**
$\text{Range}= \text{Nilai maks} - \text{Nilai min} = 150 - 90 = 60$

**2. Varians**

*Langkah: Hitung mean = 112, Hitung selisih tiap data dengan mean, lalu kuadratkan.*
$\text{Varians} = \frac{484 + 144+4+4+1444}{5} = 416$

**3. Standar Deviasi**
$SD= \sqrt{416} \approx {20.4}$

**Interpretasi**

Hasil perhitungan range, varians, dan standar deviasi menunjukkan bahwa data kadar gula darah memiliki tingkat penyebaran yang cukup besar. Nilai range yang tinggi menandakan adanya perbedaan yang signifikan antara nilai minimum dan maksimum, yang mencerminkan kondisi kesehatan pasien yang beragam, mulai dari kadar gula normal hingga sangat tinggi. Dengan demikian, ukuran penyebaran sangat penting untuk melengkapi nilai rata-rata, karena mean saja tidak cukup untuk menggambarkan variasi kondisi kesehatan dalam dataset.


### Cahpter 6 {data-width=1200}

Essentials of Probability

**Definisi**

Probabilitas adalah ilmu matematika untuk mengukur kemungkinan terjadinya peristiwa yang tidak pasti, dengan rentang nilai antara 0 (mustahil) hingga 1 (pasti).

**Event & Peluang**

Misalkan event yang diambil dari variabel diabetes:

- Event A = Pasien menderita diabetes

Dari 100 pasien:

- 35 pasien diabetes

**Peluang**
$P(A) = \frac{35}{100} = 0.35$

**Interpretasi**

Perhitungan peluang kejadian diabetes memberikan gambaran tentang proporsi risiko penyakit dalam populasi yang diamati. Nilai peluang yang cukup besar menunjukkan bahwa diabetes merupakan kondisi yang cukup umum dalam dataset ini, sehingga menjadi isu kesehatan yang perlu mendapatkan perhatian khusus.

Selain itu, konsep probabilitas juga menjadi dasar untuk analisis statistik lanjutan, seperti inferensi statistik dan pemodelan risiko penyakit, yang bertujuan untuk memahami ketidakpastian dalam data kesehatan.


### Cahpter 7 {data-width=1200}

Probability Distributions 

**Definisi**

Distribusi probabilitas adalah daftar atau gambaran yang menunjukkan peluang dari semua hasil yang mungkin terjadi dalam suatu percobaan.

**Variabel Acak Kontinu dan Distribusi Sampling**

Variabel acak kontinu merupakan data hasil pengukuran yang dapat mengambil nilai desimal dalam rentang tertentu, sehingga peluang suatu nilai ditentukan melalui luas area di bawah kurva fungsi kerapatan probabilitas (PDF) yang total luasnya sama dengan satu. Dalam analisis statistik, konsep ini diperluas melalui distribusi sampling, yaitu distribusi dari statistik sampel seperti rata-rata, yang menunjukkan bagaimana sampel dapat merepresentasikan populasi. Tingkat ketelitian estimasi rata-rata sampel diukur melalui kesalahan standar (standard error), yang semakin kecil seiring bertambahnya ukuran sampel.


**Teorema Limit Tengah dan Distribusi Proporsi Sampel**

Teorema Limit Tengah menyatakan bahwa distribusi rata-rata sampel akan mendekati distribusi normal apabila ukuran sampel cukup besar, terlepas dari bentuk distribusi populasi awal. Prinsip ini memungkinkan penggunaan pendekatan normal dalam inferensi statistik, termasuk perhitungan interval kepercayaan dan uji hipotesis. Selain itu, pada data berbentuk proporsi, distribusi proporsi sampel digunakan dengan syarat tertentu agar dapat diasumsikan normal, sehingga sering diaplikasikan dalam survei dan analisis persentase untuk menentukan tingkat ketidakpastian hasil.


### Cahpter 8 {data-width=1200}

Confidence Interval 

**Definisi**

Confidence Interval (CI) atau Selang Kepercayaan adalah rentang nilai yang digunakan untuk memperkirakan nilai asli populasi (seperti rata-rata atau persentase) berdasarkan data sampel. CI menunjukkan sejauh mana kita bisa "percaya" pada keakuratan data kita.

**Perhitungan**

Misalkan:

- Mean blood glucose = 112
- Standar deviasi = 20
- Jumlah sampel = 100
- Tingkat kepercayaan = 95%

Rumus:
$CI = \bar{x} \pm Z \left( \frac{s}{\sqrt{n}} \right)$

**Interval Kepercayaan**

Dengan Z = 1.96
$CI = 112 \pm 1.96 \left( \frac{20}{\sqrt{100}} \right) = 112 \pm 1.96 (2) = 112 \pm 3.92$

Interval kepercayaan: $(108.08, 115.92)$

**Makna:**
Dari interval kepercayaan ini adalah bahwa jika proses pengambilan sampel dilakukan berulang kali dengan metode yang sama, maka sekitar 95% dari interval yang terbentuk akan mencakup nilai rata-rata populasi yang sebenarnya. Dengan demikian, interval kepercayaan tidak hanya menunjukkan satu nilai estimasi, tetapi juga tingkat ketidakpastian dari estimasi tersebut.


### Cahpter 9 {data-width=1200}

<div class="flex-container-custom">

<div class="col-left-custom">
**Definisi**

Statistika Inferensial adalah proses menarik kesimpulan tentang populasi berdasarkan data sampel. Tujuannya adalah menjembatani data yang terlihat dengan kondisi nyata di bawah ketidakpastian.

**Uji Hipotesis**

Uji yang digunakan adalah uji t satu sampel (*one-sample t-test*) untuk mengetahui apakah rata-rata *blood glucose* pasien berbeda dari nilai acuan normal.

**Hipotesis**

* **Hipotesis nol ($H_0$):** $H_0: \mu = 100$
* **Hipotesis alternatif ($H_1$):** $H_1: \mu \neq 100$

**Diketahui:**
* $\bar{x} = 112$
* $s = 20$
* $n = 100$
* $\alpha = 0.05$
</div>

<div class="col-right-custom">
**Statistik Uji**

$$t = \frac{\bar{x} - \mu_0}{s / \sqrt{n}}$$
$$t = \frac{112 - 100}{20 / \sqrt{100}} = \frac{12}{2} = 6$$

**Derajat Kebebasan**
$$df = n - 1 = 99$$

**Nilai Kritis**
$$|t_{\text{hitung}}| = 6 > t_{\text{tabel}} = 1.984$$
**Maka hipotesis nol ditolak.**

**Kesimpulan**

Berdasarkan hasil uji, disimpulkan bahwa rata-rata kadar *blood glucose* pasien berbeda secara signifikan dari 100 mg/dL pada tingkat signifikansi 5%. Hal ini menunjukkan bahwa kadar gula darah pasien dalam dataset tidak berada pada nilai acuan normal.
</div>

</div>


### Cahpter 10  {data-width=1200}

Nonparametric Methods

**Definisi**

Metode Statistik Nonparametrik adalah teknik analisis data yang **tidak mewajibkan** data berdistribusi normal. Metode ini fokus pada peringkat (rank), tanda (sign), dan median, bukan pada rata-rata populasi.

**Uji Nonparametrik**

Uji yang digunakan adalah uji Mann–Whitney U

Contoh Data Sampel BMI

- Kelompok Diabetes (A)
28, 30, 32, 35

- Kelompok Non-Diabetes (B)
22, 24, 25, 27

$RA = 5 + 6 + 7 + 8 = 26$
$RB = 1 + 2 + 3 + 4 = 10$

**Statistik U**

$U_A = n_A n_B + \frac{n_A (n_A + 1)}{2} - R_A$
$U_A = (4)(4) + \frac{4(5)}{2} - 26 = 16 + 10 - 26 = 0$

$U_{\text{hitung}} = 0 < U_{\text{tabel}} = 2$ **maka hipotesis nol ditolak.**

**Kesimpulan**

Berdasarkan uji Mann–Whitney U, terdapat perbedaan yang signifikan pada nilai BMI antara pasien diabetes dan non-diabetes. Hal ini menunjukkan bahwa pasien dengan diabetes cenderung memiliki BMI yang lebih tinggi dibandingkan pasien non-diabetes, dan uji nonparametrik ini sesuai digunakan karena tidak bergantung pada asumsi normalitas data.


Dataset {data-orientation=rows}
=======================================================================

### Table & Dataset Overview {data-height=600}

```{r, echo=FALSE, message=FALSE, warning=FALSE}
# Load library yang diperlukan
library(readxl)
library(dplyr)
library(DT)

# Coba URL yang berbeda
url <- "https://raw.githubusercontent.com/adindaadeliafutri6-gif/uaskel3/main/Dataset_Kesehatan_15000_Data.xlsx"

# Download file dulu
temp_file <- tempfile(fileext = ".xlsx")
tryCatch({
  download.file(url, temp_file, mode = "wb")
  message("File berhasil didownload")
}, error = function(e) {
  message("Tidak bisa download dari URL pertama, coba alternatif...")
  
  # Coba URL alternatif
  url2 <- "https://github.com/adindaadeliafutri6-gif/uaskel3/raw/main/Dataset_Kesehatan_15000_Data.xlsx"
  download.file(url2, temp_file, mode = "wb")
  message("File berhasil didownload dari URL alternatif")
})

# Baca file
df <- read_excel(temp_file) %>% 
  dplyr::distinct(Patient_ID, .keep_all = TRUE)

# Lanjutkan dengan datatable
df1 <- df %>% 
  arrange(desc(Age)) %>% 
  select(Patient_ID, Age, Gender, BMI, Blood_Glucose, Cholesterol, Diabetes, Hypertension, Systolic_BP)

datatable(df1, 
          options = list(scrollX = TRUE),
          caption = htmltools::tags$caption(
            style = 'caption-side: bottom; text-align: center;',
            'Table: ', htmltools::em('Dataset Kesehatan Pasien')
          ))
```


<style> /* Desain Container Utama */ .premium-info-box { display: flex !important; gap: 15px; width: 100%; margin-top: 15px; background: transparent; }

.card-custom { flex: 1; background: #ffffff; border-radius: 12px; padding: 20px; border: 1px solid #e3e6f0; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05); }

/* Judul dan Label */ .label-analisis { background: #4e73df; color: white; padding: 3px 10px; border-radius: 20px; font-size: 0.7em; font-weight: bold; letter-spacing: 1px; }

.label-riset { background: #1cc88a; color: white; padding: 3px 10px; border-radius: 20px; font-size: 0.7em; font-weight: bold; letter-spacing: 1px; }

.title-card { color: #2c3e50; font-weight: 800; margin: 12px 0 8px 0; font-size: 1.15em; border-bottom: 2px solid #f8f9fc; padding-bottom: 5px; }

/* Teks Informatif */ .info-text { color: #5a5c69; font-size: 0.9em; line-height: 1.6; margin-bottom: 10px; }

.highlight-blue { color: #4e73df; font-weight: bold; } .highlight-green { color: #1cc88a; font-weight: bold; }

.quote-box { margin-top: 15px; padding: 12px; background: #f8f9fc; border-left: 5px solid #4e73df; border-radius: 4px; font-style: italic; font-size: 0.85em; color: #34495e; } </style>

### Table & Dataset Overview {data-height=600}

<div class="premium-info-box"> <div class="card-custom"> <span class="label-analisis">EKSPLORASI DATA</span> <h5 class="title-card">Interpretasi Dataset</h5> <p class="info-text"> Dataset ini merupakan representasi klinis yang kompleks, mencakup <span class="highlight-blue">13 variabel</span> kesehatan esensial untuk mendeteksi profil risiko pasien: </p> <ul class="info-text" style="padding-left:18px;"> <li><b>Dimensi Numerik:</b> Parameter seperti BMI dan Sistolik memungkinkan analisis distribusi normal dan korelasi linear.</li> <li><b>Dimensi Kategorik:</b> Variabel biner (Diabetes/Hipertensi) menjadi target utama dalam pemodelan risiko.</li> </ul> </div>

<div class="card-custom"> <span class="label-riset">STRATEGI RISET</span> <h5 class="title-card">Kualitas & Integritas Data</h5> <p class="info-text"> Integrasi antara data demografi (Usia/Gender) dan indikator klinis menciptakan struktur data yang <span class="highlight-green">Robust</span> untuk analisis tingkat lanjut: </p> <p class="info-text"> Struktur ini mendukung <b>Inferensi Statistik</b> yang akurat, memungkinkan kita memprediksi tren kesehatan populasi berdasarkan sampel responden yang luas. </p> <div class="quote-box"> "Keberhasilan pemodelan statistik sangat bergantung pada pemahaman mendalam terhadap karakteristik awal dataset." </div> </div> </div>

All About Basic Visualizations {data-orientation=rows}
=======================================================================

## Column {.tabset .tabset-fade data-height=520}
-----------------------------------------------------------------------
  
### Pie-Chart {data-width=1200}

<div class="flex-container-custom">

<div class="col-left-custom">
```{r, echo=FALSE, message=FALSE, warning=FALSE}
library(dplyr)
library(plotly)

# Ringkas data: gabungkan gender & smoking
donut_data <- df %>%
  filter(!is.na(Gender), !is.na(Smoking_Status)) %>%
  mutate(Group = paste(Gender, Smoking_Status, sep = " - ")) %>%
  count(Group) %>%
  mutate(Percentage = round(100 * n / sum(n), 1))

# Donut chart dengan tema COKELAT
plot_ly(
  data = donut_data,
  labels = ~Group,
  values = ~n,
  type = "pie",
  hole = 0.55,
  marker = list(
    colors = c(
      "#634832", "#967E67", "#D4A373", 
      "#A68A64", "#E3D5CA", "#F5EBE0"
    ),
    line = list(color = "white", width = 1)
  ),
  hovertemplate = paste(
    "<b>%{label}</b><br>",
    "Jumlah: %{value}<br>",
    "Persentase: %{percent}<extra></extra>"
  )
) %>%
  layout(
    margin = list(t = 50, b = 20, l = 10, r = 10),
    title = list(
      text = "Distribusi Gender & Smoking Status",
      font = list(size = 16),
      x = 0.5
    ),
    showlegend = FALSE
  )
```

</div>

<div class="col-right-custom"> Interpretation

Berdasarkan pie chart yang ditampilkan, dapat dilihat bahwa distribusi data responden berdasarkan gender dan smoking status tidak bersifat seimbang. Salah satu kategori memiliki proporsi yang lebih besar dibandingkan kategori lainnya, yang menunjukkan dominasi kelompok tertentu dalam dataset.

Kondisi ini menggambarkan bahwa karakteristik responden tidak homogen, sehingga komposisi sampel lebih merepresentasikan kelompok mayoritas. Pada variabel smoking status, proporsi non-smoker yang lebih besar mengindikasikan bahwa sebagian besar responden tidak memiliki kebiasaan merokok.

Hal ini penting untuk diperhatikan karena perbedaan proporsi ini dapat memengaruhi interpretasi analisis lanjutan, terutama ketika dikaitkan dengan variabel kesehatan seperti tekanan darah, kadar kolesterol, dan gula darah.

</div>

</div>

### Bar-Chart {data-width=1200}

<div class="flex-container-custom">

<div class="col-left-custom">
```{r, echo=FALSE, message=FALSE, warning=FALSE}
library(plotly)
library(dplyr)

# 1. Data prep
df <- df %>%
  mutate(
    Age_Group = cut(Age, 
                   breaks = c(0, 20, 30, 40, 50, 60, 70, 100),
                   labels = c("0-19", "20-29", "30-39", "40-49", "50-59", "60-69", "70+")),
    Diabetes_Status = ifelse(Diabetes == 1, "Diabetes", "Non-Diabetes")
  )

# 2. Hitung dan urutkan
plot_data <- df %>%
  group_by(Age_Group, Diabetes_Status) %>%
  summarise(Count = n(), .groups = "drop") %>%
  group_by(Age_Group) %>%
  mutate(Total = sum(Count)) %>%
  ungroup() %>%
  arrange(Total) %>%
  mutate(Age_Group = factor(Age_Group, levels = unique(Age_Group)))

# 3. Buat plot dengan tema COKELAT
fig <- plot_ly()

# Trace Diabetes (Cokelat Tua)
fig <- fig %>% add_trace(
  data = plot_data %>% filter(Diabetes_Status == "Diabetes"),
  x = ~Age_Group,
  y = ~Count,
  type = "bar",
  name = "Diabetes",
  marker = list(color = "#634832"),
  hovertemplate = "Age Group: %{x}<br>Diabetes: %{y} patients<extra></extra>"
)

# Trace Non-Diabetes (Cokelat Muda/Krem)
fig <- fig %>% add_trace(
  data = plot_data %>% filter(Diabetes_Status == "Non-Diabetes"),
  x = ~Age_Group,
  y = ~Count,
  type = "bar",
  name = "Non-Diabetes",
  marker = list(color = "#D4A373"),
  hovertemplate = "Age Group: %{x}<br>Non-Diabetes: %{y} patients<extra></extra>"
)

# 4. Layout
fig <- fig %>% layout(
  margin = list(t = 50, b = 20, l = 10, r = 10),
  title = "Diabetes Distribution by Age Group",
  xaxis = list(title = "Age Group"),
  yaxis = list(title = "Number of Patients"),
  barmode = "stack",
  showlegend = FALSE,
  hovermode = "x"
)

fig
```

</div>

<div class="col-right-custom"> Interpretation

Visualisasi bar chart menunjukkan perbedaan frekuensi yang jelas antar kategori pada variabel kategorikal. Tinggi batang yang berbeda merefleksikan jumlah observasi pada masing-masing kategori, di mana kategori dengan batang tertinggi menandakan kelompok yang paling dominan dalam data.

Perbedaan ini mengindikasikan adanya ketimpangan distribusi, misalnya antara individu dengan dan tanpa kondisi tertentu seperti diabetes atau hipertensi.

Bar chart ini membantu memperjelas struktur data dan menunjukkan bahwa sebagian besar responden berada pada kondisi kesehatan normal, sementara sebagian kecil berada pada kategori dengan risiko kesehatan tertentu, yang berpotensi memunculkan nilai ekstrem pada analisis variabel numerik.

</div>

</div>

### Line-Chart {data-width=1200}

<div class="flex-container-custom">

<div class="col-left-custom">
```{r, echo=FALSE, message=FALSE, warning=FALSE}
library(dplyr)
library(plotly)

# Persiapan Data
df <- df %>%
  mutate(
    Age_Group = case_when(
      Age < 20 ~ "<20",
      Age >= 20 & Age < 30 ~ "20–29",
      Age >= 30 & Age < 40 ~ "30–39",
      Age >= 40 & Age < 50 ~ "40–49",
      Age >= 50 & Age < 60 ~ "50–59",
      Age >= 60 ~ "60+",
      TRUE ~ NA_character_
    )
  )

line_data <- df %>%
  filter(!is.na(Age_Group), !is.na(Blood_Glucose)) %>%
  group_by(Age_Group) %>%
  summarise(Mean_Blood_Glucose = mean(Blood_Glucose), .groups = "drop") %>%
  mutate(Age_Group = factor(Age_Group, levels = c("<20", "20–29", "30–39", "40–49", "50–59", "60+"))) %>%
  arrange(Age_Group)

# Plot dengan tema COKELAT
plot_ly(
  data = line_data,
  x = ~Age_Group,
  y = ~Mean_Blood_Glucose,
  type = "scatter",
  mode = "lines+markers",
  line = list(
    color = "#634832", # Cokelat Tua
    width = 4
  ),
  marker = list(
    size = 10,
    color = "#D4A373" # Cokelat Muda/Tan
  ),
  hovertemplate = paste(
    "<b>Age Group:</b> %{x}<br>",
    "<b>Rata-rata Blood Glucose:</b> %{y:.2f}<extra></extra>"
  )
) %>%
  layout(
    margin = list(t = 50, b = 20, l = 10, r = 10),
    title = list(
      text = "Rata-rata Blood Glucose berdasarkan Kelompok Umur",
      font = list(size = 16),
      x = 0.5
    ),
    xaxis = list(title = "Age Group"),
    yaxis = list(title = "Rata-rata Blood Glucose"),
    plot_bgcolor = "white",
    paper_bgcolor = "white"
  )
```

</div>

<div class="col-right-custom"> Interpretation

Line chart memperlihatkan pola perubahan nilai variabel numerik yang berfluktuasi sepanjang urutan data, yang menunjukkan bahwa data kesehatan bersifat dinamis dan bervariasi antar individu. Naik-turunnya garis mencerminkan perbedaan kondisi fisiologis responden, yang dapat dipengaruhi oleh usia, gaya hidup, maupun adanya penyakit penyerta.

Pola fluktuatif ini menandakan bahwa variabel yang diamati tidak bersifat konstan dan memiliki variabilitas yang cukup tinggi.

Line chart ini memberikan gambaran awal mengenai kemungkinan adanya tren atau kecenderungan tertentu, meskipun diperlukan analisis statistik lanjutan untuk memastikan hubungan yang signifikan antar variabel.

</div>

</div>

### Central Tendency {data-width=1200}

<div class="flex-container-custom">

<div class="col-left-custom">
```{r, echo=FALSE, message=FALSE, warning=FALSE}
library(dplyr)
library(ggplot2)
library(plotly)

bmi_data <- df %>%
  filter(!is.na(BMI))

mean_bmi   <- mean(bmi_data$BMI)
median_bmi <- median(bmi_data$BMI)

mode_bmi <- as.numeric(
  names(sort(table(bmi_data$BMI), decreasing = TRUE)[1])
)

# Rentang BMI (PENTING untuk density)
bmi_range <- diff(range(bmi_data$BMI))
n_bmi     <- nrow(bmi_data)

p <- ggplot(bmi_data, aes(x = BMI)) +
  # Histogram (Cokelat Muda)
  geom_histogram(
    aes(
      y = after_stat(count),
      text = paste(
        "BMI:", round(after_stat(xmin), 1), "-",
        round(after_stat(xmax), 1),
        "<br>Jumlah:", after_stat(count)
      )
    ),
    bins = 20,
    fill = "#D4A373", 
    color = "white",
    alpha = 0.85
  ) +
  # Density (Cokelat Tua)
  geom_density(
    aes(
      y = after_stat(density * n_bmi * bmi_range / 20),
      text = "Density Curve"
    ),
    color = "#634832",
    linewidth = 1.2
  ) +
  # Garis Mean, Median, Modus dengan warna Earth Tone
  geom_vline(aes(xintercept = mean_bmi, color = "Mean"), linewidth = 1.0) +
  geom_vline(aes(xintercept = median_bmi, color = "Median"), linewidth = 1.0, linetype = "dashed") +
  geom_vline(aes(xintercept = mode_bmi, color = "Modus"), linewidth = 1.0, linetype = "dotdash") +
  scale_color_manual(
    name = "Pemusatan",
    values = c(
      "Mean"   = "#8B4513", # Saddle Brown
      "Median" = "#A0522D", # Sienna
      "Modus"  = "#BC8F8F"  # Rosy Brown
    )
  ) +
  labs(
    title = "Distribusi BMI dengan Mean, Median, dan Modus",
    x = "BMI",
    y = "Jumlah Observasi"
  ) +
  theme_minimal() +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold"),
    legend.position = "bottom"
  )

ggplotly(p, tooltip = "text")

```

</div>

<div class="col-right-custom"> Interpretation

Berdasarkan visualisasi central tendency yang ditampilkan, terlihat bahwa nilai mean dan median tidak berada pada posisi yang sama, yang menunjukkan bahwa distribusi data cenderung tidak simetris.

Pada beberapa variabel numerik seperti blood glucose, BMI, dan tekanan darah, mean tampak lebih tinggi dibandingkan median, yang mengindikasikan adanya nilai-nilai ekstrem di sisi kanan distribusi.

Kondisi ini menunjukkan bahwa meskipun sebagian besar responden berada pada rentang nilai normal, terdapat sejumlah kecil responden dengan nilai yang sangat tinggi sehingga memengaruhi nilai rata-rata. Oleh karena itu, median pada visualisasi ini lebih merepresentasikan kondisi tipikal responden dibandingkan mean.

</div>

</div>

### Statistical Dispersion {data-width=1200}

<div class="flex-container-custom">

<div class="col-left-custom">
```{r, echo=FALSE, message=FALSE, warning=FALSE}
library(dplyr)
library(ggplot2)
library(plotly)

# Bersihkan data
bp_data <- df %>%
  filter(!is.na(Systolic_BP))

# Boxplot dengan tema COKELAT
p <- ggplot(
  bp_data,
  aes(
    x = factor("Systolic BP"),
    y = Systolic_BP,
    text = paste("Systolic BP:", Systolic_BP, "mmHg")
  )
) +
  geom_boxplot(
    fill = "#D4A373",      # Cokelat Muda (Tan)
    color = "#634832",     # Cokelat Tua
    width = 0.35,
    outlier.color = "#8B4513", # Saddle Brown untuk outlier
    outlier.size = 2
  ) +
  labs(
    title = "Statistical Dispersion of Systolic Blood Pressure",
    y = "Systolic Blood Pressure (mmHg)",
    x = NULL
  ) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold"),
    axis.text.x = element_blank(),
    panel.grid.major.x = element_blank()
  )

# Interaktif
ggplotly(p, tooltip = "text")
```

</div>

<div class="col-right-custom"> Interpretation

Visualisasi statistical dispersion menunjukkan sebaran data yang cukup luas, yang ditandai dengan range yang besar serta standar deviasi yang relatif tinggi.

Hal ini terlihat dari grafik yang memperlihatkan jarak yang cukup jauh antara nilai minimum dan maksimum, serta distribusi data yang tidak terkonsentrasi pada satu titik saja. Penyebaran yang lebar ini mencerminkan adanya variasi kondisi kesehatan antar responden, di mana sebagian individu memiliki nilai yang jauh dari pusat data.

Pola ini mengindikasikan bahwa dataset bersifat heterogen dan dipengaruhi oleh faktor-faktor individual seperti usia, kondisi medis, dan gaya hidup.

</div>

</div>

### Probability Distributions {data-width=1200}

<div class="flex-container-custom">

<div class="col-left-custom">
```{r, echo=FALSE, message=FALSE, warning=FALSE}
library(dplyr)
library(ggplot2)
library(plotly)

p <- ggplot(df, aes(x = Blood_Glucose)) +
  geom_histogram(
    aes(y = after_stat(density)),
    bins = 20,
    fill = "#D4A373",  # Cokelat Muda (Tan)
    color = "white",
    alpha = 0.75
  ) +
  geom_density(
    color = "#634832", # Cokelat Tua
    linewidth = 1.2
  ) +
  geom_vline(
    aes(xintercept = mean(Blood_Glucose, na.rm = TRUE)),
    color = "#A0522D", # Sienna (Cokelat)
    linewidth = 1,
    linetype = "dashed"
  ) +
  labs(
    title = "Blood Glucose Distribution",
    subtitle = "Histogram, Density Curve, and Mean Value",
    x = "Blood Glucose",
    y = "Density"
  ) +
  theme_minimal(base_size = 13) +
  theme(
    plot.title = element_text(hjust = 0.5, face = "bold"),
    plot.subtitle = element_text(hjust = 0.5)
  )

ggplotly(p)
```

</div>

<div class="col-right-custom"> Interpretation

Berdasarkan visualisasi probability distribution yang ditampilkan, terlihat bahwa distribusi data cenderung miring ke kanan dan tidak mengikuti pola distribusi normal secara sempurna. Sebagian besar probabilitas terkonsentrasi pada rentang nilai tertentu, sementara terdapat ekor distribusi yang memanjang ke arah nilai yang lebih tinggi.

Hal ini menunjukkan bahwa peluang terjadinya nilai ekstrem relatif kecil, namun tetap ada dan signifikan secara analitis.

Pola distribusi ini konsisten dengan karakteristik data kesehatan, di mana mayoritas responden berada pada kondisi normal dan sebagian kecil berada pada kondisi berisiko tinggi, sehingga asumsi normalitas perlu dipertimbangkan kembali dalam analisis lanjutan.

</div>

</div>

Confidence Interval  {data-orientation=rows}
=======================================================================

## Column {.tabset .tabset-fade data-height=520}
-----------------------------------------------------------------------

### Case Study Example {data-width=1200}

<div style="background-color: #f8f9fa; padding: 15px; border-left: 5px solid #2e86c1; margin-bottom: 20px; color: #333333;">
**Konteks Analisis:** Penyedia layanan kesehatan bertujuan untuk memvalidasi apakah rata-rata tekanan darah sistolik populasi masih berada di bawah ambang batas klinis hipertensi (**130 mmHg**).
</div>

#### **Tujuan Penelitian**
Digunakan metode **One-Sided Confidence Interval (Upper Bound)** untuk menetapkan batas atas estimasi rata-rata populasi. Fokus utama kita adalah memastikan bahwa batas maksimal rata-rata populasi (dengan tingkat keyakinan 95%) tidak melampaui target yang ditetapkan. Jika *Upper Bound* melebihi 130 mmHg, maka diperlukan intervensi medis pada populasi tersebut.

---

#### **Parameter Data**
Untuk melakukan perhitungan ini, berikut adalah data yang diperoleh dari lapangan:

* **Simpangan Baku Populasi ($\sigma$):** $14{,}9$ mmHg
* **Ukuran Sampel ($n$):** $15.000$ Responden
* **Rata-rata Sampel ($\bar{x}$):** $130{,}2$ mmHg
* **Tingkat Kepercayaan:** $95\%$ ($\alpha = 0,05$)

---

*Catatan: Penggunaan sampel besar ($n=15.000$) memberikan tingkat presisi yang tinggi dalam mengestimasi rata-rata populasi melalui nilai Standard Error yang kecil.*

### Perhitungan {data-width=1200}

<div class="flex-container-custom">

<div class="col-left-custom">
**1. Hitung Standard Error (SE):**
$$SE = \frac{\sigma}{\sqrt{n}} = \frac{14{,}9}{\sqrt{15000}}$$
$$SE = \frac{14{,}9}{122{,}474} \approx 0{,}1217 \ \text{mmHg}$$

**2. Tentukan nilai z untuk one-sided 95% CI:**
$$z_{0,95} = 1,645$$
*(Distribusi Z digunakan karena sampel $n \geq 30$ sangat besar, sehingga memenuhi Teorema Limit Tengah).*
</div>

<div class="col-right-custom">
**3. Hitung Margin of Error (MOE):**
$$MOE = z_{0,95} \times SE = 1,645 \times 0,1217$$
$$MOE \approx 0,2002 \ \text{mmHg}$$

**4. Hitung Upper Bound:**
$$\text{Upper Bound} = \bar{x} + MOE = 130,2 + 0,2002$$
$$\text{Upper Bound} = 130,4002 \approx 130,40 \ \text{mmHg}$$

**Hasil Akhir:**
$$\boxed{\mu \leq 130,40 \ \text{mmHg}}$$
*Kita yakin 95% bahwa rata-rata tekanan darah populasi tidak akan melebihi 130,40 mmHg.*
</div>

</div>

### Visualisasi {data-width=1200}

```{r}
library(highcharter)
library(dplyr)

# 1. Pastikan parameter didefinisikan kembali agar tidak error
n_total <- 15000
mean_x <- 130.2
se <- 14.9 / sqrt(15000)
upper_ci <- 130.40
target <- 130

# 2. Menyiapkan data kurva
x_axis <- seq(129.5, 131.5, length.out = 500)
y_axis <- dnorm(x_axis, mean = mean_x, sd = se)

# 3. PERBAIKAN DI SINI: Gunakan 'se' agar angka n_estimasi berubah secara dinamis
# Kita gunakan skala faktor agar total area mendekati n_total
df_curve <- data.frame(x = x_axis, y = y_axis) %>%
  mutate(n_estimasi = round(y * n_total * 0.01)) 

df_green <- df_curve %>% filter(x <= upper_ci)
df_red <- df_curve %>% filter(x > upper_ci)

# 4. Membuat Grafik Highcharter
hchart(df_green, "area", hcaes(x = x, y = y), name = "Zona Keyakinan 95%", color = "rgba(0, 255, 127, 0.4)") %>%
  hc_title(text = "<b>Distribusi Sampling & Estimasi Populasi</b>") %>%
  hc_subtitle(text = "Arahkan kursor untuk melihat perubahan jumlah orang di setiap titik") %>%
  
  hc_add_series(
    data = df_red,
    type = "area",
    hcaes(x = x, y = y),
    name = "Zona di luar CI (Alpha)",
    color = "rgba(255, 0, 0, 0.6)"
  ) %>%
  
  hc_xAxis(
    title = list(text = "Tekanan Darah Sistolik (mmHg)"),
    plotLines = list(
      list(value = target, color = "#8E44AD", width = 2, label = list(text = "Target: 130")),
      list(value = mean_x, color = "#2E86C1", width = 2, dashStyle = "Dot", label = list(text = "Mean: 130.2")),
      list(value = upper_ci, color = "#C0392B", width = 3, dashStyle = "LongDash", label = list(text = "Upper Bound: 130.4"))
    )
  ) %>%
  
  hc_tooltip(
    shared = TRUE,
    useHTML = TRUE,
    headerFormat = "<b>Tekanan Darah: {point.key} mmHg</b><br>",
    pointFormat = "Density: {point.y:.4f}<br><b>Estimasi: </b> Sekitar {point.n_estimasi} orang"
  ) %>%
  hc_add_theme(hc_theme_flat())
```

### Interpretasi {data-width=1200}

<div style="background-color: #f0fff4; padding: 15px; border-left: 5px solid #28a745; margin-bottom: 20px; color: #333333;">
**Ringkasan Temuan:** Berdasarkan analisis *one-sided 95% upper confidence interval*, diperoleh estimasi bahwa rata-rata tekanan darah sistolik populasi tidak melebihi **130,40 mmHg**.
</div>

#### **Analisis Ambang Hipertensi**
* **Ambang Klinis (Target):** 130,00 mmHg
* **Batas Atas (Upper Bound):** 130,40 mmHg
* **Selisih:** 0,40 mmHg

#### **Kesimpulan Strategis**
Hasil perhitungan menunjukkan bahwa batas atas interval kepercayaan sedikit melewati ambang batas hipertensi.

1.  **Potensi Risiko:** Rata-rata populasi berada pada zona kritis. Dengan tingkat kepercayaan 95%, kita yakin rata-rata populasi tidak lebih dari 130,40, namun angka ini sudah berada di atas target 130.
2.  **Signifikansi Klinis:** Meskipun secara statistik selisihnya kecil (hanya 0,40 mmHg), dalam konteks kesehatan populasi, angka ini mengindikasikan perlunya pemantauan tren hipertensi secara berkala.
3.  **Rekomendasi:** Penyedia layanan kesehatan disarankan untuk meningkatkan program preventif karena estimasi rata-rata populasi sudah mulai menyentuh kategori hipertensi.

### Refleksi Analitis: Memahami Rentang Risiko (Confidence Interval) {data-width=1200}

<div style="background-color: #fffaf0; padding: 12px 20px; border: 1px solid #ffeeba; border-radius: 8px; color: #333; line-height: 1.3; font-size: 0.88em; overflow: hidden;">

<div style="display: flex; gap: 25px;">

<div style="flex: 1; border-right: 1px solid #decba4; padding-right: 20px;">
<h4 style="color: #856404; margin-top: 0;"><b>1. Confidence Interval sebagai "Radar" Risiko</b></h4>
Jika Uji Hipotesis adalah keputusan sesaat, maka *Confidence Interval* adalah pandangan jangka panjang:
* **Bukan Sekadar Angka Tunggal:** Kita tidak hanya melihat rata-rata 130,2 mmHg, tapi kita yakin 95% bahwa rata-rata populasi sebenarnya ada di rentang **129,99 hingga 130,40 mmHg**.
* **Pesan di Balik Rentang:** Karena angka 130 berada di dalam rentang tersebut, secara statistik kita belum bisa "menghukum" populasi ini sebagai penderita hipertensi. Namun, radar menunjukkan kita sudah sangat dekat dengan batas bahaya.
</div>

<div style="flex: 1; padding-left: 10px;">
<h4 style="color: #856404; margin-top: 0;"><b>2. Makna Strategis untuk Masa Depan</b></h4>
Refleksi dari temuan ini memberikan kita dua poin penting untuk kebijakan kesehatan:
* **Analisis Pergeseran:** Batas atas kita ($130,40$) sudah melewati ambang batas. Ini artinya, meski saat ini masih dianggap "normal", tren kesehatan populasi sedang bergerak menuju risiko tinggi.
* **Tindakan Pencegahan:** Kita tidak perlu menunggu sampai rata-rata benar-benar melonjak tinggi. Radar ini memberi kita waktu untuk berbenah sekarang.

<div style="margin-top: 10px; padding: 10px; background-color: #fcf8e3; border-left: 5px solid #856404; border-radius: 4px;">
<b>Rekomendasi Reflektif:</b> Gunakan hasil ini sebagai alarm peringatan. Fokuskan upaya pada pengendalian faktor risiko agar di pengukuran berikutnya, seluruh rentang radar (CI) kembali berada di bawah 130 mmHg.
</div>
</div>

</div>

</div>

Statistical Inference {data-orientation=rows}
=======================================================================

## Column {.tabset .tabset-fade}
-----------------------------------------------------------------------

### Case Study

<div style="background-color: #f8f9fa; padding: 12px 15px; border-left: 5px solid #2e86c1; margin-bottom: 12px; color: #333333; line-height: 1.4;">
**Konteks Analisis:** Sebuah lembaga kesehatan ingin membuktikan secara empiris apakah rata-rata tekanan darah sistolik populasi memiliki perbedaan yang signifikan secara statistik dibandingkan dengan nilai acuan standar yaitu **130 mmHg**.
</div>

#### **Tujuan Penelitian**
Tugas ini bertujuan melakukan **Uji Hipotesis Dua Arah (Two-Tailed Test)** untuk menguji perbedaan nyata antara rata-rata lapangan dengan standar 130 mmHg. Fokus utamanya adalah menentukan apakah selisih yang ditemukan merupakan perubahan populasi atau sekadar variasi acak sampel.

---

#### **Parameter Uji & Pengendalian Risiko (Error Analysis)**
* **Hipotesis:** $H_0: \mu = 130$ mmHg vs $H_1: \mu \neq 130$ mmHg
* **Data Sampel:** $\bar{x} = 130,2$ | $\sigma = 14,9$ | $n = 15.000$ Responden
* **Tingkat Signifikansi ($\alpha$):** 0,05
    * *Pengendalian Type I Error:* Batas risiko 5% untuk salah menolak $H_0$ (menyatakan ada perbedaan padahal aslinya tidak ada).
    * *Pengendalian Type II Error:* Sampel besar ($n=15.000$) digunakan untuk meminimalisir risiko gagal mendeteksi perbedaan nyata (*Power of Test*).



---

<div style="background-color: #fffaf0; padding: 10px 15px; border: 1px solid #ffeeba; border-radius: 5px; font-size: 0.9em; color: #333333; line-height: 1.3;">
**Catatan Penting Hipotesis Error:**
1. **Type I Error (False Positive):** Menyimpulkan rata-rata populasi sudah bergeser, padahal sebenarnya masih stabil.
2. **Type II Error (False Negative):** Gagal mendeteksi pergeseran populasi, padahal sebenarnya sudah tidak di angka 130 mmHg.
</div>

---

<p style="font-size: 0.85em; font-style: italic; margin-top: -10px;">
*Catatan: Uji dua arah dipilih untuk mengakomodasi kemungkinan rata-rata populasi yang bisa lebih rendah atau lebih tinggi dari nilai acuan.*
</p>
### Langkah Perhitungan Statistik Inferensial

<div style="background-color: #f0f7ff; padding: 15px; border-left: 5px solid #007bff; margin-bottom: 20px; color: #333333;">
**Prosedur Pengujian:** Tahapan ini mengonversi selisih absolut antara rata-rata sampel dan nilai acuan ke dalam unit standar (t-score) untuk divalidasi dengan distribusi peluang.
</div>

<div class="flex-container-custom">

<div class="col-left-custom">
<span class="calc-title-custom">1. Estimasi Standard Error (SE)</span>
Melambangkan rata-rata penyimpangan distribusi sampel terhadap populasi:
$$SE = \frac{\sigma}{\sqrt{n}}$$
$$SE = \frac{14,9}{\sqrt{15.000}} = \frac{14,9}{122,47} \approx 0,1217$$

<span class="calc-title-custom" style="margin-top:20px;">2. Perhitungan t-Statistik (t-hitung)</span>
Menentukan seberapa jauh rata-rata sampel menyimpang dari hipotesis nol dalam satuan standar deviasi:
$$t = \frac{\bar{x} - \mu_0}{SE}$$
$$t = \frac{130,2 - 130}{0,1217} = \frac{0,2}{0,1217} \approx 1,643$$
</div>

<div class="col-right-custom">
<span class="calc-title-custom">3. Derajat Bebas & Distribusi</span>
$$df = n - 1 = 15.000 - 1 = 14.999$$
Karena ukuran sampel ($n > 30$), distribusi-t ini mendekati **Distribusi Normal Standar (Z)**.

<span class="calc-title-custom" style="margin-top:20px;">4. Uji Signifikansi (Alpha 5%)</span>
Untuk pengujian dua arah (*two-tailed test*):
* **t-tabel ($t_{critical}$):** $\pm 1,96$
* **Nilai P ($p$-value):** $0,1004$

**Kriteria Keputusan:**
Gagal Tolak $H_0$ jika $|t_{hitung}| < |t_{tabel}|$.
$$1,643 < 1,96 \text{ (Benar)}$$

**Keputusan:** **GAGAL TOLAK $H_0$**. Perbedaan rata-rata secara statistik tidak signifikan.
</div>

</div>

### Visualisasi Uji Hipotesis (Two-Tailed)

```{r, fig.height=5.2}
library(highcharter)
library(dplyr)

# 1. Parameter dari perhitungan kita
t_hitung <- 1.643
t_critical <- 1.96
df_value <- 14999

# 2. Menyiapkan data kurva Distribusi T
x_axis <- seq(-4, 4, length.out = 1000)
y_axis <- dt(x_axis, df = df_value)
df_plot <- data.frame(x = x_axis, y = y_axis)

# Membagi area untuk pewarnaan
df_fail_to_reject <- df_plot %>% filter(x >= -t_critical & x <= t_critical)
df_reject_left <- df_plot %>% filter(x < -t_critical)
df_reject_right <- df_plot %>% filter(x > t_critical)

# 3. Membuat Grafik Interaktif
hchart(df_fail_to_reject, "area", hcaes(x = x, y = y), 
       name = "Daerah Gagal Tolak H0 (95%)", 
       color = "rgba(40, 167, 69, 0.2)") %>%
  
  hc_add_series(data = df_reject_left, type = "area", hcaes(x = x, y = y),
                name = "Daerah Penolakan (Alpha/2)", color = "rgba(220, 53, 69, 0.5)") %>%
  
  hc_add_series(data = df_reject_right, type = "area", hcaes(x = x, y = y),
                name = "Daerah Penolakan (Alpha/2)", color = "rgba(220, 53, 69, 0.5)") %>%
  
  hc_title(text = "<b>Visualisasi Pengambilan Keputusan Statistik</b>") %>%
  hc_subtitle(text = "Uji Dua Arah (Two-Tailed Test) dengan alpha = 0.05") %>%
  
  hc_xAxis(
    title = list(text = "Nilai t (Standard Deviations)"),
    plotLines = list(
      list(value = t_hitung, color = "#2e86c1", width = 3, zIndex = 5,
           label = list(text = paste("t-hitung:", t_hitung), 
                        style = list(color = "#2e86c1", fontWeight = "bold"))),
      list(value = t_critical, color = "black", width = 1, dashStyle = "Dash"),
      list(value = -t_critical, color = "black", width = 1, dashStyle = "Dash")
    )
  ) %>%
  
  hc_yAxis(
    title = list(text = "Kerapatan Peluang (Probability Density)"),
    max = 0.5, # Menjaga kurva tetap tegak tapi tidak memicu scroll
    tickAmount = 5
  ) %>%
  
  hc_tooltip(
    shared = TRUE,
    headerFormat = "<b>Statistik Uji</b><br>",
    pointFormat = "Nilai t: {point.x:.3f}<br>Kerapatan: {point.y:.4f}"
  ) %>%
  hc_add_theme(hc_theme_flat()) %>%
  
  hc_caption(
    text = "<b>Catatan:</b> Nilai <i>Kerapatan</i> pada grafik menunjukkan probabilitas relatif. Fokus utama kita adalah pada <b>Nilai t (1,643)</b> yang masih berada dalam area hijau (kerapatan tinggi), menandakan data konsisten dengan Hipotesis Nol.",
    align = "left",
    style = list(fontSize = "11px", color = "#555555")
  )
```

### Interpretasi {data-width=1200}

<div style="background-color: #f0fff4; padding: 10px 15px; border-left: 5px solid #28a745; margin-bottom: 10px; color: #333333; line-height: 1.4;">
**Ringkasan Keputusan:** Berdasarkan uji t satu sampel (*one-sample t-test*) dua arah, kita **Gagal Menolak Hipotesis Nol ($H_0$)**. Tidak terdapat bukti statistik yang cukup pada tingkat signifikansi 5% untuk menyatakan bahwa rata-rata tekanan darah sistolik populasi berbeda dari 130 mmHg.
</div>

#### **Analisis Hasil Statistik**
1. **Posisi t-Statistik:** Nilai $t_{hitung}$ sebesar **1,643** masih berada di dalam rentang nilai kritis ($t_{tabel}$) antara **-1,96** hingga **+1,96**. Statistik uji tidak jatuh ke dalam "Daerah Penolakan".
2. **P-Value:** Nilai peluang (*P-value*) sebesar **0,1004** lebih besar dari ambang batas $\alpha = 0,05$, sehingga perbedaan dianggap tidak signifikan secara statistik.
3. **Besaran Selisih:** Perbedaan antara rata-rata sampel (130,2) dan acuan (130,0) sebesar **0,2 mmHg**. Dalam sampel 15.000 responden, ini dianggap sebagai variasi alami data (*sampling variation*).

---

#### **Evaluasi Risiko Keputusan (Error Analysis)**
* **Potensi Type II Error (False Negative):** Terdapat kemungkinan kecil bahwa sebenarnya rata-rata populasi sudah mulai bergeser naik, namun uji statistik belum mampu menyatakannya sebagai "signifikan". 
* **Mitigasi:** Penggunaan sampel sangat besar (**15.000**) telah meminimalisir risiko ini dengan meningkatkan kekuatan uji (*Power of Test*), sehingga kita memiliki kepercayaan diri tinggi terhadap hasil ini.

---

#### **Kesimpulan Klinis bagi Penyedia Layanan Kesehatan**
Meskipun rata-rata sampel menunjukkan angka sedikit di atas 130 mmHg (130,2), hasil inferensial menunjukkan bahwa secara keseluruhan populasi masih dianggap **stabil**. 

**Rekomendasi:**
* Tidak diperlukan intervensi medis darurat secara massal.
* Tetap lakukan pemantauan rutin untuk memastikan tidak terjadi pergeseran tren ke arah hipertensi di masa mendatang, mengingat posisi data yang mulai mendekati ambang batas.

### Refleksi Analitis {data-width=1200}

<div style="background-color: #fffaf0; padding: 15px 20px; border: 1px solid #ffeeba; border-radius: 8px; color: #333333; line-height: 1.4;">

#### **Menghubungkan Dua Sudut Pandang Statistik**
Tugas ini menyajikan dua temuan yang sekilas berbeda namun saling melengkapi:
1. **Sisi Statistik Inferensial (Uji Hipotesis):** Hasil **Gagal Tolak $H_0$**. Perbedaan rata-rata sampel ($130,2$) dan target ($130$) belum dianggap cukup besar untuk dinyatakan "Signifikan". Secara hukum statistik, populasi masih dalam batas wajar.
2. **Sisi Estimasi Parameter (Confidence Interval):** Batas atas (*Upper Bound*) mencapai **130,40 mmHg**. Angka ini adalah sinyal peringatan karena secara klinis sudah melampaui ambang batas hipertensi.

---

#### **Analisis Risiko Keputusan (Type I & II Error)**
* Dengan gagal menolak $H_0$, kita berhasil menghindari **Type I Error** (intervensi medis pada populasi yang sebenarnya masih normal).
* Namun, posisi *Upper Bound* yang melewati 130 mmHg memperingatkan potensi **Type II Error** (gagal mendeteksi pergeseran tren kesehatan yang sebenarnya mulai terjadi).



---

#### **Analogi Pengambilan Keputusan**
* **Uji Hipotesis adalah "Hakim":** Memutuskan belum ada bukti "kejahatan" (pergeseran tren) yang cukup kuat untuk menjatuhkan vonis.
* **Confidence Interval adalah "Radar":** Menunjukkan bahwa posisi populasi saat ini berada sangat dekat dengan "wilayah berbahaya".

**Rekomendasi Strategis:**
Kebijakan tepat adalah **meningkatkan program preventif**. Tujuannya agar "Radar" (Confidence Interval) kembali turun di bawah 130 mmHg sebelum "Hakim" (Uji Hipotesis) terpaksa menyatakan populasi benar-benar mengalami hipertensi secara signifikan di masa depan.
</div>

Nonparametric Methods {data-orientation=rows}
=======================================================================

## Column {.tabset .tabset-fade data-height=520}
-----------------------------------------------------------------------

### Case Study

<div style="background-color: #f8f9fa; padding: 12px 15px; border-left: 5px solid #8e44ad; margin-bottom: 15px; color: #333333; line-height: 1.4;">
**Konteks Analisis:** Setelah melihat populasi secara umum, kita perlu memastikan apakah standar **130 mmHg** terpenuhi secara merata pada kelompok **Laki-laki** dan **Perempuan**. Analisis non-parametrik digunakan di sini karena distribusi tekanan darah pada kelompok spesifik seringkali memiliki kemiringan (*skewness*) yang berbeda.
</div>

#### **Tujuan Penelitian**
Menguji apakah terdapat perbedaan signifikan antara **Median** tekanan darah sistolik kelompok Laki-laki dan Perempuan dibandingkan dengan nilai standar kesehatan **130 mmHg**. Hal ini penting untuk mengidentifikasi apakah salah satu kelompok memiliki risiko kesehatan yang lebih tinggi yang mungkin terabaikan jika data digabungkan.

---

#### **Parameter Pengujian & Risiko (Error Analysis)**
* **Hipotesis Kelompok:** $H_0: \tilde{x} = 130$ vs $H_1: \tilde{x} \neq 130$ (di mana $\tilde{x}$ adalah Median).
* **Uji Statistik:** *Wilcoxon Signed-Rank Test* (dilakukan per kategori gender).
* **Tingkat Signifikansi ($\alpha$):** 0,05.
* **Pengendalian Error:** * **Type I Error:** Risiko salah menyimpulkan bahwa suatu gender mengalami hipertensi.
    * **Type II Error:** Risiko gagal mendeteksi bahwa salah satu gender sebenarnya sudah melewati ambang batas 130 mmHg secara signifikan.

---

<div style="background-color: #f4eef8; padding: 10px 15px; border: 1px solid #dcd0ff; border-radius: 5px; font-size: 0.9em; color: #333333; line-height: 1.3;">
**Kenapa Menggunakan Median?**
Dalam analisis non-parametrik, Median lebih representatif daripada Mean karena tidak mudah terpengaruh oleh segelintir responden yang memiliki tekanan darah sangat ekstrem (*outliers*), sehingga memberikan gambaran yang lebih "jujur" tentang kondisi mayoritas kelompok.
</div>

### Perhitungan Non-Parametrik {data-width=1200}

<div style="display: flex; gap: 25px; line-height: 1.2; padding: 10px 25px 5px 25px; font-size: 0.90em; overflow: hidden;">

<div style="flex: 1.1; border-right: 2px solid #eee; padding-right: 20px;">
<h4 style="color: #444; margin: 0 0 8px 0;"><b>1. Kalkulasi Statistik W (V-Statistic)</b></h4>
Nilai $W$ adalah jumlah peringkat dari selisih positif ($d_i > 0$). Kalkulasi didasarkan pada total peringkat maksimal ($n=15.000$):
* **Total Peringkat Maksimal:** <span style="display: inline-block; vertical-align: middle; margin-top: -15px;">$$\frac{n(n+1)}{2} = \frac{15.000 \times 15.001}{2} = 112.507.500$$</span>
* <span style="display: flex; align-items: center; gap: 10px;">**Kalkulasi Laki-laki ($W_{men}$):** <span style="margin-top: -15px;">$$W = \sum R(+) = 58.420.500$$</span></span>
* <span style="display: flex; align-items: center; gap: 10px;">**Kalkulasi Perempuan ($W_{women}$):** <span style="margin-top: -15px;">$$W = \sum R(+) = 42.150.200$$</span></span>

<p style="font-size: 0.85em; background-color: #f9f9f9; padding: 6px; border-radius: 4px; border: 1px solid #eee; margin: 5px 0;">
**Note:** Nilai $W$ didapat dengan mengurutkan seluruh selisih $|x_i - 130|$, memberi rank 1 s/d 15.000, lalu menjumlahkan rank milik data yang memiliki tensi di atas 130 mmHg.
</p>

<h4 style="color: #2e86c1; margin: 10px 0 8px 0;"><b>2. Parameter Teoritis (Expected Value)</b></h4>
* **Mean Teoritis ($\mu_W$):** <span style="display: inline-block; vertical-align: middle; margin-top: -15px;">$$\mu_W = \frac{n(n+1)}{4} = \frac{15.000 \times 15.001}{4} = 56.253.750$$</span>
* **Standard Deviation ($\sigma_W$):** <span style="display: inline-block; vertical-align: middle; margin-top: -15px;">$$\sigma_W = \sqrt{\frac{n(n+1)(2n+1)}{24}} \approx 530.360$$</span>
</div>

<div style="flex: 0.9; padding-left: 15px;">
<h4 style="color: #2e86c1; margin: 0 0 8px 0;"><b>3. Kalkulasi Z-Score Manual</b></h4>
Menggunakan rumus aproksimasi normal untuk sampel besar:
<center><span style="margin-top: -10px; display: block;">$$Z = \frac{W - \mu_W}{\sigma_W}$$</span></center>

**Substitusi Kelompok Laki-laki:**
<center><span style="margin-top: -10px; display: block;">$$Z = \frac{58.420.500 - 56.253.750}{530.360} = \mathbf{+4,085}$$</span></center>

**Substitusi Kelompok Perempuan:**
<center><span style="margin-top: -10px; display: block;">$$Z = \frac{42.150.200 - 56.253.750}{530.360} = \mathbf{-26,59}$$</span></center>

<h4 style="color: #444; margin: 10px 0 8px 0;"><b>4. Verifikasi & Keputusan</b></h4>
* **Laki-laki:** Karena $|Z| > 1,96$ dan $P < 0,05$, maka **Tolak $H_0$**. Median tekanan darah pria terbukti secara statistik berada di atas 130 mmHg.
* **Perempuan:** Meskipun nilai $P$ kecil, arah pergeserannya ke bawah (negatif), sehingga tidak dikategorikan sebagai ancaman hipertensi karena median berada di bawah target 130 mmHg.
</div>

</div>

### Visualisasi Distribusi Tekanan Darah (Non-Parametric Analysis) {data-width=1200}

<div style="padding: 5px 15px; overflow: hidden; line-height: 1.2;">

<h5 style="color: #2e86c1; text-align: center; margin-bottom: 10px;"><b>Analisis Sebaran Tekanan Darah: Laki-laki vs Perempuan</b></h5>

```{r, echo=FALSE, message=FALSE, warning=FALSE, fig.height=3.8}
library(ggplot2)
library(plotly)

# Simulasi data n=15.000
set.seed(123)
df_final <- data.frame(
  Gender = rep(c("Laki-laki", "Perempuan"), each = 7500),
  Tensi = c(rnorm(7500, 134, 12), rnorm(7500, 122, 10))
)

# Plot Density Terpisah dengan anotasi detail
p <- ggplot(df_final, aes(x = Tensi, fill = Gender)) +
  geom_density(alpha = 0.7) +
  # Garis ambang batas
  geom_vline(xintercept = 130, color = "red", linetype = "dashed", size = 0.8) +
  # Label keterangan pada garis merah
  annotate("text", x = 138, y = 0.030, label = "Ambang Batas\n130 mmHg", 
           color = "red", size = 3, fontface = "bold") +
  facet_wrap(~Gender) + 
  scale_fill_manual(values = c("Laki-laki" = "#2e86c1", "Perempuan" = "#e74c3c")) +
  labs(x = "Tekanan Darah (mmHg)", y = "Density") +
  theme_minimal(base_size = 9) +
  theme(
    legend.position = "none",
    strip.background = element_rect(fill = "#f8f9fa"),
    strip.text = element_text(face = "bold"),
    plot.margin = margin(5, 5, 5, 5)
  )

# Konversi ke Plotly dengan tooltip informatif
ggplotly(p) %>% 
  layout(margin = list(t = 30, b = 30)) %>%
  add_annotations(
    x = 130, y = 0.04, text = "Target: 130", showarrow = F, 
    xanchor = "left", font = list(color = "red", size = 10)
  )
```

### Interpretasi {data-width=1200}

<div style="background-color: #f0f7ff; padding: 10px 15px; border-left: 5px solid #2e86c1; margin-bottom: 10px; color: #333333; line-height: 1.4; font-size: 0.9em;">
**Ringkasan Keputusan:** Berdasarkan uji peringkat bertanda *Wilcoxon*, kita menemukan hasil yang kontras. Untuk **Laki-laki**, kita **Tolak Hipotesis Nol ($H_0$)**, sedangkan untuk **Perempuan**, kita **Gagal Menolak $H_0$** dalam konteks risiko hipertensi. Terdapat bukti kuat bahwa median tekanan darah pria secara signifikan telah melampaui standar 130 mmHg.
</div>

<div style="display: flex; gap: 20px; font-size: 0.88em; overflow: hidden;">

<div style="flex: 1; border-right: 1px solid #eee; padding-right: 20px;">
#### **Analisis & Evaluasi Risiko**
1. **Perbandingan Kekuatan ($Z$-Score):** Kelompok Laki-laki menunjukkan nilai **$Z = +4,085$** (melewati batas kritis 1,96), yang berarti tekanan darah mereka benar-benar sudah "bergeser" ke zona merah. Sebaliknya, Perempuan memiliki **$Z = -26,59$**, yang berarti mereka sangat aman di bawah batas tersebut.
2. **Evaluasi Error:** Penggunaan metode non-parametrik ini meminimalisir kesalahan akibat data yang tidak normal atau adanya *outlier* (nilai ekstrem). Kita memiliki tingkat kepastian yang sangat tinggi bahwa perbedaan antar gender ini nyata, bukan sekadar kebetulan.
</div>

<div style="flex: 1; padding-left: 10px;">
#### **Kesimpulan Klinis & Rekomendasi**
Hasil "Mikroskop" statistik ini menunjukkan bahwa masalah kesehatan tidak tersebar rata. Tekanan darah tinggi adalah **masalah spesifik pada kelompok Laki-laki** di populasi ini.

**Rekomendasi Strategis:**
* **Intervensi Tertarget:** Disarankan melakukan program skrining kesehatan dan kampanye gaya hidup sehat yang difokuskan khusus pada Laki-laki.
* **Pemeliharaan (Preventif):** Untuk kelompok Perempuan, cukup dilakukan edukasi rutin karena data menunjukkan kondisi mereka saat ini masih sangat terkendali di bawah ambang batas.
</div>

</div>

### Refleksi Analitis {data-width=1200}

<div style="background-color: #f0f9ff; padding: 12px 20px; border: 1px solid #bae6fd; border-radius: 8px; color: #333; line-height: 1.3; font-size: 0.88em; overflow: hidden;">

<div style="display: flex; gap: 25px;">

<div style="flex: 1; border-right: 1px solid #bae6fd; padding-right: 20px;">
<h4 style="color: #0369a1; margin-top: 0;"><b>Strategi untuk Perempuan: "Menjaga yang Sudah Baik"</b></h4>
Meski hasil tes menunjukkan kelompok perempuan berada di zona aman, bukan berarti mereka diabaikan. Strateginya adalah:
* **Fokus Utama:** Menjaga agar grafik mereka tidak bergeser ke arah bahaya (di atas 130 mmHg).
* **Langkah Nyata:** Memberikan edukasi ringan tentang gaya hidup sehat agar kondisi yang sudah bagus ini tetap terjaga hingga masa depan.
* **Waspada Dini:** Mengingat radar populasi kita menunjukkan angka yang mepet batas (130,40), pemeriksaan rutin tetap perlu dilakukan sebagai langkah antisipasi.
</div>

<div style="flex: 1; padding-left: 10px;">
<h4 style="color: #0369a1; margin-top: 0;"><b>Strategi untuk Laki-laki: "Tindakan Cepat & Tepat"</b></h4>
Berdasarkan data, kelompok laki-laki membutuhkan perhatian lebih besar karena mereka sudah berada di garis risiko:
* **Alasan Utama:** Karena secara statistik mereka sudah melampaui ambang batas 130 mmHg, mereka butuh penanganan yang lebih intensif (bukan sekadar saran biasa).
* **Efektivitas Biaya:** Dengan memprioritaskan bantuan pada mereka yang paling berisiko, kita bisa menurunkan tingkat kesehatan populasi secara keseluruhan dengan lebih efisien.
* **Langkah Nyata:** Disarankan melakukan pemeriksaan kesehatan (medical check-up) yang lebih sering dan perubahan pola hidup yang lebih serius.
</div>

</div>

<div style="margin-top: 10px; padding: 10px; background-color: #e0f2fe; border-left: 5px solid #0369a1; border-radius: 4px;">
<b>Kesimpulan Sederhana:</b> Kita tidak membeda-bedakan, namun kita <b>mengalokasikan tenaga</b> dengan bijak. Kelompok Laki-laki perlu dibantu untuk "turun" ke zona aman, sedangkan kelompok Perempuan perlu dibantu agar "tidak naik" ke zona risiko.
</div>

</div>