Analisis Data dari Package Wooldridge

Author

Ainu Azzaria

Pendahuluan

Dalam era informasi dan teknologi yang berkembang pesat, analisis data menjadi komponen krusial dalam berbagai bidang, termasuk ekonomi, bisnis, dan ilmu sosial. Salah satu alat yang populer digunakan untuk analisis data adalah perangkat lunak statistik R. R menawarkan berbagai packages yang memungkinkan pengguna melakukan berbagai jenis analisis statistik dan visualisasi data. Salah satu paket yang terkenal dalam R adalah `wooldridge`, yang menyediakan berbagai dataset yang sering digunakan dalam analisis ekonomi.

Dalam laporan ini, kita akan menggunakan dataset `wage1` dari packages `wooldridge` untuk melakukan berbagai analisis statistik. Analisis ini meliputi distribusi normal, estimasi, uji hipotesis, analisis varians (ANOVA), regresi linear, dan peramalan. Setiap modul akan dijelaskan secara rinci untuk memberikan gambaran lengkap tentang proses dan hasil analisis.

Install Packages dan Memuat Data

Pastikan Anda telah menginstall dan memuat data dari packages `wooldridge`.

install.packages("wooldridge")
Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
(as 'lib' is unspecified)
library(wooldridge)

data("wage1", package = "wooldridge")

Modul 1 - 4 :

Kita juga akan melakukan berbagai visualisasi data dan uji statistik tambahan untuk mendapatkan pemahaman yang lebih mendalam tentang distribusi dan karakteristik data upah. Visualisasi termasuk summary data, plot, barplot, decile, quantile, autoplot, QQ plot, serta uji statistik seperti skewness, Shapiro-Wilk, dan Shapiro-Francia.

Summary Data

Menampilkan ringkasan statistik dasar dari dataset `wage1`, termasuk rata-rata, median, minimum, maksimum, dan kuantil dari setiap variabel.

summary(wage1)
      wage             educ           exper           tenure      
 Min.   : 0.530   Min.   : 0.00   Min.   : 1.00   Min.   : 0.000  
 1st Qu.: 3.330   1st Qu.:12.00   1st Qu.: 5.00   1st Qu.: 0.000  
 Median : 4.650   Median :12.00   Median :13.50   Median : 2.000  
 Mean   : 5.896   Mean   :12.56   Mean   :17.02   Mean   : 5.105  
 3rd Qu.: 6.880   3rd Qu.:14.00   3rd Qu.:26.00   3rd Qu.: 7.000  
 Max.   :24.980   Max.   :18.00   Max.   :51.00   Max.   :44.000  
    nonwhite          female          married           numdep     
 Min.   :0.0000   Min.   :0.0000   Min.   :0.0000   Min.   :0.000  
 1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.000  
 Median :0.0000   Median :0.0000   Median :1.0000   Median :1.000  
 Mean   :0.1027   Mean   :0.4791   Mean   :0.6084   Mean   :1.044  
 3rd Qu.:0.0000   3rd Qu.:1.0000   3rd Qu.:1.0000   3rd Qu.:2.000  
 Max.   :1.0000   Max.   :1.0000   Max.   :1.0000   Max.   :6.000  
      smsa           northcen         south             west       
 Min.   :0.0000   Min.   :0.000   Min.   :0.0000   Min.   :0.0000  
 1st Qu.:0.0000   1st Qu.:0.000   1st Qu.:0.0000   1st Qu.:0.0000  
 Median :1.0000   Median :0.000   Median :0.0000   Median :0.0000  
 Mean   :0.7224   Mean   :0.251   Mean   :0.3555   Mean   :0.1692  
 3rd Qu.:1.0000   3rd Qu.:0.750   3rd Qu.:1.0000   3rd Qu.:0.0000  
 Max.   :1.0000   Max.   :1.000   Max.   :1.0000   Max.   :1.0000  
    construc          ndurman          trcommpu           trade       
 Min.   :0.00000   Min.   :0.0000   Min.   :0.00000   Min.   :0.0000  
 1st Qu.:0.00000   1st Qu.:0.0000   1st Qu.:0.00000   1st Qu.:0.0000  
 Median :0.00000   Median :0.0000   Median :0.00000   Median :0.0000  
 Mean   :0.04563   Mean   :0.1141   Mean   :0.04373   Mean   :0.2871  
 3rd Qu.:0.00000   3rd Qu.:0.0000   3rd Qu.:0.00000   3rd Qu.:1.0000  
 Max.   :1.00000   Max.   :1.0000   Max.   :1.00000   Max.   :1.0000  
    services         profserv         profocc          clerocc      
 Min.   :0.0000   Min.   :0.0000   Min.   :0.0000   Min.   :0.0000  
 1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.:0.0000  
 Median :0.0000   Median :0.0000   Median :0.0000   Median :0.0000  
 Mean   :0.1008   Mean   :0.2586   Mean   :0.3669   Mean   :0.1673  
 3rd Qu.:0.0000   3rd Qu.:1.0000   3rd Qu.:1.0000   3rd Qu.:0.0000  
 Max.   :1.0000   Max.   :1.0000   Max.   :1.0000   Max.   :1.0000  
    servocc           lwage            expersq          tenursq       
 Min.   :0.0000   Min.   :-0.6349   Min.   :   1.0   Min.   :   0.00  
 1st Qu.:0.0000   1st Qu.: 1.2030   1st Qu.:  25.0   1st Qu.:   0.00  
 Median :0.0000   Median : 1.5369   Median : 182.5   Median :   4.00  
 Mean   :0.1407   Mean   : 1.6233   Mean   : 473.4   Mean   :  78.15  
 3rd Qu.:0.0000   3rd Qu.: 1.9286   3rd Qu.: 676.0   3rd Qu.:  49.00  
 Max.   :1.0000   Max.   : 3.2181   Max.   :2601.0   Max.   :1936.00  

