# membaca data
library(readxl)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.3     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.5.0     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.0
## ✔ purrr     1.0.2     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(GGally)
## Registered S3 method overwritten by 'GGally':
##   method from   
##   +.gg   ggplot2
library(dplyr)
library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## 
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(stats)
dataAnreg <- read_xlsx("C:/Users/delia/Downloads/DataAnreg.xlsx")
dataAnreg
## # A tibble: 15 × 3
##       no     X     Y
##    <dbl> <dbl> <dbl>
##  1     1     2    54
##  2     2     5    50
##  3     3     7    45
##  4     4    10    37
##  5     5    14    35
##  6     6    19    25
##  7     7    26    20
##  8     8    31    16
##  9     9    34    18
## 10    10    38    13
## 11    11    45     8
## 12    12    52    11
## 13    13    53     8
## 14    14    60     4
## 15    15    65     6
#Eksplorasi Data
ggplot(data=dataAnreg)+
  geom_point(aes(x=X, y=Y),col="red")+
  labs(title = "Scatterplot")

Interpretasi : Scatter plot di atas menunjukkan X dan Y tidak berhubungan linear.

#Uji Normalitas
qqnorm(dataAnreg$Y)
qqline(dataAnreg$Y, col = "blue")

Melalui Plot QQ galat, sebaran cenderung simetris dengan ujung-ujung menipis. Sebagai pembuktian akan dilakukan shapiro-wilk test. Dengan hipotesis bahwa : H0 = data menyebar normal H1 = Data tidak menyebar normal

#Shapiro Test
shapiro.test(dataAnreg$Y)
## 
##  Shapiro-Wilk normality test
## 
## data:  dataAnreg$Y
## W = 0.89636, p-value = 0.08374

Interpretasi: Dari hasil shapiro test di atas membuktikan bahwa p-value lebih besar dari 0.05.Hal ini berarti hipotesis terima H0 yaitu data menyebar normal. Meskipun hasil dari qq plot cenderung memiliki asumsi bahwa data tidak menyebar normal.

#Model Regresi
model_lm <- lm(formula = Y ~ X, data = dataAnreg)
summary(model_lm)
## 
## Call:
## lm(formula = Y ~ X, data = dataAnreg)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -7.1628 -4.7313 -0.9253  3.7386  9.0446 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 46.46041    2.76218   16.82 3.33e-10 ***
## X           -0.75251    0.07502  -10.03 1.74e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 5.891 on 13 degrees of freedom
## Multiple R-squared:  0.8856, Adjusted R-squared:  0.8768 
## F-statistic: 100.6 on 1 and 13 DF,  p-value: 1.736e-07
model_lm
## 
## Call:
## lm(formula = Y ~ X, data = dataAnreg)
## 
## Coefficients:
## (Intercept)            X  
##     46.4604      -0.7525
#Uji Autokorelasi

acf(model_lm$residuals)

Interpretasi : Dapat dilihat nilai autokorelasi yang didaptkan yaitu 0.5 berada di luar batas kepercayaan 95%. Hal ini menunjukkan bahwa autokorelasi yang signifikan.Sebagai pembuktian akan dilakukan test dengan p-test hasil Uji Durbin-Wayson.

#Uji Durbin-Wayson
dwtest(model_lm)
## 
##  Durbin-Watson test
## 
## data:  model_lm
## DW = 0.48462, p-value = 1.333e-05
## alternative hypothesis: true autocorrelation is greater than 0

Interpretasi : Setelah dilakukan Uji Durbin-Wayson ternyata benar hasil dari nilai autokorelasinya yaitu 0.48 berada di luar batas kepercayaan 95%. Hal ini menunjukkan bahwa autokorelasi yang signifikan dan membuat asumsiGauss-Markov tidak terpenuhi tentang asumsi non-autokorelasi.

#Uji Homoskedastisitas
plot(model_lm, which = 1)

