library(wooldridge)
data("alcohol")
head(alcohol)
## abuse status unemrate age educ married famsize white exhealth vghealth
## 1 1 1 4.0 50 4 1 1 1 0 0
## 2 0 3 4.0 37 12 1 5 1 0 0
## 3 0 3 4.0 53 9 1 3 1 1 0
## 4 0 3 3.3 59 11 1 1 1 1 0
## 5 0 3 3.3 43 10 1 1 1 1 0
## 6 0 3 3.3 38 10 1 1 1 1 0
## goodhealth fairhealth northeast midwest south centcity outercity qrt1 qrt2
## 1 0 0 0 1 0 0 0 1 0
## 2 1 0 0 1 0 0 0 1 0
## 3 0 0 0 1 0 0 0 1 0
## 4 0 0 1 0 0 1 0 1 0
## 5 0 0 1 0 0 1 0 1 0
## 6 0 0 1 0 0 1 0 1 0
## qrt3 beertax cigtax ethanol mothalc fathalc livealc inwf employ agesq
## 1 0 0.334 38 2.03946 0 0 0 0 0 2500
## 2 0 0.334 38 2.03946 0 0 0 1 1 1369
## 3 0 0.334 38 2.03946 0 0 0 1 1 2809
## 4 0 0.240 26 2.44998 0 0 0 1 1 3481
## 5 0 0.240 26 2.44998 0 1 1 1 1 1849
## 6 0 0.240 26 2.44998 0 0 0 1 1 1444
## beertaxsq cigtaxsq ethanolsq educsq
## 1 0.111556 1444 4.159397 16
## 2 0.111556 1444 4.159397 144
## 3 0.111556 1444 4.159397 81
## 4 0.057600 676 6.002402 121
## 5 0.057600 676 6.002402 100
## 6 0.057600 676 6.002402 100
Modul ini memuat data packages “wooldridge” dan menampilkan 6 baris pertama dari data “alcohol” yang mana berguna untuk mengetahui gambaran awal tentang isi data.
# Menghasilkan ringkasan data untuk dataset 'alcohol'
summary(alcohol)
## abuse status unemrate age
## Min. :0.00000 Min. :1.000 Min. : 2.800 Min. :25.00
## 1st Qu.:0.00000 1st Qu.:3.000 1st Qu.: 4.300 1st Qu.:31.00
## Median :0.00000 Median :3.000 Median : 5.300 Median :38.00
## Mean :0.09917 Mean :2.829 Mean : 5.569 Mean :39.18
## 3rd Qu.:0.00000 3rd Qu.:3.000 3rd Qu.: 6.700 3rd Qu.:46.00
## Max. :1.00000 Max. :3.000 Max. :10.900 Max. :59.00
## educ married famsize white
## Min. : 0.00 Min. :0.0000 Min. : 1.000 Min. :0.0000
## 1st Qu.:12.00 1st Qu.:1.0000 1st Qu.: 1.000 1st Qu.:1.0000
## Median :13.00 Median :1.0000 Median : 3.000 Median :1.0000
## Mean :13.31 Mean :0.8164 Mean : 2.741 Mean :0.8531
## 3rd Qu.:16.00 3rd Qu.:1.0000 3rd Qu.: 4.000 3rd Qu.:1.0000
## Max. :19.00 Max. :1.0000 Max. :13.000 Max. :1.0000
## exhealth vghealth goodhealth fairhealth
## Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. :0.00000
## 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.00000
## Median :0.0000 Median :0.0000 Median :0.0000 Median :0.00000
## Mean :0.4159 Mean :0.3019 Mean :0.2053 Mean :0.05345
## 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:0.0000 3rd Qu.:0.00000
## Max. :1.0000 Max. :1.0000 Max. :1.0000 Max. :1.00000
## northeast midwest south centcity
## Min. :0.000 Min. :0.0000 Min. :0.0000 Min. :0.0000
## 1st Qu.:0.000 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:0.0000
## Median :0.000 Median :0.0000 Median :0.0000 Median :0.0000
## Mean :0.203 Mean :0.2656 Mean :0.3183 Mean :0.3332
## 3rd Qu.:0.000 3rd Qu.:1.0000 3rd Qu.:1.0000 3rd Qu.:1.0000
## Max. :1.000 Max. :1.0000 Max. :1.0000 Max. :1.0000
## outercity qrt1 qrt2 qrt3
## 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.4349 Mean :0.2546 Mean :0.2527 Mean :0.2428
## 3rd Qu.:1.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
## beertax cigtax ethanol mothalc
## Min. :0.045 Min. : 2.00 Min. :1.035 Min. :0.00000
## 1st Qu.:0.145 1st Qu.:13.00 1st Qu.:1.798 1st Qu.:0.00000
## Median :0.259 Median :20.00 Median :2.016 Median :0.00000
## Mean :0.426 Mean :17.96 Mean :2.036 Mean :0.04042
## 3rd Qu.:0.446 3rd Qu.:23.00 3rd Qu.:2.390 3rd Qu.:0.00000
## Max. :2.370 Max. :38.00 Max. :4.017 Max. :1.00000
## fathalc livealc inwf employ
## Min. :0.0000 Min. :0.0000 Min. :0.0000 Min. :0.0000
## 1st Qu.:0.0000 1st Qu.:0.0000 1st Qu.:1.0000 1st Qu.:1.0000
## Median :0.0000 Median :0.0000 Median :1.0000 Median :1.0000
## Mean :0.1543 Mean :0.1881 Mean :0.9304 Mean :0.8982
## 3rd Qu.:0.0000 3rd Qu.:0.0000 3rd Qu.:1.0000 3rd Qu.:1.0000
## Max. :1.0000 Max. :1.0000 Max. :1.0000 Max. :1.0000
## agesq beertaxsq cigtaxsq ethanolsq
## Min. : 625 Min. :0.002025 Min. : 4.0 Min. : 1.071
## 1st Qu.: 961 1st Qu.:0.021025 1st Qu.: 169.0 1st Qu.: 3.231
## Median :1444 Median :0.067081 Median : 400.0 Median : 4.062
## Mean :1628 Mean :0.378427 Mean : 375.3 Mean : 4.286
## 3rd Qu.:2116 3rd Qu.:0.198916 3rd Qu.: 529.0 3rd Qu.: 5.714
## Max. :3481 Max. :5.616899 Max. :1444.0 Max. :16.134
## educsq
## Min. : 0.0
## 1st Qu.:144.0
## Median :169.0
## Mean :185.5
## 3rd Qu.:256.0
## Max. :361.0
Modul mengenai Fungsi summary ini memberikan ringkasan statistik dasar untuk setiap variabel dalam dataset alcohol seperti nilai minimum, maksimum, rata-rata (mean), median, kuartil (Q1 dan Q3).
# Membuat barplot untuk variabel 'famsize'
barplot(table(alcohol$famsize), main = "Barplot of Family Size", xlab = "Family Size", ylab = "Frequency", col = "blue")
Modul ini membuat barplot untuk variabel famsize menggunakan fungsi table untuk menghitung frekuensi kategori dan fungsi barplot untuk memvisualisasikannya, barplot ini menampilkan jumlah kejadian untuk setiap ukuran keluarga
# Membuat histogram untuk variabel numerik tertentu, contohnya age
hist(alcohol$age, main = "Histogram of Age", xlab = "Age", ylab = "Frequency", col = "blue")
Modul ini membuat histogram dari variabel “age” dalam dataset alcohol, menunjukkan distribusi frekuensi nilai-nilai variabel tersebut.
# Memeriksa ukuran sampel untuk variabel yang besar
sample_size <- length(na.omit(alcohol$unemrate))
# Jika ukuran sampel lebih dari 5000, ambil subset acak
if (sample_size > 5000) {
set.seed(123) # Untuk reproducibility
sample_indices <- sample(seq_len(sample_size), size = 5000)
subset_data <- alcohol$unemrate[sample_indices]
} else {
subset_data <- na.omit(alcohol$unemrate)
}
Karena variabel unemrate memiliki lebih dari 5000 yang mana tidak sesuai dengan syarat uji shapiro maka dengan fungsi diatas dapat diambil maximal 5000 sample acak.
# Membuat histogram dengan distribusi normal untuk variabel unemrate
hist(subset_data, prob = TRUE, main = "Histogram of Unemployment Rate with Normal Distribution", xlab = "Unemployment Rate")
lines(density(subset_data, na.rm = TRUE), col = "blue")
curve(dnorm(x, mean = mean(subset_data, na.rm = TRUE), sd = sd(subset_data, na.rm = TRUE)), add = TRUE, col = "red")
# Uji normalitas Shapiro-Wilk pada subset data
shapiro.test(subset_data)
##
## Shapiro-Wilk normality test
##
## data: subset_data
## W = 0.93916, p-value < 2.2e-16
Modul ini menggambarkan distribusi normal dari variabel unemrate dalam dataset alcohol. Kurva distribusi normal ditambahkan menggunakan fungsi curve yang menampilkan distribusi normal berdasarkan mean dan standar deviasi dari unemrate. Uji normalitas dilakukan dengan fungsi shapiro.test, yang memeriksa apakah distribusi data unemrate mendekati distribusi normal.
# Menghitung rata-rata dan deviasi standar dari variabel age
mean_age <- mean(alcohol$age, na.rm = TRUE)
sd_age <- sd(alcohol$age, na.rm = TRUE)
# Interval kepercayaan untuk mean age
t.test(alcohol$age)$conf.int
## [1] 38.98511 39.36635
## attr(,"conf.level")
## [1] 0.95
Modul ini menghitung rata-rata dan deviasi standar dari variabel age serta interval kepercayaan 95% untuk rata-rata tersebut. Ini memberikan informasi tentang nilai rata-rata age, sebaran data, dan rentang di mana rata-rata populasi kemungkinan berada.
# Uji hipotesis: apakah mean dari variabel age berbeda secara signifikan dari 30?
t.test(alcohol$age, mu = 30)
##
## One Sample t-test
##
## data: alcohol$age
## t = 94.356, df = 9821, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 30
## 95 percent confidence interval:
## 38.98511 39.36635
## sample estimates:
## mean of x
## 39.17573
Modul ini menguji hipotesis apakah rata-rata variabel “age” berbeda secara signifikan dari 30. Jika p-value lebih kecil dari 0.05, kita menolak hipotesis nol dan menyimpulkan bahwa rata-rata age berbeda secara signifikan dari 30. Interval kepercayaan menunjukkan rentang nilai di mana kita yakin bahwa rata-rata populasi berada.
# Load dataset
library(wooldridge)
data("alcohol")
# Membuat model ANOVA untuk variabel 'famsize' terhadap 'ethanol'
anova_result <- aov(ethanol ~ famsize, data = alcohol)
summary(anova_result)
## Df Sum Sq Mean Sq F value Pr(>F)
## famsize 1 5.2 5.159 36.49 1.59e-09 ***
## Residuals 9820 1388.3 0.141
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Modul ini melakukan analisis varians (ANOVA) untuk mengevaluasi pengaruh ukuran keluarga (famsize) terhadap konsumsi etanol (ethanol) dalam dataset alcohol. Jika p-value lebih kecil dari 0.05, kita menolak hipotesis nol dan menyimpulkan bahwa ada perbedaan signifikan dalam konsumsi etanol berdasarkan ukuran keluarga.
# Membuat model regresi linear sederhana memprediksi 'ethanolsq' berdasarkan 'age'
lm_model <- lm(ethanolsq ~ age, data = alcohol)
# Menampilkan ringkasan model regresi
summary(lm_model)
##
## Call:
## lm(formula = ethanolsq ~ age, data = alcohol)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.2337 -1.0576 -0.2266 1.4204 11.8738
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 4.336542 0.071961 60.262 <2e-16 ***
## age -0.001288 0.001784 -0.722 0.47
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.704 on 9820 degrees of freedom
## Multiple R-squared: 5.311e-05, Adjusted R-squared: -4.872e-05
## F-statistic: 0.5216 on 1 and 9820 DF, p-value: 0.4702
Modul ini membuat model regresi linear untuk memprediksi ethanolsq berdasarkan age. Koefisien regresi menunjukkan perubahan rata-rata dalam ethanolsq untuk setiap unit peningkatan dalam age. R-squared mengukur proporsi variabilitas dalam ethanolsq yang dapat dijelaskan oleh age. P-value untuk koefisien regresi menunjukkan signifikansi statistik hubungan antara age dan ethanolsq, dengan p-value yang rendah mengindikasikan hubungan yang signifikan secara statistik.
model_forecast <- lm(ethanolsq ~ age, data = alcohol)
# Membuat prediksi untuk tahun 2024 dan 2025
future_years <- data.frame(age = c(2024, 2025)) # Gantilah dengan variabel yang sesuai jika 'age' tidak relevan
forecast <- predict(model_forecast, newdata = future_years)
forecast
## 1 2
## 1.729270 1.727982
Modul ini membuat model regresi linear untuk memprediksi ethanolsq berdasarkan age. Dengan model ini, kita dapat memprediksi nilai ethanolsq untuk tahun 2024 dan 2025 menggunakan fungsi predict. Hasil forecast memberikan estimasi nilai ethanolsq di masa depan berdasarkan model regresi yang dibangun.