Install Packages

Pastikan Anda telah menginstall packages `ggplot2`, `moments` dan `nortest`

install.packages("ggplot2")
Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
(as 'lib' is unspecified)
library(ggplot2)

install.packages("moments")
Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
(as 'lib' is unspecified)
library(moments)

install.packages("nortest")
Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
(as 'lib' is unspecified)
library(nortest)

1. Plot

Plot sederhana untuk memvisualisasikan data upah.

plot(wage1$wage, main="Plot Upah", xlab="Indeks", ylab="Upah")

2. Barplot

Barplot untuk memvisualisasikan frekuensi tingkat pendidikan.

barplot(table(wage1$educ), main="Barplot Tingkat Pendidikan", xlab="Tingkat Pendidikan", ylab="Frekuensi")

3. Decile

Menampilkan desil (nilai yang membagi data menjadi sepuluh bagian yang sama).

deciles <- quantile(wage1$wage, probs = seq(0, 1, by = 0.1))
deciles
   0%   10%   20%   30%   40%   50%   60%   70%   80%   90%  100% 
 0.53  2.92  3.13  3.50  4.05  4.65  5.70  6.34  8.02 10.00 24.98 

4. Quantile

Menampilkan kuantil (nilai yang membagi data menjadi empat bagian yang sama).

quantiles <- quantile(wage1$wage)
quantiles
   0%   25%   50%   75%  100% 
 0.53  3.33  4.65  6.88 24.98 

5. Autoplot

Plot deret waktu dari data upah.

ts_data <- ts(wage1$wage, frequency = 1)
autoplot(forecast::tsclean(ts_data)) + ggtitle("Autoplot Upah")
Registered S3 method overwritten by 'quantmod':
  method            from
  as.zoo.data.frame zoo 

6. QQ Plot

QQ Plot untuk memeriksa normalitas data.

qqnorm(wage1$wage, main="QQ Plot Upah")
qqline(wage1$wage, col="red")

7. Skewness

Menghitung skewness (kemencengan) dari data upah.

skewness_wage <- skewness(wage1$wage)
skewness_wage
[1] 2.007325

8. Uji Saphiro-Wilk

Uji statistik untuk memeriksa normalitas data.

shapiro_test <- shapiro.test(wage1$wage)
shapiro_test

    Shapiro-Wilk normality test

data:  wage1$wage
W = 0.80273, p-value < 2.2e-16

9. Uji Saphiro-Francia

Uji statistik untuk memeriksa normalitas data, mirip dengan Shapiro-Wilk.

shapiro_francia_test <- sf.test(wage1$wage)
shapiro_francia_test

    Shapiro-Francia normality test

data:  wage1$wage
W = 0.8019, p-value < 2.2e-16

Modul 5:

1. Distribusi Normal

Distribusi normal adalah konsep dasar dalam statistik yang menggambarkan bagaimana data tersebar di sekitar rata-rata. Dalam modul ini, kita akan memvisualisasikan distribusi upah menggunakan histogram dan estimasi kepadatan kernel untuk melihat apakah data mengikuti distribusi normal.

Menggunakan dataset `wage1` dari packages `wooldridge` sebagai contoh. Kita akan melihat distribusi dari variabel `wage`.

hist(wage1$wage, main="Histogram Upah", xlab="Upah", prob=TRUE)
lines(density(wage1$wage), col="red")

