Dataset yang digunakan dalam artikel ini adalah data set mtcars, dimana data set tersebut adalah bawaan pada RStudio yang berisi tentang spesifikasi kendaraan tahun 1970 seperti nama kendaraan, berat, jumlah silinder,dll.

Untuk mengetahui data tersebut maka tuliskan pada script atau console command berikut kemudian run dengan menekan ctr;+shift+enter.

Gambar script dan console

Pada artikel ini penulis menuliskan command di console. Untuk script artikel ini dapat di download RPubs. Pada artikel ini analisa deskriptif hanya dilakukan untuk menjelaskan pemusatan data dan sebaran data.

data("mtcars")

untuk mengecek dan mengobservasi data pada urutan awal sebanyak 6 data kita bisa menggunakan command berikut :

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

Berdasarkan command perintah tersebut diatas dapat dihasilkan data mobil dengan observasi data pertama adalah data MazdaRx4. Sedangkan spesifikasi mobil dapat dilihat pada kolom-kolom selanjutnya dimana terdapat 11 kolom dari mulai variabel mpg sampai dengan carb. Untuk mengetahui observasi data dengan urutan 6 terakhir kita dapat mengetik command berikut

tail(mtcars)
##                 mpg cyl  disp  hp drat    wt qsec vs am gear carb
## Porsche 914-2  26.0   4 120.3  91 4.43 2.140 16.7  0  1    5    2
## Lotus Europa   30.4   4  95.1 113 3.77 1.513 16.9  1  1    5    2
## Ford Pantera L 15.8   8 351.0 264 4.22 3.170 14.5  0  1    5    4
## Ferrari Dino   19.7   6 145.0 175 3.62 2.770 15.5  0  1    5    6
## Maserati Bora  15.0   8 301.0 335 3.54 3.570 14.6  0  1    5    8
## Volvo 142E     21.4   4 121.0 109 4.11 2.780 18.6  1  1    4    2

untuk mempelajari lebih jauh mengenai dataset tersebut pembaca dapat mengetikkan command berikut :

?mtcars

informasi command tersebut adalah menampilkan jendela help seperti :

Gambar jendela help tentang mtcars

untuk mengetahui struktur dataset dapat mengetikkan command dibawah ini:

str(mtcars)
## 'data.frame':    32 obs. of  11 variables:
##  $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
##  $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
##  $ disp: num  160 160 108 258 360 ...
##  $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...
##  $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
##  $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
##  $ qsec: num  16.5 17 18.6 19.4 17 ...
##  $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...
##  $ am  : num  1 1 1 0 0 0 0 0 0 0 ...
##  $ gear: num  4 4 4 3 3 3 3 4 4 4 ...
##  $ carb: num  4 4 1 1 2 1 4 2 2 4 ...

Berdasarkan hasil command tersebut diketahui bahwa kesebelas variable merupakan variable numerik yang ditampilkan oleh tulisan num. Terdapat 32 observasi atau baris dan 11 variable atau kolom pada dataset.

Central Tendency / Statistik Deskripsi

Pada sesi kali ini penulis akan mengeksplorasi lebih jauh terkait ukuran pemusatan data pada mtcars seperti mean,median dan modus. Untuk mean dan median akan dieksplorasi lebih jauh pada variable berat (wt) sedangkan pada modus akan dieksplorasi pada variabel silinder(cyl) yang merupakan variabel dengan jenis nominal. Pada sesi ini penulis tidak merubah format dari variabel tersebut menjadi factor karena akan penulis jelaskan caranya pada artikel lain.Perhitungan mean dan median akan dilakukan dengan dua cara yaitu menggunakan cara manual dan menggunakan fungsi bawaan dari RStudio.

  1. Mean

Pada sesi ini penulis ingin mengetahui berat rata-rata dari 32 mobil pada data tersebut. Nilai rata-rata pada data tersebut dapat dihitung menggunakan Persamaan 1.

$$ \[\begin{align} \overline{X}&= \frac {\sum_{i=1}^{n} X_i}{n } \end{align}\] $$

