Exercise 2.1

Membuat household data

data <- data.frame(
  housing = c(820, 184, 921, 488, 721, 614, 801, 396, 864, 845, 404, 781, 457, 1029, 1047, 552, 718, 495, 382, 1090, 
              497, 839, 798, 892, 1585, 755, 388, 617, 248, 1641, 1180, 619, 253, 661, 1981, 1746, 1865, 238, 1199, 1524),
  food = c(114, 74, 66, 80, 83, 55, 56, 59, 65, 64, 97, 47, 103, 71, 90, 91, 104, 114, 77, 59, 
           591, 942, 1308, 842, 781, 764, 655, 879, 438, 440, 1243, 684, 422, 739, 869, 746, 915, 522, 1095, 964),
  goods = c(183, 6, 1686, 103, 176, 441, 357, 61, 1618, 1935, 33, 1906, 136, 244, 653, 185, 583, 65, 230, 313,
            153, 302, 668, 287, 2476, 428, 153, 757, 22, 6471, 768, 99, 15, 71, 1489, 2662, 5184, 29, 261, 1739),
  services = c(154, 20, 455, 115, 104, 193, 214, 80, 352, 414, 47, 452, 108, 189, 298, 158, 304, 74, 147, 177, 
               291, 365, 584, 395, 1740, 438, 233, 719, 65, 2063, 813, 204, 48, 188, 1032, 1594, 1767, 75, 344, 1410),
  gender = c(rep("female", 20), rep("male", 20))
  )

Menampilkan data

data
##    housing food goods services 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
## 6      614   55   441      193 female
## 7      801   56   357      214 female
## 8      396   59    61       80 female
## 9      864   65  1618      352 female
## 10     845   64  1935      414 female
## 11     404   97    33       47 female
## 12     781   47  1906      452 female
## 13     457  103   136      108 female
## 14    1029   71   244      189 female
## 15    1047   90   653      298 female
## 16     552   91   185      158 female
## 17     718  104   583      304 female
## 18     495  114    65       74 female
## 19     382   77   230      147 female
## 20    1090   59   313      177 female
## 21     497  591   153      291   male
## 22     839  942   302      365   male
## 23     798 1308   668      584   male
## 24     892  842   287      395   male
## 25    1585  781  2476     1740   male
## 26     755  764   428      438   male
## 27     388  655   153      233   male
## 28     617  879   757      719   male
## 29     248  438    22       65   male
## 30    1641  440  6471     2063   male
## 31    1180 1243   768      813   male
## 32     619  684    99      204   male
## 33     253  422    15       48   male
## 34     661  739    71      188   male
## 35    1981  869  1489     1032   male
## 36    1746  746  2662     1594   male
## 37    1865  915  5184     1767   male
## 38     238  522    29       75   male
## 39    1199 1095   261      344   male
## 40    1524  964  1739     1410   male

Analisis statistika deskriptif

Melihat rangkuman data

summary(data)
##     housing            food             goods           services     
##  Min.   : 184.0   Min.   :  47.00   Min.   :   6.0   Min.   :  20.0  
##  1st Qu.: 493.2   1st Qu.:  76.25   1st Qu.: 127.8   1st Qu.: 139.0  
##  Median : 768.0   Median : 268.00   Median : 294.5   Median : 262.0  
##  Mean   : 828.4   Mean   : 435.20   Mean   : 873.7   Mean   : 460.6  
##  3rd Qu.:1033.5   3rd Qu.: 768.25   3rd Qu.: 948.2   3rd Qu.: 452.8  
##  Max.   :1981.0   Max.   :1308.00   Max.   :6471.0   Max.   :2063.0  
##     gender         
##  Length:40         
##  Class :character  
##  Mode  :character  
##                    
##                    
## 

Meload library Paket dplyr yang merupakan bagian dari tidyverse. Paket ini menyediakan fungsi-fungsi yang memudahkan dalam manipulasi data seperti group_by() dan summarize().

library(dplyr)
## Warning: package 'dplyr' was built under R version 4.3.2
## 
## 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

Merangkum data pengeluaran rumah tangga untuk pria dan wanita

summary_by_gender <- data %>%
  group_by(gender) %>%
  summarize(
    avg_housing = mean(housing),
    avg_food = mean(food),
    avg_goods = mean(goods),
    avg_services = mean(services),
    total_expenditure = mean(housing + food + goods + services)
  )

Penjelasan: data %>%: Pipe operator %>% digunakan untuk mengalirkan data frame data sebagai input ke fungsi berikutnya, yaitu group_by(). Ini membuat kode lebih bersih dan mudah dibaca.

group_by(gender): Data dikelompokkan berdasarkan kolom gender, sehingga kita bisa menghitung statistik deskriptif untuk masing-masing kelompok gender.

