Dokumen ini berisi analisis tiga studi kasus statistika menggunakan metode ANOVA, regresi linear berganda, dan time series.
# package yang digunakan
library(readxl)
# Studi kasus nomor 1
# menggunakan anova two-way
# 1. INPUT & PREPROCESSING DATA
# Import data
data_no_1 <- read_xlsx("/Users/M.Fabian.R.D/Desktop/SEMESTER 6/KONSULTASI STATISTIKA/PERTEMUAN 5/Data Studi Kasus-Konsultasi Statistika.xlsx", sheet = 1)
# Ubah ke faktor
data_no_1$Perlakuan <- as.factor(data_no_1$Perlakuan)
data_no_1$Waktu <- as.factor(data_no_1$Waktu)
# Warna
model_warna <- aov(Warna ~ Perlakuan * Waktu, data = data_no_1)
summary(model_warna)
## Df Sum Sq Mean Sq F value Pr(>F)
## Perlakuan 3 1.9578 0.6526 23.071 4.71e-06 ***
## Waktu 1 0.0852 0.0852 3.012 0.102
## Perlakuan:Waktu 3 0.0545 0.0182 0.643 0.599
## Residuals 16 0.4526 0.0283
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Aroma
model_aroma <- aov(Aroma ~ Perlakuan * Waktu, data = data_no_1)
summary(model_aroma)
## Df Sum Sq Mean Sq F value Pr(>F)
## Perlakuan 3 1.9388 0.6463 16.838 3.32e-05 ***
## Waktu 1 0.0400 0.0400 1.043 0.322
## Perlakuan:Waktu 3 0.0126 0.0042 0.109 0.953
## Residuals 16 0.6141 0.0384
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Rasa
model_rasa <- aov(Rasa ~ Perlakuan * Waktu, data = data_no_1)
summary(model_rasa)
## Df Sum Sq Mean Sq F value Pr(>F)
## Perlakuan 3 1.7342 0.5781 19.532 1.35e-05 ***
## Waktu 1 0.0840 0.0840 2.839 0.111
## Perlakuan:Waktu 3 0.0258 0.0086 0.290 0.832
## Residuals 16 0.4735 0.0296
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# Tekstur
model_tekstur <- aov(Tekstur ~ Perlakuan * Waktu, data = data_no_1)
summary(model_tekstur)
## Df Sum Sq Mean Sq F value Pr(>F)
## Perlakuan 3 2.3145 0.7715 20.831 9e-06 ***
## Waktu 1 0.0353 0.0353 0.952 0.344
## Perlakuan:Waktu 3 0.1548 0.0516 1.393 0.281
## Residuals 16 0.5926 0.0370
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# INPUT & PREPROCESSING DATA
# Import data
data_no_2 <- read_xlsx("/Users/M.Fabian.R.D/Desktop/SEMESTER 6/KONSULTASI STATISTIKA/PERTEMUAN 5/Data Studi Kasus-Konsultasi Statistika.xlsx", sheet = 2)
# Pengerjaan soal
# Gabungkan data menjadi 1 (Langkah 1)
# X1 (Disiplin Kerja)
data_no_2$X1 <- rowMeans(data_no_2[, c("X1.1","X1.2","X1.3","X1.4")])
# X2 (Emotional Quotient)
data_no_2$X2 <- rowMeans(data_no_2[, c("X2.1","X2.2","X2.3","X2.4","X2.5")])
# X3 (Kepuasan Kerja)
data_no_2$X3 <- rowMeans(data_no_2[, c("Z1.1","Z1.2","Z1.3")]) # ini asumsi X3 ya (dari tabel kamu)
# Y (Kinerja)
data_no_2$Y <- rowMeans(data_no_2[, c("Y1.1","Y1.2","Y1.3")])
# (Langkah 2)
model_no_2 <- lm(Y ~ X1 + X2 + X3, data = data_no_2)
summary(model_no_2)
##
## Call:
## lm(formula = Y ~ X1 + X2 + X3, data = data_no_2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.49480 -0.23221 -0.00473 0.21474 1.00696
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.8712 0.5325 3.514 0.000987 ***
## X1 0.1284 0.1121 1.146 0.257650
## X2 0.1987 0.1449 1.371 0.176753
## X3 -0.1073 0.1516 -0.708 0.482429
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.5036 on 47 degrees of freedom
## Multiple R-squared: 0.1258, Adjusted R-squared: 0.06996
## F-statistic: 2.254 on 3 and 47 DF, p-value: 0.09439
# (Langkah 3) Anova
anova_no_2 <- aov(model_no_2)
summary(anova_no_2)
## Df Sum Sq Mean Sq F value Pr(>F)
## X1 1 0.821 0.8209 3.237 0.0784 .
## X2 1 0.767 0.7667 3.023 0.0886 .
## X3 1 0.127 0.1271 0.501 0.4824
## Residuals 47 11.919 0.2536
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# INPUT & PREPROCESSING DATA
# Import data
data_no_3 <- read_xlsx("/Users/M.Fabian.R.D/Desktop/SEMESTER 6/KONSULTASI STATISTIKA/PERTEMUAN 5/Data Studi Kasus-Konsultasi Statistika.xlsx",
sheet = 3)
# Ambil kolom inflasi saja (Langkah 1)
inflasi <- as.numeric(gsub("%", "", data_no_3$`Data Inflasi`))
# Ubah ke time series (UNIVARIATE)
ts_inflasi <- ts(inflasi, start = c(2003,1), frequency = 12)
# Plot data
plot(ts_inflasi, main = "Data Inflasi Bulanan", ylab = "Inflasi", xlab = "Tahun")
# UJI STASIONER (ADF TEST) (Langkah 2)
library(tseries)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
adf.test(ts_inflasi)
##
## Augmented Dickey-Fuller Test
##
## data: ts_inflasi
## Dickey-Fuller = -3.5936, Lag order = 5, p-value = 0.03499
## alternative hypothesis: stationary
# Jika tidak stasioner → differencing
ts_diff <- diff(ts_inflasi)
adf.test(ts_diff)
## Warning in adf.test(ts_diff): p-value smaller than printed p-value
##
## Augmented Dickey-Fuller Test
##
## data: ts_diff
## Dickey-Fuller = -5.6998, Lag order = 5, p-value = 0.01
## alternative hypothesis: stationary
# PEMODELAN ARIMA (Langkah 3)
library(forecast)
## Warning: package 'forecast' was built under R version 4.4.3
model_arima <- auto.arima(ts_inflasi)
summary(model_arima)
## Series: ts_inflasi
## ARIMA(2,1,0)(0,0,1)[12] with drift
##
## Coefficients:
## ar1 ar2 sma1 drift
## 0.1362 -0.1451 -0.8150 -3e-04
## s.e. 0.0678 0.0680 0.0548 2e-04
##
## sigma^2 = 6.291e-05: log likelihood = 730.31
## AIC=-1450.62 AICc=-1450.33 BIC=-1433.76
##
## Training set error measures:
## ME RMSE MAE MPE MAPE MASE
## Training set 0.000142688 0.007839273 0.004000209 -1.026325 7.018252 0.1334602
## ACF1
## Training set 0.005910675
# FORECAST 12 BULAN KE DEPAN (Langkah 4)
forecast_1tahun <- forecast(model_arima, h = 12)
# Plot hasil forecast
plot(forecast_1tahun, main = "Forecast Inflasi 1 Tahun ke Depan")
# Tampilkan hasil
forecast_1tahun
## Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
## Jan 2021 0.01866747 0.0085016348 0.02883331 0.003120167 0.03421477
## Feb 2021 0.01632108 0.0009343061 0.03170785 -0.007210958 0.03985311
## Mar 2021 0.01500957 -0.0034861993 0.03350534 -0.013277269 0.04329641
## Apr 2021 0.01308146 -0.0078911978 0.03405412 -0.018993453 0.04515638
## May 2021 0.01268192 -0.0105626224 0.03592647 -0.022867542 0.04823139
## Jun 2021 0.01462941 -0.0107129541 0.03997177 -0.024128390 0.05338721
## Jul 2021 0.01879307 -0.0084826628 0.04606881 -0.022921565 0.06050771
## Aug 2021 0.01997370 -0.0091030219 0.04905042 -0.024495309 0.06444271
## Sep 2021 0.02068821 -0.0100841974 0.05146063 -0.026374128 0.06775056
## Oct 2021 0.02109605 -0.0112839027 0.05347599 -0.028424812 0.07061690
## Nov 2021 0.02026387 -0.0136475820 0.05417532 -0.031599220 0.07212696
## Dec 2021 0.02018462 -0.0151920547 0.05556130 -0.033919337 0.07428858
# EVALUASI MODEL (MAE & MAPE) (langkah 5)
# Fitted value
fitted_val <- fitted(model_arima)
# MAE
MAE <- mean(abs(ts_inflasi - fitted_val), na.rm = TRUE)
# MAPE
MAPE <- mean(abs((ts_inflasi - fitted_val) / ts_inflasi), na.rm = TRUE) * 100
# Output
MAE
## [1] 0.004000209
MAPE
## [1] 7.018252