STA1512-Pendahuluan

Pada praktikum STA1512 akan digunakan software R, adapun cara untuk menginstall R adalah sebagai berikut:

Istilah dalam Statistika

Populasi : keseluruhan objek yang menjadi pusat amatan kita

Contoh/sampel: himpunan bagian dari populasi (mewakili)

Parameter: Karakteristik numerik yang mencirikan populasi berdasarkan peubah tertentu

Statistik: Karakteristik numerik yang mencirikan contoh/sampel berdasarkan peubah tertentu

Penyajian Data

Package

library(readxl)
library(tidyverse)
library(ggplot2)
library(aplpack)
library(kableExtra)
library(janitor)

Import Data

Data dapat didownload melalui: link.

data1 <- read.csv("D:/MATERI KULIAH S2 IPB/ASPRAK 2/Example_data.csv")
head(data1)
##   bookpageID    appdate ceremonydate delay     officialTitle person        dob
## 1   B230p539 10/29/1996    11/9/1996    11    CIRCUIT JUDGE   Groom  4/11/1964
## 2   B230p677 11/12/1996   11/12/1996     0 MARRIAGE OFFICIAL  Groom   8/6/1964
## 3   B230p766 11/19/1996   11/27/1996     8 MARRIAGE OFFICIAL  Groom  2/20/1962
## 4   B230p892  12/2/1996    12/7/1996     5          MINISTER  Groom  5/20/1956
## 5   B230p994  12/9/1996   12/14/1996     5          MINISTER  Groom 12/14/1966
## 6  B230p1209 12/26/1996   12/26/1996     0 MARRIAGE OFFICIAL  Groom  2/21/1970
##        age college     zodiacs
## 1 32.60274       7       Aries
## 2 32.29041       0         Leo
## 3 34.79178       3      Pisces
## 4 40.57808       4      Gemini
## 5 30.02192       0 Saggitarius
## 6 26.86301       0      Pisces
#check missing data
colSums(is.na(data1))
##    bookpageID       appdate  ceremonydate         delay officialTitle 
##             0             0             0             1             0 
##        person           dob           age       college       zodiacs 
##             0             0             1            11             0
# drop NA : menghapus data yang hilang
dataz <- drop_na(data1)

#check missing data
colSums(is.na(dataz))
##    bookpageID       appdate  ceremonydate         delay officialTitle 
##             0             0             0             0             0 
##        person           dob           age       college       zodiacs 
##             0             0             0             0             0

Bar Chart (Diagram Batang)

Berguna untuk menampilkan data kategorik (nominal dan ordinal) Dapat pula digunakan untuk menyajikan data dari tabel kontingensi / tabel ringkasan data

ggplot(dataz, aes(x = zodiacs)) +                                                   # diagram view of `Zodiacs` 
  geom_bar(fill = "pink",color= "black") +                                           # colors
  theme_minimal() +                                                                    # background theme
  labs(x = "Zodiacs",                                                                   # label for every variables
       y = "Frequency",   
       title = "Zodiacs")  

ggplot(dataz, aes(x = zodiacs)) +                                                   # diagram view of `Zodiacs` 
  geom_bar(fill = "coral",color= "black") +                                           # colors
  theme_minimal() +                                                                    # background theme
  labs(x = "Zodiacs",                                                                   # label for every variables
       y = "Frequency",   
       title = "Zodiacs") +
  coord_flip()

Pie Chart

  • Digunakan untuk menampilkan data kategorik khususnya data nominal

  • Menunjukkan distribusi data dalam group (total 100%)

  • Disajikan dalam bentuk %, terkadang perlu menyajikan pula jumlah data

plotdata <- dataz %>%
  count(zodiacs) %>%
  arrange(desc(zodiacs)) %>%
  mutate(prop = round(n*100/sum(n), 1),
         lab.ypos = cumsum(prop) - 0.5*prop)

# Pie Chart
ggplot(plotdata, aes(x = "", y = prop, fill = zodiacs)) +
  geom_bar(width = 1, stat = "identity", color = "white") +
  coord_polar("y", start = 0)+
  geom_text(aes(y = lab.ypos, label = prop), color = "black")+
  scale_fill_manual(values = rainbow(13)) +
  theme_void()+
  labs(title = "Percentage of Zodiacs")

Dot Plot (Diagram Titik)

Sebuah grafik yang digunakan untuk melihat distribusi data asli yang berupa titik. Digunakan untuk melihat frekuensi kejadian untuk masing-masing nilai

ggplot(dataz, aes(x = age)) +
  geom_dotplot(fill = "blue",
               binwidth = 2) +
  theme_minimal() +                                 
  labs(title = "Age",
       y = "Proportions",
       x = "Age",
       subtitle = "binwidth = 2")