Pada persamaan 1 dijelaskan bahwa untuk menghitung nilai rata-rata berat mobil pada dataset mtcars kita perlu menjumlahkan seluruh berat mobil dibadi dengan total mobil atau jumlah observasi dari dataset tersebut (n=32). Untuk mencari mean digunakan command berikut

Pada command attach() bertujuan untuk selalu menyretakan seluruh data set pada setiap command yang akan dilakukan

attach(mtcars)

Dari rumus yang ada kita bisa membuat command dengan fungsi sum() yaitu menjumlahkan “value” dari variabel mt dibagi dengan jumlah row dari data set mtcars, yang dapat di buat command sebagai berikut :

sum(wt)/nrow(mtcars)
## [1] 3.21725

Atau dalam bentuk rumus statistik adalah menggunakan command fungsi mean() pada variabel mt :

mean(wt)
## [1] 3.21725

Berdasarkan hasil perhitungan diperoleh nilai rata-rata sebesar 3,21725, pada perhitungan tersebut diperlukan command attach yang berguna untuk selalu menyisipkan dataset pada command selanjutnya. Dengan cara tersebut pada setiap command selanjutnya cukup menuliskan variabelnya saja.

Alternatif lainnya jika tidak menyertakan command attach() adalah menggunakan rangkaian command sebagai berikut :

sum(mtcars$wt)/nrow(mtcars)
## [1] 3.21725
mean(mtcars$wt)
## [1] 3.21725

Selain dapat menghitung mean menggunakan metode aritmatika biasa, fungsi mean() juga dapat digunakan untuk menghitung trimmed mean atau nilai rata-rata yang dihasilkan dengan memotong dataset pada ujung kanan dan kiri nilai rata-ratanya. Metode ini berguna jika pada dataset terdapat outlier.

Pada gambar tersebut trimmed mean diterapkan dengan memotong (trim) 25% data pada ujung kanan dan kiri mean. Pada artikel ini akan dilakukan hal yang sama dimana 5% dat akan dipotong pada ujung kanan dan kiri nilai rata-rata berat mobil. Untuk mengekspolr lebih jauh fungsi mean() dapat menjalankan command ?mean(). Command untuk melakukan hal tersebut adalah sebagai berikut:

mean(wt, trim=0.05)
## [1] 3.2005

Pada kode program dijelaskan bahwa trim 5% untuk memotong data pada ujung kiri dan ujung kanan. Berdasarkan hasil yang diperoleh, nilai rata-rata yang dihasilkan tidak berbeda signifikan dengan menggunakan metode mean aritmetik biasa. Hal ini bias terjadi jika pada data tidak ditemukan adanya outlier. Untuk memperkuat hal tersebut analisa lebih lanjut perlu dilakukan.

  1. Median

Median merupakan nilai tengah dari data yang telah diurutkan. Median merupakan salah satu indikator pusat data, dimana media cenderung lebih resistan terhadap adanya outlier pada data. Langkah-langkah menentukan median pada data antara lain :

  1. Mengurutkan data dari yang terkecil ke yang terbesar atau sebaliknya.

  2. Median merupakan nilai tengah dari data yang diurutkan yang membagi data menjadi dua observasi yang sama besar

Berdasarkan langkah tersebut pada r kita perlu mengurutkan data wt pada mtcars dan menyimpannya sebagai df untuk menerapkan perubahan tersebut. Command untuk melakukan hal tersebut adalah sebagai berikut:

Untuk melihar hasilnya pada exloprasi data sebanyak 6 yang atas dapat dilakukan sebagai berikut :

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

sedangkan untuk menentukan jumlah dari explorasi data menggunakan command sebagai berikut :

nrow(mtcars)
## [1] 32

Kemudian kita bisa menentkan letak baris dari median dengan rumus sebagai berikut :

nrow(mtcars)/2
## [1] 16

dari hasil yang ada dapat dilihat bahwa median terletak pada antara baris 16-17 karena jumlah observasi data adalah genap

Kemudian kita mengambil data dari mtcars pada baris ke 16 kolom ke 6 pada kolom wt

