library(readxl)
library (dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
data_diabetes = read.csv("C:/Users/MUTHI'AH IFFA/Downloads/Semester 4/AED/diabetes_dataset.csv")
LemakDarah = data_diabetes %>% select(Triglycerides,Outcome)
LemakDarah_diabetes = subset(LemakDarah, Outcome!=0)
# Hitung frekuensi berdasarkan Outcome
frekuensi_lemak_darah <- table(LemakDarah$Outcome)
# Membuat Bar Chart
barplot(frekuensi_lemak_darah,
col = c("red", "blue"),
main = "Bar Chart Kadar Lemak dalam Darah",
xlab = "Status Diabetes",
ylab = "Frekuensi",
names.arg = c("Tidak Diabetes", "Diabetes"),
border = "black")
# Membuat histogram
hist(LemakDarah_diabetes$Triglycerides,
main = "Histogram Kadar Lemak Darah pada Penderita Diabetes",
xlab = "BMI",
ylab = "Frekuensi",
col = "salmon",
border = "black")
# Membuat Boxplot
boxplot(LemakDarah_diabetes$Triglycerides,
main = "Boxplot Kadar Lemak Darah pada Penderita Diabetes",
xlab = "Skor BMI",
horizontal = TRUE,
col = "lightblue",
pars = list(outcol = "red", outpch = 16)) # outcol = warna untuk titik outlier, outpch = bentuk outlier
deteksi pencilan
# Hitung Q1, Q2,Q3, dan IQR
Q1_LemakDarahdiabet = quantile(LemakDarah_diabetes$Triglycerides, 0.25)
Q2_LemakDarahdiabet = quantile(LemakDarah_diabetes$Triglycerides, 0.50)
Q3_LemakDarahdiabet = quantile(LemakDarah_diabetes$Triglycerides, 0.75)
IQR_LemakDarahdiabet <- Q3_LemakDarahdiabet - Q1_LemakDarahdiabet
# Batas bawah dan batas atas
PDB_LemakDarahdiabet = Q1_LemakDarahdiabet - 1.5 * IQR_LemakDarahdiabet
PDA_LemakDarahdiabet = Q3_LemakDarahdiabet + 1.5 * IQR_LemakDarahdiabet
PDA_LemakDarahdiabet
## 75%
## 285.6
PDB_LemakDarahdiabet
## 25%
## 15.2
# Menemukan outlier
outliers = LemakDarah_diabetes$Triglycerides[LemakDarah_diabetes$Triglycerides < PDB_LemakDarahdiabet| LemakDarah_diabetes$Triglycerides > PDA_LemakDarahdiabet]
cat("Outlier:", outliers, "\n")
## Outlier: 304.7 292.4 295.1 294.1 294.5 292.3 293.9 295.2 292.2 321.4 299.5 286.8 294.3
summary(LemakDarah_diabetes$Triglycerides)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 50.0 116.6 150.8 150.6 184.2 321.4
sd_BMI <- sd(LemakDarah_diabetes$Triglycerides)
cat("Standar Deviasi:", sd_BMI, "\n")
## Standar Deviasi: 49.18942
qqnorm(LemakDarah_diabetes$Triglycerides,
main = "QQ-plot Kadar Lemak Darah Penderita Diabetes")
qqline(LemakDarah_diabetes$Triglycerides, col = "green", lwd = 2)
distribusi data amatan kadar lemak darah pada penderita diabetes adalah cenderung mengikuti distribusi normal, karena titik-titik amatan mengikuti garis vertikal hijau
# Hitung frekuensi berdasarkan Outcome
frekuensi_lemak_darah <- table(LemakDarah$Outcome)
# Membuat Bar Chart
barplot(frekuensi_lemak_darah,
col = c("red", "blue"),
main = "Bar Chart Kadar Lemak dalam Darah",
xlab = "Status Diabetes",
ylab = "Frekuensi",
names.arg = c("Tidak Diabetes", "Diabetes"),
border = "black")
# Mengambil kolom
data_LDL = data_diabetes %>% select(LDL, Outcome)
LDL_diabet = subset(data_LDL, Outcome!=0)
hist(LDL_diabet$LDL,
main = "Kadar Kolestrol Jahat pada Penderita Diabetes",
xlab = "Lipoprotein (mg/dL)",
ylab = "Frekuensi",
col = "red",
border = "black")
# Membuat Boxplot
boxplot(LDL_diabet$LDL,
main = "Boxplot Kolestrol Jahat pada Penderita Diabetes",
xlab = "Skor BMI",
horizontal = TRUE,
col = "salmon",
pars = list(outcol = "purple", outpch = 16)) # outcol = warna untuk titik outlier, outpch = bentuk outlier
deteksi outlier
# Hitung Q1, Q2,Q3, dan IQR
Q1_KJdiabet = quantile(LDL_diabet$LDL, 0.25)
Q2_KJdiabet = quantile(LDL_diabet$LDL, 0.50)
Q3_KJdiabet = quantile(LDL_diabet$LDL, 0.75)
IQR_KJdiabet <- Q3_KJdiabet - Q1_KJdiabet
# Batas bawah dan batas atas
PDB_KJdiabet = Q1_KJdiabet - 1.5 * IQR_KJdiabet
PDA_KJdiabet = Q3_KJdiabet + 1.5 * IQR_KJdiabet
PDA_KJdiabet
## 75%
## 182.0375
PDB_KJdiabet
## 25%
## 19.7375
# Menemukan outlier
outliers = LDL_diabet$LDL[LDL_diabet$LDL < PDB_KJdiabet | LDL_diabet$LDL >PDA_KJdiabet]
cat("Outlier:", outliers, "\n")
## Outlier: 185.9 -1.8 2 198.8 -7.4 15.2 17.4 9.7 6.2 3.4 17 17.7 194.7 182.7 2 187.2 17.1 10.7 185.4 202.2
Ringkasan Statistik
summary(LDL_diabet$LDL)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -7.4 80.6 100.8 100.9 121.2 202.2
sd_BMI <- sd(LDL_diabet$LDL)
cat("Standar Deviasi:", sd_BMI, "\n")
## Standar Deviasi: 29.79028
qqnorm(LDL_diabet$LDL,
main = "QQ-plot BMI Penderita Diabetes")
qqline(LDL_diabet$LDL, col = "red", lwd = 2)
data kolestrol jahat pada penderita diabetes mengikuti distribusi normal
library(dplyr)
usia_status = data_diabetes %>% select(Age,Outcome)
# Hapus kolom yang mengandung nilai tertentu (contoh: 0)
usia_diabetes = subset(usia_status, Outcome != 0)
hist(usia_diabetes$Age,
main = "Histogram Usia Penderita Diabetes",
xlab = "Usia",
col = "skyblue",
border = "black",
ylim = c(0, 800), # Rentang sumbu y
axes = FALSE) # Matikan sumbu bawaan
axis(1) # Tambahkan sumbu x default
axis(2, at = seq(0, 800, by = 100)) # Tambahkan tick marks sumbu y setiap 100
box() # Tambahkan bingkai di sekitar histogram
korelasi antara usia dan diabetes
cor(data_diabetes$Age, data_diabetes$Out)
## [1] 0.06845279
hasil menunjukkan nilai korelasi antara usia dan penyakit diabetes adalah 0.06845279, hal ini dapat dikatakan bahwa hubungan linier antara usia dan penyakit diabetes sangat lemah
qqnorm(usia_status$Age)
qqline(usia_status$Age, col = "orange", lwd = 2)
boxplot(Age ~ Outcome, data = usia_status, col = c("blue", "red"), xaxt = "n", main = "Usia Status Diabetes")
axis(1, at = 1:2, labels = c("Tidak Diabetes", "Diabetes"))
keturunan_status = data_diabetes %>% select(FamilyHistory,Outcome)
keturunan_diabetes = subset(keturunan_status, Outcome != 0)
# Menghitung frekuensi berdasarkan FamilyHistory
frekuensi_keturunan = table(keturunan_diabetes$FamilyHistory)
# Membuat bar chart
barplot(frekuensi_keturunan,
col = c("orange", "blue"), # Sesuaikan warna sesuai kebutuhan
main = "Bar Chart Penderita Diabetes dari Riwayat Keluarga",
xlab = "Riwayat Keluarga", # Label sumbu x
ylab = "Frekuensi",
names.arg = c("Bukan Riwayat", "Riwayat"), # Nama pada sumbu x
border = "black",
ylim = c(0, 3500),
yaxt = "n")
# Menambahkan sumbu y dengan lebih banyak angka
axis(2, at = seq(0, 3500, by = 1000), labels = seq(0, 3500, by = 1000))
Eksplorasi data skor BMI penderita diabetes
BMI_status = data_diabetes %>% select(BMI,Outcome)
BMI_diabetes = subset(BMI_status, Outcome != 0)
# Membuat histogram untuk kolom BMI
hist(BMI_diabetes$BMI,
main = "Histogram BMI Penderita Diabetes",
xlab = "BMI",
ylab = "Frekuensi",
col = "brown",
border = "black")
qqnorm(BMI_diabetes$BMI,
main = "QQ-plot BMI Penderita Diabetes")
qqline(BMI_diabetes$BMI, col = "yellow", lwd = 2)
data cenderung mengikuti sebaran normal karena titik-titik amatan mengikuti garis kuning
# Membuat Boxplot
boxplot(BMI_diabetes$BMI,
main = "Boxplot BMI Penderita Diabetes",
xlab = "Skor BMI",
horizontal = TRUE,
pars = list(outcol = "brown", outpch = 16)) # outcol = warna untuk titik outlier, outpch = bentuk outlier
deteksi outlier
# Hitung Q1, Q2,Q3, dan IQR
Q1_BMIdiabet = quantile(BMI_diabetes$BMI, 0.25)
Q2_BMIdiabet = quantile(BMI_diabetes$BMI, 0.50)
Q3_BMIdiabet = quantile(BMI_diabetes$BMI, 0.75)
IQR_BMIdiababet <- Q3_BMIdiabet - Q1_BMIdiabet
# Batas bawah dan batas atas
PDB_BMIdiabet = Q1_BMIdiabet - 1.5 * IQR_BMIdiababet
PDA_BMIdiabet = Q3_BMIdiabet + 1.5 * IQR_BMIdiababet
PDA_BMIdiabet
## 75%
## 44.40875
PDB_BMIdiabet
## 25%
## 11.43875
# Menemukan outlier
outliers = BMI_diabetes$BMI[BMI_diabetes$BMI < PDB_BMIdiabet| BMI_diabetes$BMI > PDA_BMIdiabet]
cat("Outlier:", outliers, "\n")
## Outlier: 46.66 44.92 47.39 45.9 44.5 45.52 45.41 44.56 44.42 46.81 47.94 47.31 49.66 48.08 44.7
rata-rata skor BMI penderita diabetes adalah 27.93007, di mana skor ini sudah termasuk kategori overweight.
Ringkasan Statistik
summary(BMI_diabetes$BMI)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 15.00 23.80 27.89 27.93 32.05 49.66
sd_BMI <- sd(BMI_diabetes$BMI)
cat("Standar Deviasi:", sd_BMI, "\n")
## Standar Deviasi: 6.159695
BMI_tensi = data_diabetes %>% select(BMI,Hypertension)
BMI_tensi2 = subset(BMI_tensi, Hypertension != 0)
diabetes_jenismakanan = data_diabetes %>% select(Outcome,DietType)
diabetes_jenismakanan2 = diabetes_jenismakanan %>% filter(Outcome == 1)
frekuensi_diettype = table(diabetes_jenismakanan2$DietType)
barplot(frekuensi_diettype,
col = c("red", "blue", "green"), # Tiga warna berbeda
main = "Bar Chart Pola Makanan Penderita Diabetes",
xlab = "Pola Makan",
ylab = "Frekuensi",
border = "black",
names.arg = c("Tidak Seimbang", "Seimbang", "Vegetarian"),
ylim = c(0, 2000)) # Skala pada sumbu Y
gula_darah = data_diabetes %>% select(Glucose,Outcome)
gula_diabetes =subset(gula_darah, Outcome != 0)
hist(gula_diabetes$Glucose,
main = "Histogram Kadar Gula Darah Penderita Diabetes",
xlab = "Kadar Gula Darah (mg/dL)",
ylab = "Frekuensi",
col = "yellow",
border = "black")
boxplot(gula_diabetes$Glucose,
main = "Boxplot Kadar Gula Darah Penderita Diabetes",
xlab = "Kadar Gula Darah (mg/dL)",
horizontal = TRUE,
col = "green",
pars = list(outcol = "blue", outpch = 16)) # outcol = warna untuk titik outlier, outpch = bentuk outlier
Deteksi Pencilan
# Hitung Q1, Q2,Q3, dan IQR
Q1_guladiabet = quantile(gula_diabetes$Glucose, 0.25)
Q2_guladiabet = quantile(gula_diabetes$Glucose, 0.50)
Q3_guladiabet = quantile(gula_diabetes$Glucose, 0.75)
IQR_guladiabet <- Q3_guladiabet - Q1_guladiabet
# Batas bawah dan batas atas
PDB_guladiabet = Q1_guladiabet - 1.5 * IQR_guladiabet
PDA_guladiabet = Q3_guladiabet + 1.5 * IQR_guladiabet
PDA_guladiabet
## 75%
## 182.8
PDB_guladiabet
## 25%
## 39.6
# Menemukan outlier
outliers = gula_diabetes$Glucose[gula_diabetes$Glucose < PDB_guladiabet| gula_diabetes$Glucose > PDA_guladiabet]
cat("Outlier:", outliers, "\n")
## Outlier: 194.4 189.6 207.2 189.1
Ringkasan statistik
summary(gula_diabetes$Glucose)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 50.0 93.3 109.5 111.2 129.1 207.2
sd_BMI <- sd(gula_diabetes$Glucose)
cat("Standar Deviasi:", sd_BMI, "\n")
## Standar Deviasi: 25.1673
tensi = data_diabetes %>% select(BloodPressure,Outcome)
tensi_diabetes =subset(tensi, Outcome != 0)
deteksi outlier
tensidiabet = sort(tensi_diabetes$BloodPressure) # Mengurutkan jumlah data
n_tensidiabet = length(tensi_diabetes$BloodPressure) # Hitung jumlah data
hist(tensi_diabetes$BloodPressure,
main = "Histogram Tensi Darah Penderita Diabetes",
xlab = "Tekanan Darah (mmHG)",
ylab = "Frekuensi",
col = "red",
border = "black")
# Membuat Boxplot
boxplot(tensi_diabetes$BloodPressure,
main = "Boxplot Tensi Penderita Diabetes",
xlab = "Tensi (mmHG)",
horizontal = TRUE,
pars = list(outcol = "red", outpch = 16)) # outcol = warna untuk titik outlier, outpch = bentuk outlier
# Hitung Q1, Q2,Q3, dan IQR
Q1_tensidiabet = quantile(tensi_diabetes$BloodPressure, 0.25)
Q2_tensidiabet = quantile(tensi_diabetes$BloodPressure, 0.50)
Q3_tensidiabet = quantile(tensi_diabetes$BloodPressure, 0.75)
IQR_tensidiabet <- Q3_tensidiabet - Q1_tensidiabet
# Batas bawah dan batas atas
PDB_tensidiabet = Q1_tensidiabet - 1.5 * IQR_tensidiabet
PDA_tensidiabet = Q3_tensidiabet + 1.5 * IQR_tensidiabet
PDA_tensidiabet
## 75%
## 126
PDB_tensidiabet
## 25%
## 46
# Menemukan outlier
outliers = tensi_diabetes$BloodPressure[tensi_diabetes$BloodPressure < PDB_tensidiabet| tensi_diabetes$BloodPressure > PDA_tensidiabet]
cat("Outlier:", outliers, "\n")
## Outlier: 128 132 137 135 130 129 130 131 133 129 127 128 127 129 127
Ringkasan Statistik
summary(tensi_diabetes$BloodPressure)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 60.00 76.00 86.00 86.35 96.00 137.00
sd_BMI <- sd(tensi_diabetes$BloodPressure)
cat("Standar Deviasi:", sd_BMI, "\n")
## Standar Deviasi: 14.72523
# Buat dataset menjadi matriks
data_matrix = data.frame(Kadar_Gula = gula_diabetes$Glucose,
Tensi_darah = tensi_diabetes$BloodPressure)
korelasi_gula_tensi = cor(data_matrix, use = "complete.obs")
korelasi_gula_tensi
## Kadar_Gula Tensi_darah
## Kadar_Gula 1.0000000 0.5801538
## Tensi_darah 0.5801538 1.0000000
library(corrplot)
## corrplot 0.95 loaded
corrplot(korelasi_gula_tensi, method = "number")
hasil korelasi antara āTensi_Darahā dan āKadar_Gulaā pada Penderita Diabetes menghasilkan nilai korelasi sebesar 0.58. Artinya peningkatan kadar gula cenderung diikuti oleh peningkatan tekanan darah. Namun kekuatan korelasi ini tidak terlalu kuat sehingga mungkin ada faktor lain yang juga memengaruhi hubungan ini.
# Membuat scatterplot antara Kadar Gula dan Tekanan Darah
plot(gula_diabetes$Glucose, tensi_diabetes$BloodPressure,
main = "Gula Darah dan Tekanan Darah",
xlab = "Gula Darah",
ylab = "Tekanan Darah",
col = "blue", # Warna titik
pch = 16) # Jenis titik penuh
# Buat dataset menjadi matriks
data_matrix = data.frame(Kadar_Gula = gula_diabetes$Glucose,
Kolestrol_Jahat = LDL_diabet$LDL)
korelasi_gula_kolestrol = cor(data_matrix, use = "complete.obs")
korelasi_gula_kolestrol
## Kadar_Gula Kolestrol_Jahat
## Kadar_Gula 1.000000000 0.007989422
## Kolestrol_Jahat 0.007989422 1.000000000
library(corrplot)
corrplot(korelasi_gula_kolestrol, method = "number")
hasil korelasi antara āKoresorl_Jahatā dan āKadar_Gulaā pada Penderita Diabetes menghasilkan nilai korelasi sebesar 0.079 Artinya hubungan keduanya cenderung lemah bahkan mungkin tidak ada hubungan linier yang signifikan.
# Membuat scatterplot antara Kolestrol Jahat dan Gula Darah
plot(gula_diabetes$Glucose, LDL_diabet$LDL,
main = "Gula Darah dan Tekanan Darah pada Penderita Diabetes",
xlab = "Gula Darah",
ylab = "Kolestrol Jahat",
col = "green", # Warna titik
pch = 16) # Jenis titik penuh
# Buat dataset menjadi matriks
data_matrix = data.frame(Kadar_LemakDarah = LemakDarah_diabetes$Triglycerides,
Kolestrol_Jahat = LDL_diabet$LDL)
korelasi_lemak_kolestrol = cor(data_matrix, use = "complete.obs")
korelasi_lemak_kolestrol
## Kadar_LemakDarah Kolestrol_Jahat
## Kadar_LemakDarah 1.00000000 0.03887577
## Kolestrol_Jahat 0.03887577 1.00000000
library(corrplot)
corrplot(korelasi_lemak_kolestrol, method = "number")
hasil korelasi antara āKorestrol_Jahatā dan āKadar_LemakDarahā pada Penderita Diabetes menghasilkan nilai korelasi sebesar 0.038 Artinya hubungan keduanya cenderung lemah bahkan mungkin tidak ada hubungan linier yang signifikan.
# Membuat scatterplot antara Kadar Lemak Darah dan Kolestrol Jahat
plot(LemakDarah_diabetes$Triglycerides, LDL_diabet$LDL,
main = "Lemak Darah dan Kolestrol Jahat Darah pada Penderita Diabetes",
xlab = "Lemak Darah",
ylab = "Kolestrol Jahat",
col = "red", # Warna titik
pch = 16) # Jenis titik penuh
# Buat dataset menjadi matriks
data_matrix = data.frame(Kadar_LemakDarah = LemakDarah_diabetes$Triglycerides,
Kadar_Gula = gula_diabetes$Glucose)
korelasi_gula_lemak = cor(data_matrix, use = "complete.obs")
korelasi_gula_lemak
## Kadar_LemakDarah Kadar_Gula
## Kadar_LemakDarah 1.000000000 -0.001442213
## Kadar_Gula -0.001442213 1.000000000
library(corrplot)
corrplot(korelasi_gula_lemak, method = "number")
# Membuat scatterplot antara Kadar Lemak Darah dan Gula Darah
plot(LemakDarah_diabetes$Triglycerides, gula_diabetes$Glucose,
main = "Lemak Darah dan Gula Darah pada Penderita Diabetes",
xlab = "Lemak Darah",
ylab = "Kolestrol Jahat",
col = "brown", # Warna titik
pch = 16) # Jenis titik penuh
data_matrix = data.frame(Tensi_darah = tensi_diabetes$BloodPressure,
Kolestrol_Jahat = LDL_diabet$LDL)
korelasi_tensi_kolestrol = cor(data_matrix, use = "complete.obs")
korelasi_tensi_kolestrol
## Tensi_darah Kolestrol_Jahat
## Tensi_darah 1.000000000 -0.009090662
## Kolestrol_Jahat -0.009090662 1.000000000
library(corrplot)
corrplot(korelasi_tensi_kolestrol, method = "number")
# Membuat scatterplot antara Kadar Lemak Darah dan Kolestrol Jahat
plot(LemakDarah_diabetes$Triglycerides, LDL_diabet$LDL,
main = "Lemak Darah dan Kolestrol Jahat pada Penderita Diabetes",
xlab = "Lemak Darah",
ylab = "Kolestrol Jahat",
col = "salmon", # Warna titik
pch = 16) # Jenis titik penuh