Stem & leaf plot (Diagram Dahan Daun)

  • Sebuah diagram yang menampilkan distribusi dari data kuantitatif yang sudah terurut dari terkecil dan terbesar

  • Terdiri dari bagian dahan dan bagian daun. Bagian daun selalu terdiri dari satu digit. Bagian dahan terletak di sebelah kiri dan bersesuaian dengan bagian daun (jika ada) di sebelah kanan

variety_1 <-   c(20,12,39,38,
                 41,43,51,52,
                 59,55,53,59,
                 50,58,35,38,
                 23,32,43,53)
variety_2 <-   c(18,45,62,59,
                 53,25,13,57,
                 42,55,13,57,
                 42,55,56,38,
                 41,36,50,62,
                 45,55)
stem.leaf.backback(variety_1, variety_2, m = 1)
## _____________________________________
##   1 | 2: represents 12, leaf unit: 1 
##        variety_1     variety_2   
## _____________________________________
##    1           2| 1 |338         3   
##    3          30| 2 |5           4   
##    8       98852| 3 |68          6   
##   (3)        331| 4 |12255      (5)  
##    9   998533210| 5 |035556779  (9)  
##                 | 6 |22          2   
##                 | 7 |                
## _____________________________________
## n:            20     22          
## _____________________________________
stem(variety_1)
## 
##   The decimal point is 1 digit(s) to the right of the |
## 
##   1 | 2
##   2 | 03
##   3 | 25889
##   4 | 133
##   5 | 012335899

Box Plot (Diagram Kotak Garis)

Menyajikan data dari hasil statistik 5 serangkai (Min, Q1, Q2, Q3, Max). Informasi yang diperoleh:

  1. Melihat ukuran penyebaran dan ukuran pemusatan data

  2. Melihat adanya data pencilan

  3. Sebagai alat pembandingan sebaran dua kelompok data atau lebih

#simple boxplot
boxplot(variety_1)

head(datasets::airquality)
##   Ozone Solar.R Wind Temp Month Day
## 1    41     190  7.4   67     5   1
## 2    36     118  8.0   72     5   2
## 3    12     149 12.6   74     5   3
## 4    18     313 11.5   62     5   4
## 5    NA      NA 14.3   56     5   5
## 6    28      NA 14.9   66     5   6
ggplot(data = airquality, aes(x=as.character(Month), y=Temp)) +
    geom_boxplot(fill=c('steelblue')) #boxplot of temperature value every month

#using different color
ggplot(data = airquality, aes(x=as.character(Month), y=Temp)) +
    geom_boxplot(fill=c('steelblue', 'red', 'purple', 'green', 'orange'))

Tabel Kontingensi

Digunakan untuk melihat distribusi dari dua data kategorik atau lebih.

Data

mtcars data from R

The data was extracted from the 1974 Motor Trend US magazine, and comprises fuel consumption and 10 aspects of automobile design and performance for 32 automobiles (1973–74 models).

A data frame with 32 observations on 11 (numeric) variables.

# reading the data
data(mtcars)
colnames(mtcars)
##  [1] "mpg"  "cyl"  "disp" "hp"   "drat" "wt"   "qsec" "vs"   "am"   "gear"
## [11] "carb"
head(mtcars)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
attach(mtcars)
## The following object is masked from package:ggplot2:
## 
##     mpg
# Contingency Table – 2-way relationships
t0 = table(cyl, gear)
t0
##    gear
## cyl  3  4  5
##   4  1  8  2
##   6  2  4  1
##   8 12  0  2
t1 =xtabs(~ cyl + gear
          , data = mtcars)
t1
##    gear
## cyl  3  4  5
##   4  1  8  2
##   6  2  4  1
##   8 12  0  2
t2 = ftable(gear ~ cyl
            , data = mtcars)
t2
##     gear  3  4  5
## cyl              
## 4         1  8  2
## 6         2  4  1
## 8        12  0  2

Tabel Frekuensi

A frequency table is a table that lists items and shows the number of times the items occur.

table2 = tabyl(dataz, officialTitle) %>% 
    adorn_totals("row") %>%
    adorn_pct_formatting(digits = 0)
names(table2) = c("Official Title", "Frequency", "Percent")

kbl(table2, 
    caption = "Table 1: Distribution of participants by official title") %>%
    kable_styling(bootstrap_options = "striped", full_width = FALSE, position = "left")