obs.16 = mtcars[16,6]
obs.16
## [1] 5.424

Kemudian kita mengambil data dari mtcars pada baris ke 17 kolom ke 6 pada kolom wt

obs.17 = mtcars[17,6]
obs.17
## [1] 5.345

Dari sini kita bisa mendapatkan median dengan command :

median_manual = (obs.16+obs.17)/2
median_manual
## [1] 5.3845

Kita bisa menentukan median dengan menggunakan rumus fungsi mendian() sebagai berikut :

median_fungsi = median(mtcars$wt)
median_fungsi 
## [1] 3.325

Menentukan median dengan fungsi quartile sebagai berikut :

median_quantile = quantile(mtcars$wt,2/4)
median_quantile
##   50% 
## 3.325

Fungsi tersebut adalah mengurtkan data dari yang terkecil kemudian di simpan pada df

Berdasarkan hasil komputasi yang diperoleh diketahui nilai median dari berat mobil adalah sebesar 3,325 x (1000) lbs atau 3325 lbs. Nilai ini tidak berbeda jauh dengan nilai mean yang mengindikasikan data simetris. untuk membuktikannya diperlukan uji lebih lanjut.

  1. Modus

Untuk menentukan modus pada artikel ini akan dilakukan pada variabel cyl. Perlu diingat bahwa modus dapat digunakan dengan baik jika data kita ordinal atau numerik, namun pada latihan ini akan digunakan pada data numerik yaitu cyl. Hal ini dapat dilakukan mengingat data pada variabel silinder memimiliki nilai diskrit dengan jumlah terbatas yaitu 3, sehingga penentuan modus lebih mungkin dilakukan disbanding menentukan modus pada data kontinyu. Untuk menentukan jumlah silinder dengan frekuensi terbanyak yang dimiliki oleh mobil pada dataset tersebut dapat menggunakan command dibawah ini :

table(mtcars$cyl)
## 
##  4  6  8 
## 11  7 14

Berdasarkan hasil tersebut dapat disimpulkan bahwa jumlah silinder dengan frekuensi terbanyak pada mobil adalah 8 silinder.

Spread

Sebaran data akan dihitung menggunakan indikator range,IQR, varian dan standar deviasi untuk menghitung sebaran data berat mobil pada data mtcars.

  1. range

Range mrtupakan selisih antara nilai terbesar dengan nilai terkecil. Adapun langkah-langkah menentukan nilai range antara lain:

  1. Urutkan data dari yang terkecil
  2. Tentukan nilai max dan min
  3. Hitung nilai range menggunakan Persamaan 2.

Range = Nilai Maks - Nilai Min

Command untuk menghitung range adalah sebagai berikut:

Mendapatkan nilai minimum dengan fungsi min() :

minimum_data = min(mtcars$wt)
minimum_data
## [1] 1.513

Secara manual dengan menggunakan data yang telah diurutkan :

minimum_manual = mtcars[1,6]
minimum_manual 
## [1] 2.62

Mendapatkan nilai maksimum dengan fungsi max() :

maksimum_data = max(mtcars$wt)
maksimum_data 
## [1] 5.424

Secara manual dengan menggunakan data yang telah diurutkan :

maksimum_manual = mtcars[32,6]
maksimum_manual 
## [1] 2.78

Untuk mendapatkan range dapat digunakan dengan fungsi range() :

range_fungsi = range(mtcars$wt)
range_fungsi
## [1] 1.513 5.424

Nilai yang dihasilkan adalah data minimum dan data maksimum. Untuk mendapat kan selisih dengan menghitung manual :

5.424-1.513
## [1] 3.911

Berdasarkan hasil perhitungan diperoleh nilai range berat kendaraan sebesar 3,911 x (1000) lbs atau 3911 lbs.

  1. IQR

IQR merupakan indikator sebaran data yang dihitung berdasarkan selisih antara kuarti 3 (Q3) terhadap kuartil 1 (Q1). Adapun langkah-langkah menghitung nilai IQR antara lain:

  1. Mengurutkan data dari yang terkecil
  2. Menentukan Q1 dan Q3
  3. Menentukan IQR menggunakan Persamaan 3.