Interpretasi : Dapat dilihat dari Uji Homoskedastisitas ini untuk varians residual bernilai konstan itu artinya cenderung meningkat seiring dengan nilai prediksi. Maka dapat disimpulkan adanya Homoskedastisitas.Selanjutnya melakukan transformasi

#Transformasi
#Nilai Bobot

# Menghitung residu absolut dari model regresi
resid.abs <- abs(model_lm$residuals)

# Mengambil nilai-nilai yang diprediksi dari model
fitted.val <- model_lm$fitted.values

# Membuat model regresi kedua menggunakan residu absolut sebagai variabel dependen
fit <- lm(resid.abs ~ fitted.val, data = dataAnreg)

# Menghitung bobot kuadrat terbalik
data.wsl <- 1 / fit$fitted.values^2

# Menampilkan bobot kuadrat terbalik
print(data.wsl)
##          1          2          3          4          5          6          7 
## 0.03414849 0.03489798 0.03541143 0.03620311 0.03730067 0.03874425 0.04091034 
##          8          9         10         11         12         13         14 
## 0.04257072 0.04361593 0.04507050 0.04779711 0.05077885 0.05122749 0.05454132 
##         15 
## 0.05710924
# Melakukan plot dari bobot kuadrat terbalik
plot(data.wsl)

#model analisis regresi bobot terkecil
model.wsl <- lm(Y~X, data = dataAnreg, weights = data.wsl)
plot(model.wsl)

summary(model.wsl)
## 
## Call:
## lm(formula = Y ~ X, data = dataAnreg, weights = data.wsl)
## 
## Weighted Residuals:
##      Min       1Q   Median       3Q      Max 
## -1.46776 -1.09054 -0.06587  0.77203  1.85309 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 45.41058    2.90674  15.623 8.35e-10 ***
## X           -0.71925    0.07313  -9.835 2.18e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.204 on 13 degrees of freedom
## Multiple R-squared:  0.8815, Adjusted R-squared:  0.8724 
## F-statistic: 96.73 on 1 and 13 DF,  p-value: 2.182e-07

Interpretasi : Dari perhitungan yang telah dilakukan ternyata hasil transformasi WLS belum cukup efektif dalam mentransformasi model regresi ini. Hal ini dapat dibuktikan dari hasil eksplorasi yang masih belum memenuhi asumsi Gauss-Markov.

#Transformasi Akar pada x dan y
databaru <- dataAnreg %>%
  mutate(y = sqrt(Y)) %>%
  mutate(x = sqrt(X))

model1 <- lm(y ~ X, data = databaru)
plot(x = databaru$X, y = databaru$y)

plot(model1)

summary(model1)
## 
## Call:
## lm(formula = y ~ X, data = databaru)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.53998 -0.38316 -0.01727  0.36045  0.70199 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  7.015455   0.201677   34.79 3.24e-14 ***
## X           -0.081045   0.005477  -14.80 1.63e-09 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.4301 on 13 degrees of freedom
## Multiple R-squared:  0.9439, Adjusted R-squared:  0.9396 
## F-statistic: 218.9 on 1 and 13 DF,  p-value: 1.634e-09

Kesimpulan :Persamaan regresi menunjukkan adanya hubungan kuadrat negatif antara variabel dependen (Y) dan variabel independen (X). Artinya, ketika nilai X meningkat, nilai Y cenderung menurun dengan tingkat penurunan yang semakin cepat. Koefisien regresi dan perubahan dalam nilai Y untuk setiap perubahan dalam nilai X membantu dalam mengukur seberapa besar pengaruh X terhadap Y. Konstanta 7.015455 mewakili nilai Y ketika X sama dengan 0, sedangkan koefisien -0.081045 menunjukkan seberapa besar perubahan dalam Y yang terkait dengan perubahan dalam X. Semakin besar nilai absolut dari koefisien, semakin besar pengaruh variabel X terhadap variabel Y.