Histogram ini menunjukkan distribusi dari variabel `wage`. Garis merah menunjukkan estimasi kepadatan kernel yang membantu melihat pola distribusi data.

Modul 6:

1. Estimasi

Estimasi adalah proses untuk menghitung parameter statistik dari sampel data. Kita akan menghitung rata-rata dan standar deviasi dari variabel upah untuk mendapatkan gambaran tentang pusat dan penyebaran data.

Menghitung rata-rata dan standar deviasi dari variabel `wage`.

mean_wage <- mean(wage1$wage)
sd_wage <- sd(wage1$wage)
mean_wage
[1] 5.896103
sd_wage
[1] 3.693086

Kode ini menghitung rata-rata (`mean`) dan standar deviasi (`sd`) dari variabel `wage`. Ini memberikan gambaran mengenai lokasi pusat dan penyebaran data.

Modul 7:

1. Hipotesis

Uji hipotesis digunakan untuk membuat keputusan berdasarkan data sampel. Kita akan melakukan uji t satu sampel untuk memeriksa apakah rata-rata upah berbeda secara signifikan dari nilai tertentu.

Melakukan uji t satu sampel untuk memeriksa apakah rata-rata variabel `wage` berbeda signifikan dari 10.

t_test_result <- t.test(wage1$wage, mu=10)
t_test_result

    One Sample t-test

data:  wage1$wage
t = -25.486, df = 525, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 10
95 percent confidence interval:
 5.579768 6.212437
sample estimates:
mean of x 
 5.896103 

Uji t satu sampel ini memeriksa apakah rata-rata variabel `wage` secara signifikan berbeda dari 10. Hasil uji memberikan nilai t, derajat kebebasan, dan nilai p.

Modul 8:

1. Analisis Varians

ANOVA digunakan untuk membandingkan rata-rata beberapa kelompok. Dalam modul ini, kita akan melakukan ANOVA untuk memeriksa apakah terdapat perbedaan signifikan dalam upah berdasarkan tingkat pendidikan.

Melakukan ANOVA untuk memeriksa perbedaan upah berdasarkan tingkat pendidikan (variabel `educ`).

anova_result <- aov(wage ~ factor(educ), data=wage1)
summary(anova_result)
              Df Sum Sq Mean Sq F value Pr(>F)    
factor(educ)  17   1604   94.33   8.623 <2e-16 ***
Residuals    508   5557   10.94                   
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Analisis Varians ini memeriksa apakah ada perbedaan signifikan dalam variabel `wage` berdasarkan tingkat pendidikan (`educ`). Hasilnya menunjukkan F-statistik dan nilai p untuk memeriksa perbedaan antara kelompok pendidikan.

Modul 9:

1. Regresi

Regresi linear digunakan untuk memodelkan hubungan antara dua variabel. Kita akan membuat model regresi linear sederhana untuk memeriksa hubungan antara upah dan pendidikan.

Membuat model regresi linear antara variabel `wage` dan `educ`.

lm_result <- lm(wage ~ educ, data=wage1)
summary(lm_result)

Call:
lm(formula = wage ~ educ, data = wage1)

Residuals:
    Min      1Q  Median      3Q     Max 
-5.3396 -2.1501 -0.9674  1.1921 16.6085 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.90485    0.68497  -1.321    0.187    
educ         0.54136    0.05325  10.167   <2e-16 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 3.378 on 524 degrees of freedom
Multiple R-squared:  0.1648,    Adjusted R-squared:  0.1632 
F-statistic: 103.4 on 1 and 524 DF,  p-value: < 2.2e-16

Regresi linear ini memodelkan hubungan antara variabel `wage` dan `educ`. Hasilnya memberikan informasi tentang koefisien regresi, nilai t, dan nilai p.

Modul 10:

1. Peramalan

Peramalan adalah teknik untuk memprediksi nilai masa depan berdasarkan data historis. Kita akan menggunakan model ARIMA untuk meramalkan data upah sebagai simulasi data deret waktu.

Install Packages

Pastikan Anda telah menginstall packages `forecast`.

install.packages("forecast")
Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
(as 'lib' is unspecified)
library(forecast)

Untuk peramalan, kita akan membuat simulasi data deret waktu dari variabel `wage`.

ts_data <- ts(wage1$wage, frequency = 1)

fit <- auto.arima(ts_data)
forecast_result <- forecast(fit, h=10)
plot(forecast_result)

Peramalan ini menggunakan model ARIMA otomatis untuk data deret waktu dari variabel `wage`. Hasil plot menunjukkan nilai aktual dan nilai prediksi dengan interval kepercayaan untuk 10 periode mendatang.