# install dulu kalau belum
install.packages("readxl")
## Warning: package 'readxl' is in use and will not be installed
library(readxl)
# baca file
datastat2 <- read_excel("C:/Users/Acer/OneDrive/Documents/konsultasi statistika/Data_Studi_Kasus_Konsultasi_Statistika.xlsx",sheet = "Data 2")
datastat2
## # A tibble: 51 × 15
## X1.1 X1.2 X1.3 X1.4 X2.1 X2.2 X2.3 X2.4 X2.5 Y1.1 Y1.2 Y1.3 Z1.1
## <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 2 2 3 4 1 1 2 3 1 1 2 4 2
## 2 2 1 1 3 1 1 2 3 1 1 1 4 4
## 3 4 4 2 3 1 1 1 2 1 1 1 4 4
## 4 2 2 1 2 1 1 2 3 3 1 1 3 2
## 5 3 1 1 1 1 1 1 1 1 1 1 4 4
## 6 2 2 1 1 1 1 1 1 1 1 1 4 4
## 7 1 2 3 3 2 1 3 3 3 2 2 4 2
## 8 2 1 1 1 1 1 1 1 1 1 1 4 2
## 9 2 1 3 3 1 1 1 1 2 1 3 3 2
## 10 3 3 4 3 2 1 3 1 3 3 3 4 2
## # ℹ 41 more rows
## # ℹ 2 more variables: Z1.2 <dbl>, Z1.3 <dbl>
# gabungkan variabel
# X1 (Disiplin Kerja)
datastat2$X1 <- rowMeans(datastat2[, c("X1.1","X1.2","X1.3","X1.4")], na.rm = TRUE)
# X2 (Emotional Quotient)
datastat2$X2 <- rowMeans(datastat2[, c("X2.1","X2.2","X2.3","X2.4","X2.5")], na.rm = TRUE)
# X3 (Kepuasan Kerja)
datastat2$X3 <- rowMeans(datastat2[, c("Z1.1","Z1.2","Z1.3")], na.rm = TRUE)
# Y (Kinerja)
datastat2$Y <- rowMeans(datastat2[, c("Y1.1","Y1.2","Y1.3")], na.rm = TRUE)
# Regresi Linear Berganda
model_no2 <- lm(Y ~ X1 + X2 + X3, data = datastat2)
summary(model_no2)
##
## Call:
## lm(formula = Y ~ X1 + X2 + X3, data = datastat2)
##
## 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
# Anova
anova_no2 <- aov(model_no2)
summary(anova_no2)
## 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
datastat3 <- read_excel("C:/Users/Acer/OneDrive/Documents/konsultasi statistika/Data_Studi_Kasus_Konsultasi_Statistika.xlsx",sheet = "Data 3")
datastat3
## # A tibble: 216 × 2
## Waktu `Data Inflasi`
## <dttm> <dbl>
## 1 2026-01-03 00:00:00 0.0868
## 2 2026-02-03 00:00:00 0.076
## 3 2026-03-03 00:00:00 0.0717
## 4 2026-04-03 00:00:00 0.0762
## 5 2026-05-03 00:00:00 0.0715
## 6 2026-06-03 00:00:00 0.0698
## 7 2026-07-03 00:00:00 0.0627
## 8 2026-08-03 00:00:00 0.0651
## 9 2026-09-03 00:00:00 0.0633
## 10 2026-10-03 00:00:00 0.0648
## # ℹ 206 more rows
# Bersihkan Data (% → numeric)
datastat3$Inflasi <- as.numeric(gsub("%", "", datastat3$`Data Inflasi`))
# Ubah ke Time Series
inflasi3 <- ts(datastat3$Inflasi, start = c(2003,1), frequency = 12)
# plot
plot(inflasi3, main = "Inflasi Bulanan", ylab = "Inflasi (%)")
# Dekomposisi
decomp <- decompose(inflasi3)
plot(decomp)
# Model ARIMA
library(forecast)
## Registered S3 method overwritten by 'quantmod':
## method from
## as.zoo.data.frame zoo
model_arima <- auto.arima(inflasi3)
summary(model_arima)
## Series: inflasi3
## 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 1 Tahun
forecast_1tahun <- forecast(model_arima, h = 12)
plot(forecast_1tahun)
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
# MAE & MAPE
train <- window(inflasi3, end = c(2019,12))
test <- window(inflasi3, start = c(2020,1))
model <- auto.arima(train)
pred <- forecast(model, h = length(test))
mae <- mean(abs(pred$mean - test))
mape <- mean(abs((pred$mean - test)/test)) * 100
mae
## [1] 0.01183228
mape
## [1] 74.68122