library(ggplot2)
library(readxl)
library(ggthemes)
library(gridExtra)
setwd("C:/Users/ameli/OneDrive/Documents")
data <- read_excel("data_selectedLargeStateConstituenciesInMixed-ethnicStateDominatedBy_malaysia.xlsx")
head(data)
## # A tibble: 6 × 6
## State `Large Ranking` Constituency Electorate `Exceed State Average(%)`
## <chr> <dbl> <chr> <dbl> <dbl>
## 1 Kedah 1 Lunas 50336 0.581
## 2 Kedah 2 Bukit Selambau 48367 0.519
## 3 Kedah 3 Jitra 41267 0.296
## 4 Kedah 4 Tanjung Dawai 39415 0.238
## 5 Perak 1 Manjoi 57817 1.26
## 6 Perak 2 Hulu Kinta 49946 0.95
## # ℹ 1 more variable: `Malay Percentage` <dbl>
Grafik pie menunjukkan proporsi pemilih di setiap negara bagian terhadap total pemilih dalam dataset. Setiap slice mewakili satu negara bagian, dan ukurannya mencerminkan persentase pemilih di negara bagian tersebut.
Secara visual, kita dapat dengan cepat melihat negara bagian mana yang memiliki proporsi pemilih terbesar dan terkecil dalam sampel data ini.
data$percentage <- (data$Electorate / sum(data$Electorate)) * 100
pie_chart <- ggplot(data, aes(x = "", y = Electorate, fill = State)) +
geom_bar(stat = "identity", width = 1) +
coord_polar("y", start = 0) +
theme_void() +
labs(title = "Proportion of electorate in each state", fill = "State") +
geom_text(aes(label = paste0(round(percentage, 1), "%")),
position = position_stack(vjust = 0.5), size = 4, color = "white")
pie_chart
Jika data ini dianggap sebagai sampel representatif dari seluruh negara
bagian di Malaysia, kita dapat menggunakannya untuk memperkirakan
proporsi pemilih di setiap negara bagian pada populasi yang lebih besar.
Interval kepercayaan (walaupun tidak dihitung di sini) dapat digunakan
untuk memberikan rentang nilai yang mungkin untuk proporsi populasi yang
sebenarnya.
Grafik batang ini menampilkan jumlah pemilih di setiap daerah pemilihan.
Sumbu x menunjukkan nama daerah pemilihan, yang diurutkan berdasarkan jumlah pemilih. Sumbu y menunjukkan jumlah pemilih.
Warna batang menunjukkan negara bagian tempat daerah pemilihan tersebut berada.
bar_chart <- ggplot(data, aes(x = reorder(Constituency, Electorate), y = Electorate, fill = as.factor (`Large Ranking`))) +
geom_bar(stat = "identity") +
theme_minimal() +
labs(title = "Number of Electors per Electoral District",
x = "Constituency",
y = "Electorate",
fill = "Large Ranking") +
theme(axis.text.x = element_text(angle = 90, hjust = 1))
bar_chart
Kita dapat membandingkan rata-rata jumlah pemilih antar daerah pemilihan
atau antar negara bagian. Uji hipotesis (misalnya, uji t atau ANOVA)
dapat digunakan untuk menentukan apakah perbedaan yang terlihat
signifikan secara statistik, yang memungkinkan kita untuk membuat
kesimpulan tentang perbedaan populasi.
Dot plot ini menunjukkan distribusi jumlah pemilih di setiap negara bagian.
Setiap titik mewakili satu daerah pemilihan, dengan posisi horizontalnya menunjukkan jumlah pemilih dan posisi vertikalnya menunjukkan negara bagian.
Grafik ini membantu melihat bagaimana jumlah pemilih tersebar di berbagai negara bagian dalam sampel ini.
dot_plot <- ggplot(data, aes(x = `Electorate`, y = `State`)) +
geom_point(color = "red", size = 2) +
theme_minimal() +
labs(title = "Dot Plot: Electorate Distribution", x = "Number of Voters", y = "State")
dot_plot
Dot plot memberikan gambaran visual tentang distribusi pemilih di setiap
negara bagian. Dengan teknik statistik yang lebih lanjut, kita bisa
menguji apakah distribusi ini berbeda secara signifikan antar negara
bagian pada populasi yang lebih besar.
Stem and leaf plot menampilkan distribusi data secara ringkas, menunjukkan nilai-nilai individual dan frekuensinya. Bagian “stem” mewakili digit paling signifikan, dan “leaf” mewakili digit berikutnya.
stem(data$Electorate)
##
## The decimal point is 4 digit(s) to the right of the |
##
## 2 | 22
## 3 | 26899
## 4 | 128
## 5 | 008
## 6 | 37
Stem and leaf plot memberikan visualisasi sederhana dari distribusi data. Tidak secara langsung digunakan untuk inferensi, tetapi dapat membantu mengidentifikasi potensi outlier atau skewness yang dapat mempengaruhi pilihan uji statistik
Histogram ini menampilkan distribusi frekuensi jumlah pemilih.
Sumbu x menunjukkan jumlah pemilih, dan sumbu y menunjukkan frekuensi (jumlah daerah pemilihan) yang memiliki jumlah pemilih dalam rentang tersebut.
histogram <- ggplot(data, aes(x = Electorate)) +
geom_histogram(bins = 30, fill = "pink", color = "black", alpha = 0.7) +
theme_minimal() +
labs(title = "Distribution of Electorate", x = "Electorate", y = "Frequency")
histogram
Histogram membantu menilai apakah data terdistribusi normal. Jika data
mendekati normal, kita dapat menggunakan uji statistik parametrik
seperti uji t. Jika tidak, kita mungkin perlu menggunakan uji
non-parametrik. Ini penting untuk memilih uji statistik yang tepat untuk
inferensi.
Boxplot ini membandingkan distribusi jumlah pemilih di setiap negara bagian.
Setiap boxplot menunjukkan median (garis tengah kotak), kuartil pertama (Q1, batas bawah kotak), kuartil ketiga (Q3, batas atas kotak), dan outlier (titik-titik di luar “whisker”).
boxplot_data <- ggplot(data, aes(x = `State`, y = `Electorate`, fill = `State`)) +
geom_boxplot(alpha = 0.6) +
theme_minimal() +
labs(title = "Boxplot: Number of Voters by State", x = "State", y = "Electorate")
boxplot_data
Boxplot memungkinkan kita membandingkan distribusi jumlah pemilih antar
negara bagian. Uji ANOVA dapat digunakan untuk menentukan apakah
terdapat perbedaan signifikan dalam rata-rata jumlah pemilih antar
negara bagian. Atau, kita bisa melakukan uji non-parametrik seperti
Kruskal-Wallis jika asumsi normalitas tidak terpenuhi.
Density plot ini menunjukkan distribusi persentase pemilih Melayu di berbagai daerah pemilihan. * Grafik ini memberikan gambaran tentang bagaimana persentase pemilih Melayu tersebar, apakah terkonsentrasi di sekitar nilai tertentu atau lebih merata.
density_plot <- ggplot(data, aes (x = `Malay Percentage`)) +
geom_density(fill = "blue", alpha = 0.5) +
theme_minimal() +
labs(title = "Density Plot: Percentage of Malaysian Voters", x = "Malay Percentage", y = "Density")
density_plot
Kita dapat menggunakan density plot untuk memvisualisasikan distribusi
persentase pemilih Melayu. Uji Kolmogorov-Smirnov dapat digunakan untuk
membandingkan distribusi ini dengan distribusi teoritis atau dengan
distribusi di daerah pemilihan lain, untuk melihat apakah ada perbedaan
signifikan dalam pola distribusi.
grid.arrange(pie_chart, bar_chart, dot_plot, histogram, boxplot_data, density_plot, ncol = 2)
Mean menunjukkan nilai rata-rata dari setiap variabel. Rata-rata jumlah pemilih per daerah pemilihan menunjukkan gambaran umum tingkat kepadatan pemilih di berbagai daerah.
mean(data$`Large Ranking`)
## [1] 2.466667
mean(data$Electorate)
## [1] 43346.13
mean(data$`Exceed State Average(%)`)
## [1] 0.7251333
mean(data$`Malay Percentage`)
## [1] 0.6962667
Rata-rata persentase pemilih Melayu menggambarkan distribusi populasi Melayu di daerah pemilihan yang diamati. Semakin tinggi nilai rata-rata, semakin besar proporsi pemilih dalam kategori tersebut.
Median menunjukkan nilai tengah setelah data diurutkan. Jika median jumlah pemilih berada pada nilai tertentu, itu berarti setengah dari daerah pemilihan memiliki jumlah pemilih di bawah angka ini, sementara setengah lainnya memiliki jumlah pemilih di atasnya.
median(data$`Large Ranking`)
## [1] 2
median(data$Electorate)
## [1] 41267
median(data$`Exceed State Average(%)`)
## [1] 0.656
median(data$`Malay Percentage`)
## [1] 0.737
Begitu juga dengan median persentase pemilih Melayu, yang menunjukkan titik tengah dalam distribusi proporsi pemilih Melayu di berbagai daerah.
Modus adalah nilai yang paling sering muncul dalam dataset. Jika modus dari persentase pemilih Melayu menunjukkan angka tertentu, itu berarti sebagian besar daerah pemilihan memiliki persentase pemilih Melayu sekitar angka tersebut.
modus <- function(x){
uniqx <- unique(x)
uniqx[which.max(tabulate(match(x, uniqx)))]
}
modus(data$`Large Ranking`)
## [1] 1
modus(data$Electorate)
## [1] 50336
modus(data$`Exceed State Average(%)`)
## [1] 0.581
modus(data$`Malay Percentage`)
## [1] 0.48
Kita dapat menggunakan modus untuk melihat pola yang paling dominan dalam jumlah pemilih di daerah-daerah tertentu.
Kuartil membagi data menjadi empat bagian untuk memberikan wawasan lebih dalam mengenai distribusi data. Kuartil pertama (Q1) menunjukkan batas 25% data terendah, kuartil kedua (Q2) sama dengan median, dan kuartil ketiga (Q3) menunjukkan batas 75% data. Berikut Q1, Q2, dan Q3 dari dataset pemilih Melayu.
quantile(data$`Large Ranking`)
## 0% 25% 50% 75% 100%
## 1.0 1.5 2.0 3.0 5.0
quantile(data$Electorate)
## 0% 25% 50% 75% 100%
## 22146 37350 41267 50141 67371
quantile(data$`Exceed State Average(%)`)
## 0% 25% 50% 75% 100%
## 0.2380 0.4205 0.6560 0.9680 1.2580
quantile(data$`Malay Percentage`)
## 0% 25% 50% 75% 100%
## 0.480 0.577 0.737 0.778 0.925
Jika Q1 dari jumlah pemilih rendah, maka banyak daerah pemilihan memiliki jumlah pemilih yang relatif kecil. Q1 dari persentase pemilih Melayu menunjukkan ambang batas di mana 25% daerah memiliki proporsi pemilih Melayu yang lebih rendah dari angka ini. Q2 dari persentase ini memiliki 50% daerah proporsi pemilih Melayu yang lebih rendah dan 50% lebih tinggi. Q2 dapat kita sebut juga sebagi median. Q3 dari persentase ini, 75% daerah memiliki proporsi pemilih Melayu yang lebih rendah dari angka ini, dan 25% sisanya memiliki proporsi pemilih Melayu yang lebih tinggi.
Range adalah selisih antara nilai maksimum dan minimum dalam dataset. Range yang besar menunjukkan adanya perbedaan yang signifikan antar daerah dalam jumlah pemilih atau persentase pemilih Melayu. Jika range jumlah pemilih tinggi, berarti ada daerah dengan jumlah pemilih yang sangat kecil dan ada yang sangat besar.
range(data$`Large Ranking`)
## [1] 1 5
range(data$Electorate)
## [1] 22146 67371
range(data$`Exceed State Average(%)`)
## [1] 0.238 1.258
range(data$`Malay Percentage`)
## [1] 0.480 0.925
Berdasarkan data, range di atas merupakan persentase pemilih Melayu menggambarkan variasi proporsi pemilih Melayu di berbagai daerah.
Varians menunjukkan seberapa tersebar data dari nilai rata-rata. Semakin besar varians, semakin beragam nilai dalam dataset. Jika varians jumlah pemilih tinggi, itu menunjukkan bahwa jumlah pemilih antar daerah sangat bervariasi.
var(data$`Large Ranking`)
## [1] 1.552381
var(data$Electorate)
## [1] 173182670
var(data$`Exceed State Average(%)`)
## [1] 0.1162621
var(data$`Malay Percentage`)
## [1] 0.0185455
Varians dalam persentase pemilih Melayu di atas menunjukkan tingkat penyebaran proporsi pemilih Melayu di seluruh daerah pemilihan.
Standar deviasi mengukur seberapa jauh data tersebar dari nilai rata-rata. Semakin besar standar deviasi, semakin tinggi tingkat variasi dalam data. Jika standar deviasi jumlah pemilih tinggi, berarti terdapat perbedaan besar dalam jumlah pemilih antar daerah. Berikut standar deviasi dari persentasi pemilih Melayu.
sd(data$`Large Ranking`)
## [1] 1.245946
sd(data$Electorate)
## [1] 13159.89
sd(data$`Exceed State Average(%)`)
## [1] 0.3409723
sd(data$`Malay Percentage`)
## [1] 0.1361818
Standar deviasi persentase pemilih Melayu tersebut menunjukkan bagaimana proporsi pemilih Melayu tersebar di berbagai daerah pemilihan, apakah nilai-nilainya cenderung mendekati rata-rata atau sangat bervariasi.