IQR3 = Q3 - Q1

Command untuk menghitung IQR adalah sebagai berikut:

Q1 = quantile(mtcars$wt,1/4)
Q1
##     25% 
## 2.58125

Menentukan Q1 menggunakan fungsi quantile().

Q3 = quantile(mtcars$wt,3/4)
Q3
##  75% 
## 3.61

Menentukan Q3 menggunakan fungsi quantile(). Maka untuk menghitung IQR adalah sebagai berikut:

IQR = Q3 - Q1
IQR
##     75% 
## 1.02875

Menggunakan cara lain adalah dengan menggunakan fungsi quantile()

quantile(mtcars$wt)
##      0%     25%     50%     75%    100% 
## 1.51300 2.58125 3.32500 3.61000 5.42400

Menggunakan fungsi IQR(), maka command sebagai berikut :

IQR = IQR(mtcars$wt)
IQR 
## [1] 1.02875

Berdasarkan hasil perhitungan diperoleh nilai IQR sebesar 1,02875.

  1. Varian

Varian merupakan jumlah kuadrat deviasi observasi terhadap nilai mean dibagi dengan deraja kebebasannya. Semakin besar nilai varian maka semakin besar sebaran data dari mean. Persamaan 4 merupakan persamaan varian pada sampel.

$$ \[\begin{align} \ S^2 &= \frac {\sum_{i=1}^{n} (X_i - X{X})}{n-1} \end{align}\] $$

Command untuk menghitung varian adalah sebagai berikut:

Pertama mencara nilai rata-rata wt dengan fungsi mean() :

mean.wt = mean(mtcars$wt)
mean.wt 
## [1] 3.21725

Mencara jumlah kuadrat deviasi dengan menggunakan rumus :

jumlah.kuadrat.dev = sum((mtcars$wt-mean.wt)^2)
jumlah.kuadrat.dev 
## [1] 29.67875

Mencari nilai varian dengan rumus :

varian.manual = jumlah.kuadrat.dev / (nrow(mtcars)-1)
varian.manual
## [1] 0.957379

Cara mencari varian dengan fungsi varian() :

varian.fungsi = var(mtcars$wt)
varian.fungsi
## [1] 0.957379

Berdasarkan hasil perhitungan varian berat mobil sebesar 0,957379 x (1000 lbs)^2.

  1. Standar Deviasi

Standar deviasi pada dasarnya adalah akar dari varian yang dihitung berdasarkan Persamaan 5.

$$ \[\begin{align} \ S &=\sqrt \frac {\sum_{i=1}^{n} (X_i - X{X})^2}{n-1} \end{align}\] $$

Command untuk menghitung standar deviasi adalah sebagai berikut:

Mencari varian menggunakan fungsi var() :

varian.fungsi1 = var(mtcars$wt)
varian.fungsi1
## [1] 0.957379

Menghitung standart deviasi dengan manual :

sd.manual = sqrt(varian.fungsi1)
sd.manual
## [1] 0.9784574

Sdangkan untuk menghitung standart deviasi dengan fungsi sd()

sd.fungsi = sd(mtcars$wt)
sd.fungsi
## [1] 0.9784574

Berdasarkan hasil perhitungan diperoleh nilai standar deviasi berat mobil sebesar 0,9784574 x (1000) lbs atau 978,4574 lbs.

Statistika Deskriptif menggunakan fungsi summary()

Pendekatan lain Untuk melihat secara singkat mengenai statistik deskriptif, yaitu variabel mean, median, min, max dan kuartil, kita dapat menggunakan fungsi summary(). Dimana fungsi ini dapat digunakan pada seluruh variabel pada dataset yang mengandung data numerik maupun sebagian variabel pada dataset. Perintah command line pada analisa statistik deskriptif adalah sebagai berikut:

summary(mtcars)
##       mpg             cyl             disp             hp       
##  Min.   :10.40   Min.   :4.000   Min.   : 71.1   Min.   : 52.0  
##  1st Qu.:15.43   1st Qu.:4.000   1st Qu.:120.8   1st Qu.: 96.5  
##  Median :19.20   Median :6.000   Median :196.3   Median :123.0  
##  Mean   :20.09   Mean   :6.188   Mean   :230.7   Mean   :146.7  
##  3rd Qu.:22.80   3rd Qu.:8.000   3rd Qu.:326.0   3rd Qu.:180.0  
##  Max.   :33.90   Max.   :8.000   Max.   :472.0   Max.   :335.0  
##       drat             wt             qsec             vs        
##  Min.   :2.760   Min.   :1.513   Min.   :14.50   Min.   :0.0000  
##  1st Qu.:3.080   1st Qu.:2.581   1st Qu.:16.89   1st Qu.:0.0000  
##  Median :3.695   Median :3.325   Median :17.71   Median :0.0000  
##  Mean   :3.597   Mean   :3.217   Mean   :17.85   Mean   :0.4375  
##  3rd Qu.:3.920   3rd Qu.:3.610   3rd Qu.:18.90   3rd Qu.:1.0000  
##  Max.   :4.930   Max.   :5.424   Max.   :22.90   Max.   :1.0000  
##        am              gear            carb      
##  Min.   :0.0000   Min.   :3.000   Min.   :1.000  
##  1st Qu.:0.0000   1st Qu.:3.000   1st Qu.:2.000  
##  Median :0.0000   Median :4.000   Median :2.000  
##  Mean   :0.4062   Mean   :3.688   Mean   :2.812  
##  3rd Qu.:1.0000   3rd Qu.:4.000   3rd Qu.:4.000  
##  Max.   :1.0000   Max.   :5.000   Max.   :8.000

Atau kita bisa fokus pada satu variabel wt saja, sehingga command line yang digunakan adalah sebagai berikut :

summary(mtcars$wt)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.513   2.581   3.325   3.217   3.610   5.424

Statistika Deskriptif Menggunakan Paket Tidyverse Pembahasan lebih lengkap tentang analisa menggunakan paket tidyverse akan dibahas pada artikel lain dalam blog ini. tidyverse menyediakan sejumlah paket yang berguna untuk melakukan exploratory analysis. Salah satu paket yang digunakan dalam artikel kali ini adalah dplyr yang menyediakan fungsi-fungsi yang berguna dalam melakukan data manipulation. Jika dalam program r belum terinstall instalasi dapa dilakukan dengan mengetikkan command pada console:

install.packages(“tidyverse”)

Analisa statistika deskripti dapat dilakukan dengan menggunakan fungsi summarise(). Pada contoh kasus sebelumnya misalkan kita ingin mengetahui nilai pusat dan sebaran data pada dataset mtcars untuk melihat apakah terdapat perbedaan nilai pemusatan data dan sebaran data pada mobil dengan silinder berbeda. Untuk menjawab kasus tersebut penulis akan memanfaatkan fungsi group_by() untuk mengelompokkan data mobil berdasarkan jumlah silindernya. Command yang digunakan adalah sebagai berikut :

Berdasarkan hasil yang diperoleh dapat dilihat bahwa semakin banyak jumlah silinder pada mobil semakin berat mobil tersebut. Untuk membuktikan apakah nilai rata-rata tersebut berbeda secara signifikan satu sama lain diperlukan analisa lebih lanjut. Berdasarkan data perbandingan media terhadap nilai mean terlihat bahwa distribusi data mobil dengan silinder 4 dan 8 memiliki right-skewed distribution, sedangkan pada mobil dengan silinder 4 memiliki left-skewed distribution. Nilai mean cenderung akan bergeser sesuai dengan arah Panjang ekor distribusi yang terbentuk. Beradasarkan data tersebut diperoleh informasi bahwa sebaran data terbesar adalah pada distribusi mobil dengan silinder 8 yang ditunjukkan oleh nilai standar deviasi yang terbesar.

Referensi

  1. Applied Statistics with R