Table 1: Distribution of participants by official title
Official Title Frequency Percent
BISHOP 1 1%
CATHOLIC PRIEST 2 2%
CHIEF CLERK 2 2%
CIRCUIT JUDGE 2 2%
ELDER 2 2%
MARRIAGE OFFICIAL 40 45%
MINISTER 19 22%
PASTOR 20 23%
Total 88 100%
datatable1<-dataz%>%count(officialTitle)
datatable1
##       officialTitle  n
## 1            BISHOP  1
## 2   CATHOLIC PRIEST  2
## 3       CHIEF CLERK  2
## 4    CIRCUIT JUDGE   2
## 5             ELDER  2
## 6 MARRIAGE OFFICIAL 40
## 7          MINISTER 19
## 8            PASTOR 20

Tabel Ringkasan

table1 <- dataz %>% 
    group_by(zodiacs) %>% 
    summarise(Frequency = n(),
              Minimum = min(age),
              Maximum = max(age),
              Median = median(age),
              Mean=mean(age),
              IQR = diff(quantile(age, c(1, 3)/4)))
names(table1)[1] = c("Zodiacs")

kbl(table1, digits = 2, 
    caption = "Table 1: Descriptive statistics of age by zodiacs.") %>%
  kable_styling(bootstrap_options = "striped", full_width = FALSE, position = "left")
Table 1: Descriptive statistics of age by zodiacs.
Zodiacs Frequency Minimum Maximum Median Mean IQR
Aquarius 7 20.27 42.17 23.38 28.27 10.45
Aries 9 20.04 52.44 33.98 34.00 17.83
Cancer 8 16.27 67.58 40.42 38.73 12.07
Capricorn 2 23.99 37.84 30.92 30.92 6.93
Gemini 9 18.46 74.25 34.01 42.09 29.81
Leo 6 18.28 68.04 29.36 34.70 19.62
Libra 6 18.36 45.02 22.30 27.59 16.85
Pisces 13 18.64 55.64 26.86 30.28 14.02
Saggitarius 9 21.34 44.85 37.55 34.11 16.44
Scorpio 6 18.40 72.80 28.93 36.13 13.34
Taurus 5 17.02 52.59 39.58 36.49 25.35
Virgo 8 20.22 50.07 27.74 31.02 18.84

Ukuran Pemusatan Data

Package

library(DescTools)

1. Mean

Mean merupakan pusat massa (centroid). Jika menggambarkan populasi di tuliskan sebagai \(\mu\). Jika menggambarkan contoh dituliskan sebagai \(\bar{x}\). Mean Resisten terhadap outlier.

dist<-c(12.5,29.9,14.8,18.7,5,7.6,16.2,16.5,27.4,12.1,17.5,5)
mean1<-sum(dist)/length(dist)
mean1
## [1] 15.26667
# or using function `mean`

mean2<-mean(dist)
mean2
## [1] 15.26667

2. Median

Median disimbolkan dengan Q2 dan merupakan pengamatan yang berada ditengah-tengah dari data terurut.

med1<-median(dist)
med1
## [1] 15.5

3. Modus

Modus merupakan nilai pengamatan yang paling sering muncul.

mode1<-Mode(dist)
mode1
## [1] 5
## attr(,"freq")
## [1] 2

4. Quartil

Quartil merupakan Nilai-nilai yang membagi data terurut menjadi 4 bagian yang sama Q0 = min dan Q4 = max. Q1(dibaca kuartil 1) merupakan nilai yang membagi data 25% data di kiri dan 75% data di kanan Q3 (dibaca kuartil 3) merupakan nilai yang membagi data 75% data di kiri dan 25% data di sebelah kanan. Quartil Robust terhadap outlier.

# Q1 and Q3
quantile(dist,probs=c(0.25,0.75))
##    25%    75% 
## 10.975 17.800
# Q0 and Q4
nilaiq0<-min(dist)
nilaiq0
## [1] 5
nilaiq4<-max(dist)
nilaiq4
## [1] 29.9

Function summary in R

summary(dist)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    5.00   10.97   15.50   15.27   17.80   29.90

Ukuran Penyebaran Data

library(DescTools)

1. Range

Jangkauan atau range, R, dari n pengamatan adalah perbedaan antara pemngamatan terbesar dan terkecil.

Range = Max(data)-Min(data)

range1<-max(dist)-min(dist)
range1
## [1] 24.9

2. Jangkauan Antar Kuartil (JAK) atau Interquartil range (IQR)

IQR = Q3 - Q1

IQR<-quantile(dist,probs=c(0.75)) - quantile(dist,probs=c(0.25))
IQR
##   75% 
## 6.825

3. Ragam

Ragam merupakan ukuran keberagaman yang menggunakan semua pengamatan. Ragam mengukur perbedaan antara setiap pengamatan terhadap rataannya.

ragam1<-var(dist)
ragam1
## [1] 60.72788

4. Standar Deviasi

Standar deviasi merupakan akar dari Ragam.

sd1<-sd(dist)
sd1
## [1] 7.792809