Data Analysis Using Graphical Displays: Malignant Melanoma in the USA and Chinese Health and Family Life

2.1 Introduction

Fisher dan Belle (1993) melaporkan tingkat kematian akibat melanoma malignan pada pria kulit putih di berbagai negara bagian AS antara tahun 1950 hingga 1969. Data ini mencakup jumlah kematian, koordinat geografis setiap negara bagian, dan variabel biner yang menunjukkan apakah negara bagian tersebut berbatasan dengan lautan. Pertanyaan penting yang dapat diajukan dari data ini adalah:

Bagaimana perbandingan tingkat kematian antara negara bagian yang berbatasan dengan laut dan yang tidak?

Bagaimana pengaruh lintang dan bujur terhadap tingkat kematian?

data("USmelanoma", package = "HSAUR2")
head(USmelanoma, 5)
##            mortality latitude longitude ocean
## Alabama          219     33.0      87.0   yes
## Arizona          160     34.5     112.0    no
## Arkansas         170     35.0      92.5    no
## California       182     37.5     119.5   yes
## Colorado         149     39.0     105.5    no

Dataset ini menyajikan tingkat kematian serta variabel geografis dan kategorikal untuk masing-masing negara bagian. Contohnya, negara bagian seperti California dan Florida yang berbatasan dengan laut memiliki tingkat kematian yang berbeda dibandingkan dengan negara bagian seperti Arizona dan Arkansas yang tidak.

Konteks Data

Bagian kedua dari pendahuluan beralih fokus ke Cina kontemporer, yang mengalami perubahan besar dalam perilaku seksual, dengan perbedaan regional dan generasional yang signifikan. Studi Kesehatan dan Kehidupan Keluarga Cina yang dilakukan pada tahun 1999-2000 menghasilkan set data yang representatif tentang perilaku seksual dan pola kesehatan di antara populasi.

Dalam studi ini, 60 desa dan lingkungan perkotaan di Cina dipilih secara acak untuk mencerminkan keragaman geografis dan sosial ekonomi. Fokus analisis adalah pada perempuan yang memiliki pasangan pria dan variabel-variabel yang terkait dengan pendidikan, kesehatan, dan kebahagiaan mereka, serta pendapatan pasangan mereka.

2.2 Initial Data Analysis

Grafik sangat populer, dengan estimasi hingga 2 triliun gambar statistik dicetak setiap tahun. Salah satu alasan popularitasnya adalah kemampuannya untuk mendeteksi pola yang tidak terduga. Namun, penting untuk diingat bahwa manusia juga cenderung membayangkan pola yang tidak ada.

Selama dua dekade terakhir, banyak metode baru untuk menampilkan data secara grafis telah dikembangkan, membantu dalam mengidentifikasi pola, mendiagnosis model, dan mencari fenomena baru. Pertanyaan sekarang bukan lagi “apakah kita harus memplot?”, tetapi “apa yang harus kita plot?”. Metode yang lebih sederhana seperti histogram, diagram batang, boxplot, dan scatterplot sering digunakan sebagai langkah awal sebelum beralih ke metode yang lebih kompleks.

2.3 Analysis Using R

2.3.1 Malignant Melanoma

Membuat Plot Histogram dan Boxplot untuk Data Melanoma
Untuk menganalisis data melanoma malignan yang terdapat di Tabel 2.1, kita dapat mulai dengan membuat histogram atau boxplot dari semua tingkat kematian. Fungsi plot, hist, dan boxplot telah diperkenalkan sebelumnya dan kita ingin menghasilkan plot yang menggabungkan kedua teknik ini
xr <- range(USmelanoma$mortality) * c(0.9, 1.1)
xr
## [1]  77.4 251.9
Untuk menggambarkan data tingkat kematian akibat melanoma malignan, kita perlu mengatur perangkat plotting agar dapat menampilkan histogram dan boxplot secara bersamaan. Berikut adalah langkah-langkah yang dilakukan dalam R:
  1. Menyiapkan Layout Plot
layout(matrix(1:2, nrow = 2))
  1. Mengatur Margin Plot
par(mar = par("mar") * c(0.8, 1, 1, 1))
  1. Membuat Boxplot
boxplot(USmelanoma$mortality, ylim = xr, horizontal = TRUE, 
        xlab = "Mortality")

  1. Membuat Histogram
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
Pada bagian ini, kita melihat bahwa negara bagian pesisir di selatan dengan lintang kurang dari 32° memiliki tingkat kematian yang tinggi akibat melanoma. Negara bagian tersebut meliputi:

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
analisis difokuskan pada hubungan antara pendapatan bulanan wanita dan pendapatan pasangannya
Kedua variabel pendapatan ini dihasilkan dari pengukuran yang dilaporkan sendiri dan mungkin tidak akurat, serta data ini cenderung tumpang tindih, sehingga sulit untuk menghasilkan scatterplot yang jelas. Untuk mengatasi masalah ini, metode jitter digunakan dengan menambahkan sedikit noise acak pada setiap titik, sehingga simbol plotting tidak bertumpuk.
Untuk menganalisis hubungan ini lebih lanjut, trellis plots digunakan, yang memungkinkan visualisasi scatterplot terpisah untuk setiap tingkat pendidikan wanita. Dengan menggunakan fungsi xyplot dari paket lattice, kita dapat membandingkan plot yang dihasilkan dengan sumbu yang konsisten di seluruh
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.

2.4 Ringkasan

####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

Analisis Grafis

library(ggplot2)
Menghitung total pengeluaran
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
Boxplot untuk setiap komoditas berdasarkan gender
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.

Ex 2.2 Mortality rates per 100, 000 from male suicides for a number of age groups and a number of countries are given in Table 2.4. Construct sideby-side box plots for the data from different age groups, and comment on what the graphic tells us about the data.

Memuat data

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

Scatterplot Matrix

Membuat scatterplot matrix
pairs(USstates[2:7], 
      main = "Scatterplot Matrix of US States", 
      pch = 19, 
      col = "blue")

lot Harapan Hidup dan Tingkat Pembunuhan

Membuat plot Life Expectancy dan Homicide Rate berdasarkan Income
plot(USstates$Income, USstates$Life.Expectancy, 
     main = "Life Expectancy vs Income",
     xlab = "Average Income",
     ylab = "Life Expectancy",
     pch = 19, col = "blue")

Analisis Hasil

Scatterplot Matrix: Grafik ini memungkinkan kita untuk melihat hubungan antara semua variabel secara bersamaan. Kita dapat melihat pola, korelasi, dan distribusi antar variabel, serta mengidentifikasi outlier dengan nama negara bagian yang ditandai.
Plot Harapan Hidup vs Pendapatan: Grafik ini menunjukkan hubungan antara harapan hidup dan rata-rata pendapatan. Kita bisa melihat tren positif, di mana negara bagian dengan pendapatan yang lebih tinggi cenderung memiliki harapan hidup yang lebih baik. Tingkat pembunuhan dapat menunjukkan dampak signifikan pada hubungan ini, dengan variasi warna yang menggambarkan tingkat pembunuhan yang berbeda.

Kesimpulan

Analisis ini memberikan wawasan penting tentang hubungan antara faktor-faktor sosial dan demografis di AS, serta bagaimana variabel-variabel tersebut saling berinteraksi. Scatterplot matrix dan plot yang dikondisikan membantu untuk memahami kompleksitas data dan menemukan pola yang relevan.