summarize(…): mean(housing): Menghitung rata-rata pengeluaran untuk housing dalam tiap kelompok gender.(begitupun kelompok lainnya) total_expenditure: Menghitung total pengeluaran dengan menjumlahkan semua kategori dan menghitung rata-ratanya.

Melihat hasil rangkuman barusan

summary_by_gender
## # A tibble: 2 × 6
##   gender avg_housing avg_food avg_goods avg_services total_expenditure
##   <chr>        <dbl>    <dbl>     <dbl>        <dbl>             <dbl>
## 1 female        680.     78.4      546.         203.             1507.
## 2 male          976.    792.      1202.         718.             3688.

Memvisualisasikan data

Memuat library ggplot2 Paket ggplot2 dimuat untuk menghasilkan grafik yang menarik dan informatif. Kita akan menggunakan fungsi ggplot() untuk membuat boxplot.

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.3.3

Boxplot Pengeluaran untuk Housing Berdasarkan Gender

ggplot(data, aes(x = gender, y = housing, fill = gender)) +
  geom_boxplot() +
  labs(title = "Housing Expenditure by Gender", x = "Gender", y = "Housing (HKD)") +
  theme_minimal()

Penjelasan: ggplot(data, aes(x = gender, y = housing, fill = gender)): Kita menggunakan data data dengan aes() untuk menentukan bahwa sumbu x adalah gender dan sumbu y adalah pengeluaran untuk housing. Warna diisi berdasarkan gender.

geom_boxplot(): Membuat boxplot untuk melihat distribusi pengeluaran housing di antara laki-laki dan perempuan.

labs(): Digunakan untuk memberi judul pada plot serta label pada sumbu x dan sumbu y.

theme_minimal(): Memberikan gaya minimalis pada plot agar lebih bersih.

Boxplot Pengeluaran untuk Food Berdasarkan Gender

ggplot(data, aes(x = gender, y = food, fill = gender)) +
  geom_boxplot() +
  labs(title = "Food Expenditure by Gender", x = "Gender", y = "Food (HKD)") +
  theme_minimal()

Penjelasan: Plot ini sama seperti sebelumnya, tetapi kali ini untuk melihat distribusi pengeluaran food antara laki-laki dan perempuan. Sumbu y diubah menjadi food.

Boxplot Pengeluaran untuk Goods Berdasarkan Gender

ggplot(data, aes(x = gender, y = goods, fill = gender)) +
  geom_boxplot() +
  labs(title = "Goods Expenditure by Gender", x = "Gender", y = "Goods (HKD)") +
  theme_minimal()

Penjelasan: Plot ini digunakan untuk melihat distribusi pengeluaran goods berdasarkan gender, dengan sumbu y diubah menjadi goods.

Boxplot Pengeluaran untuk Services Berdasarkan Gender

ggplot(data, aes(x = gender, y = services, fill = gender)) +
  geom_boxplot() +
  labs(title = "Services Expenditure by Gender", x = "Gender", y = "Services (HKD)") +
  theme_minimal()

Penjelasan: Sama seperti sebelumnya, tetapi kali ini untuk pengeluaran services.

Total Expenditure by Gender

data$total_expenditure <- data$housing + data$food + data$goods + data$services

Penjelasan: Menghitung pengeluaran total untuk setiap individu dengan menjumlahkan semua kategori (housing, food, goods, services) dan menyimpannya ke kolom baru total_expenditure.

Kenapa harus ada simbol $? Simbol $ dalam R digunakan untuk mengakses kolom tertentu dalam sebuah data frame atau list. Dalam kasus ini, data adalah data frame, dan kolom-kolom seperti housing, food, goods, dan services adalah kolom-kolom di dalam data frame data. Jadi, simbol $ digunakan untuk mengambil nilai dari kolom tertentu dalam data frame tersebut.

data$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

Membuat boxplot dari total expenditure tersebut

ggplot(data, aes(x = gender, y = total_expenditure, fill = gender)) +
  geom_boxplot() +
  labs(title = "Total Expenditure by Gender", x = "Gender", y = "Total Expenditure (HKD)") +
  theme_minimal()

Kesimpulan

Berdasarkan hasil analisis deskriptif dan visualisasi: 1. Laki-laki cenderung menghabiskan lebih banyak pada kategori housing, goods, dan services dibandingkan perempuan. 2. Distribusi pengeluaran untuk food lebih merata di antara laki-laki dan perempuan. 3. Total pengeluaran secara keseluruhan lebih tinggi untuk laki-laki dibandingkan perempuan.

R Markdown

This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.

When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:

summary(cars)
##      speed           dist       
##  Min.   : 4.0   Min.   :  2.00  
##  1st Qu.:12.0   1st Qu.: 26.00  
##  Median :15.0   Median : 36.00  
##  Mean   :15.4   Mean   : 42.98  
##  3rd Qu.:19.0   3rd Qu.: 56.00  
##  Max.   :25.0   Max.   :120.00

Including Plots

You can also embed plots, for example:

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.