xr <- range(USmelanoma$mortality) * c(0.9, 1.1)
xr
## [1] 77.4 251.9
layout(matrix(1:2, nrow = 2))
par(mar = par("mar") * c(0.8, 1, 1, 1))
boxplot(USmelanoma$mortality, ylim = xr, horizontal = TRUE,
xlab = "Mortality")
hist(USmelanoma$mortality, xlim = xr, xlab = "", main = "",
axes = FALSE, ylab = "")
##### Analisis Distribusi Kematian Melanoma ###### Membandingkan Tingkat
Kematian Berdasarkan Kontiguitas dengan Laut Setelah menganalisis
distribusi umum, langkah selanjutnya adalah membandingkan tingkat
kematian antara negara bagian yang berbatasan dengan laut dan yang
tidak. Kita bisa menggunakan boxplot untuk tujuan ini. Berikut adalah
kode yang digunakan:
plot(mortality ~ ocean, data = USmelanoma,
xlab = "Kontiguitas dengan Laut", ylab = "Kematian")
##### Visualisasi Distribusi Kematian Melanoma Berdasarkan Kontiguitas
dengan Laut ###### Untuk menganalisis bagaimana tingkat kematian akibat
melanoma bervariasi antara negara bagian yang berbatasan dengan laut dan
yang tidak, kita dapat menggunakan boxplot dan estimasi densitas. 1.
Boxplot Dengan menggunakan fungsi boxplot, kita dapat dengan mudah
membandingkan distribusi tingkat kematian berdasarkan variabel
kategorikal (kontiguitas dengan laut):
plot(mortality ~ ocean, data = USmelanoma,
xlab = "Kontiguitas dengan Laut", ylab = "Kematian")
2. Estimasi Densitas Sementara histogram sering digunakan untuk
menampilkan distribusi variabel, mereka dapat menyesatkan karena
tergantung pada jumlah kelas yang dipilih. Sebagai alternatif, kita
dapat mengestimasi fungsi densitas variabel dan memplot hasilnya.
Berikut adalah cara untuk melakukannya dalam R: Menghitung estimasi
densitas untuk negara bagian pesisir dan non-pesisir
dyes <- with(USmelanoma, density(mortality[ocean == "yes"]))
dno <- with(USmelanoma, density(mortality[ocean == "no"]))
Memplot hasil estimasi densitas
plot(dyes, lty = 1, xlim = xr, main = "", ylim = c(0, 0.018))
##### Analisis Hubungan Antara Tingkat Kematian dan Lokasi Geografis
###### Selanjutnya, kita akan mengeksplorasi bagaimana tingkat kematian
akibat melanoma berkaitan dengan lokasi geografis negara bagian, yang
diwakili oleh lintang (latitude) dan bujur (longitude) pusat negara
bagian. Scatterplot adalah alat utama yang akan digunakan untuk analisis
ini. Membagi perangkat plotting menjadi dua kolom
par(mar = c(4, 4, 2, 1)) #Bottom, Left, Top, Right margin
layout(matrix(1:2, ncol = 2))
Scatterplot tingkat kematian vs bujur
plot(mortality ~ longitude, data = USmelanoma)
Scatterplot tingkat kematian vs lintang
plot(mortality ~ latitude, data = USmelanoma)
Membuat scatterplot tingkat kematian terhadap lintang
plot(mortality ~ latitude, data = USmelanoma,
pch = as.integer(USmelanoma$ocean), # Simbol berbeda untuk negara daratan dan pesisir
xlab = "Lintang", ylab = "Kematian", main = "Kematian vs Lintang")
##### Analisis Mortality dan Lintang
subset(USmelanoma, latitude < 32)
## mortality latitude longitude ocean
## Florida 197 28.0 82.0 yes
## Louisiana 190 31.2 91.8 yes
## Texas 229 31.5 98.0 yes
Florida: 197 kematian Louisiana: 190 kematian Texas: 229 kematian ###### Visualisasi Variabel Kategorikal Setelah fokus pada visualisasi variabel kontinu, kita beralih ke visualisasi variabel kategorikal. Contoh yang diberikan adalah membuat barplot untuk variabel kebahagiaan (R_happy) dari dataset Chinese Health and Family Life Survey (CHFLS). dan ada pilihan code ke2
par(mar = c(4, 4, 2, 1)) # Atur margin bawah, kiri, atas, kanan
barplot(xtabs(~ R_happy, data = CHFLS),
main = "Distribusi Kebahagiaan",
xlab = "Kebahagiaan",
ylab = "Frekuensi",
col = "lightblue")
#### 2.3.2 Chinese Health and Family Life ##### Untuk visualisasi dua
variabel kategori, dapat digunakan diagram batang kondisional, yaitu
diagram batang dari variabel pertama dalam kategori variabel kedua.
Sebagai alternatif yang menarik untuk menampilkan tabel dua arah,
digunakan spineplots. ##### Sebelum membuat spineplot, kita dapat
memproduksi tabel dua arah yang menunjukkan hubungan antara status
kesehatan dan kebahagiaan yang dilaporkan sendiri dengan menggunakan
fungsi xtabs.
plot(R_happy ~ R_health, data = CHFLS)
xtabs(~ R_happy + R_health, data = CHFLS)
## R_health
## R_happy Poor Not good Fair Good Excellent
## Very unhappy 2 7 4 1 0
## Not too happy 4 46 67 42 26
## Somewhat happy 3 77 350 459 166
## Very happy 1 9 40 80 150
layout(matrix(1:2, ncol = 2))
plot(R_happy ~ log(R_income + 1), data = CHFLS)
cdplot(R_happy ~ log(R_income + 1), data = CHFLS)
###### Dari analisis ini, beberapa pola menarik teridentifikasi.
Beberapa pengamatan berada pada garis lurus dengan kemiringan satu, yang
kemungkinan merupakan artefak dari imputasi nilai yang hilang
menggunakan model linear. Ada empat pola yang dapat dikenali: baik kedua
pasangan tidak memiliki pendapatan, pasangan tidak memiliki pendapatan,
wanita tidak memiliki pendapatan, atau keduanya memiliki pendapatan
positif. ###### Dalam analisis pasangan di mana wanita memiliki gelar
universitas, pendapatan kedua pasangan umumnya tinggi, kecuali pada dua
pasangan di mana hanya wanita yang memiliki pendapatan. Sedikit pasangan
mantan mahasiswa junior college memiliki situasi di mana hanya pria yang
memiliki pendapatan, dan untuk pasangan lainnya, pendapatan keduanya
hanya berkorelasi positif sedikit. ###### Pada tingkat pendidikan yang
lebih rendah, semua empat pola hubungan teridentifikasi. Frekuensi
pasangan di mana hanya pria yang memiliki pendapatan lebih besar
dibandingkan sebaliknya. Dengan mengabaikan pengamatan pada garis lurus,
tidak ada hampir tidak ada asosiasi antara pendapatan kedua pasangan.
###### Kesimpulannya, pendidikan wanita berperan penting dalam
menentukan pendapatan pasangan, tetapi untuk tingkat pendidikan yang
lebih rendah, pola hubungan pendapatan menjadi lebih bervariasi dan
kurang teratur.
####Membuat grafik berkualitas publikasi adalah salah satu keunggulan utama sistem R, di mana hampir semua jenis grafik dapat diprogram. Bab ini hanya memberikan pengantar singkat tentang beberapa jenis tampilan yang umum digunakan. Untuk informasi lebih lanjut, pembaca disarankan untuk merujuk pada buku-buku khusus, seperti karya Murrell (2005), Sarkar (2008), dan Chen et al. (2008). Selain itu, grafik 3D interaktif dapat dibuat menggunakan paket rgl (Adler dan Murdoch, 2009).
library(lattice)
xyplot(jitter(log(A_income + 0.5)) ~
jitter(log(R_income + 0.5)) | R_edu, data = CHFLS)
## Exercise ### Ex. 2.1 The data in Table 2.3 are part of a data set
collected from a survey of household expenditure and give the
expenditure of 20 single men and 20 single women on four commodity
groups. The units of expenditure are Hong Kong dollars, and the four
commodity groups are housing: housing, including fuel and light, food:
foodstuffs, including alcohol and tobacco, goods: other goods, including
clothing, footwear and durable goods, services: services, including
transport and vehicles. The aim of the survey was to investigate how the
division of household expenditure between the four commodity groups
depends on total expenditure and to find out whether this relationship
differs for men and women. Use appropriate graphical methods to answer
these questions and state your conclusions. ### jawaban ### Membuat
data
data("household", package = "HSAUR2")
head(household, 5)
## housing food goods service gender
## 1 820 114 183 154 female
## 2 184 74 6 20 female
## 3 921 66 1686 455 female
## 4 488 80 103 115 female
## 5 721 83 176 104 female
library(ggplot2)
household$total_expenditure <- rowSums(household[, 1:4])
print(household$total_expenditure)
## [1] 1271 284 3128 786 1084 1303 1428 596 2899 3258 581 3186
## [13] 804 1533 2088 986 1709 748 836 1639 1532 2448 3358 2416
## [25] 6582 2385 1429 2972 773 10615 4004 1606 738 1659 5371 6748
## [37] 9731 864 2899 5637
ggplot(household, aes(x = gender, y = housing)) +
geom_boxplot() +
labs(title = "Pengeluaran untuk Housing berdasarkan Gender",
y = "Pengeluaran Housing (HKD)")
#### Kesimpulan ##### Setelah menghasilkan grafik, kita bisa menarik
kesimpulan: ##### Perbandingan Pengeluaran: Lihat apakah ada perbedaan
signifikan dalam pengeluaran antara pria dan wanita untuk setiap
kelompok komoditas. Hubungan dengan Total Pengeluaran: Dengan
menggunakan scatterplot, kita dapat menilai apakah ada tren yang
menunjukkan bahwa peningkatan total pengeluaran berkorelasi dengan
peningkatan pengeluaran di kelompok komoditas tertentu. Dari grafik dan
analisis yang dilakukan, Anda dapat menyimpulkan: ##### Apakah pria dan
wanita memiliki pola pengeluaran yang berbeda? ##### Apakah total
pengeluaran mempengaruhi pembagian pengeluaran antara kelompok
komoditas? ##### Jika Anda mendapati bahwa pria cenderung menghabiskan
lebih banyak untuk layanan, sementara wanita lebih banyak menghabiskan
untuk makanan, itu dapat menunjukkan perbedaan dalam kebiasaan
pengeluaran berdasarkan gender.
data <- data.frame(
Country = c("Canada", "Israel", "Japan", "Austria", "France", "Germany",
"Hungary", "Italy", "Netherlands", "Poland", "Spain",
"Sweden", "Switzerland", "UK", "USA"),
A25_34 = c(22, 9, 22, 29, 16, 28, 48, 7, 8, 26, 4, 28, 22, 10, 20),
A35_44 = c(27, 19, 19, 40, 25, 35, 65, 8, 11, 29, 7, 41, 34, 13, 22),
A45_54 = c(31, 10, 21, 52, 36, 41, 84, 11, 18, 36, 10, 46, 41, 15, 28),
A55_64 = c(34, 14, 31, 53, 47, 49, 81, 18, 20, 32, 16, 51, 50, 17, 33),
A65_74 = c(24, 27, 49, 69, 56, 52, 107, 27, 28, 28, 22, 35, 51, 22, 37)
)
#### Membuat boxplot
##### Mengubah data ke format panjang untuk boxplot
library(reshape2)
data_long <- melt(data, id.vars = "Country", variable.name = "AgeGroup", value.name = "MortalityRate")
##### Membuat boxplot
library(ggplot2)
ggplot(data_long, aes(x = AgeGroup, y = MortalityRate)) +
geom_boxplot(fill = "lightblue") +
labs(title = "Boxplot Angka Kematian Per 100.000 dari Bunuh Diri Pria Berdasarkan Kelompok Usia",
x = "Kelompok Usia",
y = "Angka Kematian (per 100.000)") +
theme_minimal()
#### Analisis Hasil ##### Setelah boxplot dihasilkan, kita dapat menarik
kesimpulan berdasarkan grafik yang ditampilkan. ###### Distribusi:
Boxplot menunjukkan distribusi angka kematian untuk setiap kelompok
usia. Perhatikan panjang whiskers dan posisi median untuk memahami
rentang dan pusat data. ###### Variabilitas: Ada variasi yang jelas
dalam angka kematian berdasarkan kelompok usia. Misalnya, kelompok usia
65-74 tahun memiliki rentang yang lebih tinggi dan outlier yang lebih
banyak dibandingkan kelompok usia yang lebih muda, seperti 25-34 tahun.
###### Tren: Secara umum, kita dapat melihat bahwa angka kematian
cenderung meningkat dengan bertambahnya usia. Ini mungkin menunjukkan
bahwa orang yang lebih tua lebih rentan terhadap bunuh diri. ######
Outlier: Kelompok usia 55-64 dan 65-74 tahun menunjukkan beberapa
outlier yang sangat tinggi, terutama pada negara seperti Hungaria, yang
dapat menarik perhatian lebih lanjut untuk analisis mendalam. ####
Kesimpulan ##### Boxplot memberikan gambaran yang jelas tentang
distribusi angka kematian dari bunuh diri pria berdasarkan kelompok
usia. Ada tren yang jelas bahwa risiko bunuh diri meningkat seiring
bertambahnya usia, dengan kelompok usia yang lebih tua menunjukkan angka
kematian yang lebih tinggi dan variabilitas yang lebih besar. Data ini
penting untuk merancang intervensi dan kebijakan pencegahan yang tepat.
### Ex 2.3 The data set shown in Table 2.5 contains values of seven
variables for ten states in the US. The seven variables are Population:
population size divided by 1000, Income: average per capita income,
Illiteracy: illiteracy rate (% population), Life.Expectancy: life
expectancy (years), Homicide: homicide rate (per 1000), Graduates:
percentage of high school graduates, Freezing: average number of days
per below freezing. With these data 1. Construct a scatterplot matrix of
the data labelling the points by state name (using function text). 2.
Construct a plot of life expectancy and homicide rate conditional on
average per capita income. #### Memuat data
data("USstates", package = "HSAUR2")
head(USstates, 5)
## Population Income Illiteracy Life.Expectancy Homicide Graduates
## Alabama 3615 3624 2.1 69.05 15.1 41.3
## California 21198 5114 1.1 71.71 10.3 62.6
## Iowa 2861 4628 0.5 72.56 2.3 59.0
## Mississippi 2341 3098 2.4 68.09 12.5 41.0
## New Hampshire 812 4281 0.7 71.23 3.3 57.6
## Freezing
## Alabama 20
## California 20
## Iowa 140
## Mississippi 50
## New Hampshire 174
pairs(USstates[2:7],
main = "Scatterplot Matrix of US States",
pch = 19,
col = "blue")
plot(USstates$Income, USstates$Life.Expectancy,
main = "Life Expectancy vs Income",
xlab = "Average Income",
ylab = "Life Expectancy",
pch = 19, col = "blue")