Modul-modul awal ini akan fokus pada eksplorasi awal dataset, meliputi:
Summary Data: Deskripsi statistik dasar dari dataset untuk memahami karakteristik umum data.
Plot dan Barplot: Visualisasi data untuk mengidentifikasi pola dan distribusi data.
Decile dan Quantile: Analisis distribusi data menggunakan decile dan quantile untuk melihat bagaimana data tersebar.
Autoplot dan QQ Plot: Teknik visualisasi lanjutan untuk mengevaluasi normalitas dan distribusi data.
Uji Statistik: Pengujian statistik seperti skewness, Shapiro-Wilk, dan Shapiro-Francia untuk menguji normalitas data.
Distribusi Normal: Pembahasan tentang distribusi normal dan pentingnya dalam statistik.
Estimasi: Teknik estimasi parameter untuk model statistik.
Hipotesis: Uji hipotesis untuk menentukan signifikansi statistik.
Analisis Varians (ANOVA): Metode untuk membandingkan rata-rata antar kelompok.
Regresi: Analisis regresi untuk memodelkan hubungan antara variabel.
Peramalan: Teknik peramalan untuk memprediksi nilai masa depan berdasarkan data historis.
Dengan menggunakan berbagai metode ini, kami bertujuan untuk mendapatkan pemahaman yang mendalam tentang dataset “ezunem” serta mengembangkan keterampilan analisis data yang komprehensif.
install.packages("wooldridge")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
## (as 'lib' is unspecified)
library(wooldridge)
data("apple", package = "wooldridge")
Modul 1-4 Kita akan membahas dan menganalisis tentang summary data, plot, barplot, decile, quantile, autoplot, QQ plot, serta uji statistik seperti skewness, Shapiro-Wilk, dan Shapiro-Francia dari data apple.
summary(apple)
## id educ date state
## Min. :10002 Min. : 8.00 Length:660 Length:660
## 1st Qu.:10800 1st Qu.:12.00 Class :character Class :character
## Median :11692 Median :14.00 Mode :character Mode :character
## Mean :11729 Mean :14.38
## 3rd Qu.:12600 3rd Qu.:16.00
## Max. :13921 Max. :20.00
## regprc ecoprc inseason hhsize
## Min. :0.5900 Min. :0.590 Min. :0.0000 Min. :1.000
## 1st Qu.:0.5900 1st Qu.:0.890 1st Qu.:0.0000 1st Qu.:2.000
## Median :0.8900 Median :1.090 Median :0.0000 Median :3.000
## Mean :0.8827 Mean :1.082 Mean :0.3364 Mean :2.941
## 3rd Qu.:1.1900 3rd Qu.:1.290 3rd Qu.:1.0000 3rd Qu.:4.000
## Max. :1.1900 Max. :1.590 Max. :1.0000 Max. :9.000
## male faminc age reglbs
## Min. :0.0000 Min. : 5.00 Min. :19.00 Min. : 0.000
## 1st Qu.:0.0000 1st Qu.: 25.00 1st Qu.:33.00 1st Qu.: 0.000
## Median :0.0000 Median : 45.00 Median :43.00 Median : 0.000
## Mean :0.2621 Mean : 53.41 Mean :44.52 Mean : 1.282
## 3rd Qu.:1.0000 3rd Qu.: 65.00 3rd Qu.:53.00 3rd Qu.: 2.000
## Max. :1.0000 Max. :250.00 Max. :88.00 Max. :42.000
## ecolbs numlt5 num5_17 num18_64
## Min. : 0.000 Min. :0.0000 Min. :0.0000 Min. :0.000
## 1st Qu.: 0.000 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:1.000
## Median : 1.000 Median :0.0000 Median :0.0000 Median :2.000
## Mean : 1.474 Mean :0.2864 Mean :0.6212 Mean :1.805
## 3rd Qu.: 2.000 3rd Qu.:0.0000 3rd Qu.:1.0000 3rd Qu.:2.000
## Max. :42.000 Max. :4.0000 Max. :6.0000 Max. :7.000
## numgt64
## Min. :0.0000
## 1st Qu.:0.0000
## Median :0.0000
## Mean :0.2288
## 3rd Qu.:0.0000
## Max. :3.0000
Install Packages
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)
install.packages("forecast")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
## (as 'lib' is unspecified)
library(forecast)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
Memvisualisasikan Eco Price ke Regular Price
plot(apple$ecoprc, main="Price", xlab="Regular Price", ylab="Eco Price")
# 2. Barplot Memvisualisasikan ecolbs
barplot(table(apple$ecolbs), main="Barplot", xlab="Ecolbs", ylab="Frequency")
# 3. Decile Menampilkan desil
deciles <- quantile(apple$reglbs, probs = seq(0, 1, by = 0.1))
deciles
## 0% 10% 20% 30% 40% 50% 60% 70%
## 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 1.666667
## 80% 90% 100%
## 2.000000 3.000000 42.000000
Menampilkan kuantil
quantiles <- quantile(apple$reglbs)
quantiles
## 0% 25% 50% 75% 100%
## 0 0 0 2 42
Plot deret waktu
ts_data <- ts(apple$regprc, frequency = 1)
autoplot(forecast::tsclean(ts_data)) + ggtitle("Autoplot")
# 6. QQ Plot Memeriksa normalitas data.
qqnorm(apple$regprc, main="QQ Plot")
qqline(apple$regprc, col="skyblue")
# 7. Skewness
skewness_regprc <- skewness(apple$regprc)
skewness_regprc
## [1] 0.04444035
Modul 5-10 akan berfokus pada distribusi normal, estimasi, hipotesis, analisis varians atau anova, regresi, dan peramalan.
Kita mulai dulu dari
Dimana disini, saya akan menunjukkan distribusi regular price dan melihat apakah data mengikuti distribusi normal atau tidak. Disini, saya menggunakan histogram
hist(apple$regprc, main="Histogram", xlab="Price", prob=TRUE)
lines(density(apple$regprc), col="skyblue")
Histogram ini menunjukkan distribusi dari variabel `wage`. Garis merah
menunjukkan estimasi kepadatan kernel yang membantu melihat pola
distribusi data.
Disini, saya akan menghitung mean dan standar deviasi dari regular price.
mean_wage <- mean(apple$regprc)
sd_wage <- sd(apple$regprc)
mean_wage
## [1] 0.8827273
sd_wage
## [1] 0.2444687
Kode ini menghitung rata-rata dan standar deviasi dari pbject regular price`. Tujuannya adalah memberikan gambaran tentang lokasi pusat dan penyebaran data.
Uji hipotesis digunakan untuk membuat keputusan berdasarkan data sampel. Saya akan melakukan uji ‘t’ satu sampel untuk memeriksa apakah rata-rata upah regular price berbeda.
t_test_result <- t.test(apple$regprc, mu=10)
t_test_result
##
## One Sample t-test
##
## data: apple$regprc
## t = -958.11, df = 659, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 10
## 95 percent confidence interval:
## 0.8640421 0.9014125
## sample estimates:
## mean of x
## 0.8827273
Uji t ini memeriksa apakah mean object regular price berbeda dari 10. Hasil uji memberikan nilai t, derajat kebebasan, dan nilai p.
ANOVA digunakan untuk membandingkan rata-rata beberapa kelompok. Saya akan menjalankan ANOVA untuk memeriksa apakah terdapat perbedaan signifikan dalam regular price, dengan patokan economy price.
anova_result <- aov(regprc ~ factor(ecoprc), data=apple)
summary(anova_result)
## Df Sum Sq Mean Sq F value Pr(>F)
## factor(ecoprc) 8 39.39 4.923 1.075e+31 <2e-16 ***
## Residuals 651 0.00 0.000
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
ANOVA memeriksa ada tidaknya perbedaan signifikan dalam object regular price berdasarkan patokan economy price. Hasilnya menunjukkan perbedaan yang cukup signifikan antara keduanya.
Regresi bertujuan untuk menjabarkan hubungan antara dua variabel. Saya akan membuat model regresi linear untuk menjabarkan hubungan antara regular dan economy price.
lm_result <- lm(regprc ~ ecoprc, data=apple)
summary(lm_result)
##
## Call:
## lm(formula = regprc ~ ecoprc, data = apple)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.229845 -0.092421 0.001443 0.095306 0.232731
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.13960 0.02012 6.938 9.57e-12 ***
## ecoprc 0.68712 0.01795 38.284 < 2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1362 on 658 degrees of freedom
## Multiple R-squared: 0.6902, Adjusted R-squared: 0.6897
## F-statistic: 1466 on 1 and 658 DF, p-value: < 2.2e-16
Regresi linear ini menjabarkan hubungan antara object regular price dan economy price. Hasilnya memberikan informasi tentang koefisien regresi, nilai t, dan nilai p.
Peramalan adalah teknik untuk memprediksi nilai masa depan berdasarkan data historis. Saya akan menggunakan model ARIMA untuk meramalkan data regular price.
install.packages("forecast")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.4'
## (as 'lib' is unspecified)
library(forecast)
ts_data <- ts(apple$regprc, frequency = 1)
fit <- auto.arima(ts_data)
forecast_result <- forecast(fit, h=10)
plot(forecast_result)
Peramalan ini menggunakan model ARIMA untuk meramalkan regular price.
Hasil plot menunjukkan nilai aktual dan nilai prediksi untuk 10 tahun ke
depan.