Membaca data

library(readxl)
data <- read_xlsx("C:/Users/USER/OneDrive - apps.ipb.ac.id/Semester 4/Analisis Regresi/UTS/Pertemuan 7/Tugas Individu Pertemuan 7.xlsx")
data
## # A tibble: 15 × 2
##        X     Y
##    <dbl> <dbl>
##  1     2    54
##  2     5    50
##  3     7    45
##  4    10    37
##  5    14    35
##  6    19    25
##  7    26    20
##  8    31    16
##  9    34    18
## 10    38    13
## 11    45     8
## 12    52    11
## 13    53     8
## 14    60     4
## 15    65     6
plot(data$X,data$Y)

Model linier

modelreg = lm(formula=Y~., data=data)
summary(modelreg)
## 
## Call:
## lm(formula = Y ~ ., data = data)
## 
## 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
modelreg
## 
## Call:
## lm(formula = Y ~ ., data = data)
## 
## Coefficients:
## (Intercept)            X  
##     46.4604      -0.7525

Eksplorasi kondisi Gauss-Markov, pemeriksaan dengan grafik

1. Plot sisaan vs Y duga

plot(modelreg,1)

2. Plot sisaan vs urutan

plot(x=1:dim(data)[1],
     y=modelreg$residuals,
     type='b',
     ylab="residuals",
     xlab="observation")

3. Normalitas sisaan

plot(modelreg,2)

Pengujian Asumsi

A. Kondisi Gauss-Markov

1. Nilai harapan sisaan sama dengan 0

t.test(modelreg$residuals,mu=0,conf.level=0.95)
## 
##  One Sample t-test
## 
## data:  modelreg$residuals
## t = -4.9493e-16, df = 14, p-value = 1
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  -3.143811  3.143811
## sample estimates:
##     mean of x 
## -7.254614e-16

Hipotesis yang diuji : H0 : miu = 0 H1 : miu tidak sama dengan 0

Dari uji t diatas didapat nilai-p sebesar 1. Dengan alpha sebesar 0,05 maka nilai-p lebih besar dari alpha. Dapat disimpulkan bahwa tak tolak H0. Nilai harapan sisaan sama dengan 0.

2. Ragam sisaan homogen

library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
homogen <- bptest(modelreg)
homogen
## 
##  studentized Breusch-Pagan test
## 
## data:  modelreg
## BP = 0.52819, df = 1, p-value = 0.4674

Hipotesis yang diuji : H0 : Ragam sisaan homogen H1 : Ragam sisaan heterogen

Dari uji Breusch-Pagan guna melihat apakah ragam sisaan homogen didapat bahwa nilai-p sebesar 0,4674. Karena nilai-p > alpha 0,05 maka tak tolak H0. Maka ragam sisaan homogen.

3. Sisaan saling bebas

library(randtests)
runs.test(modelreg$residuals)
## 
##  Runs Test
## 
## data:  modelreg$residuals
## statistic = -2.7817, runs = 3, n1 = 7, n2 = 7, n = 14, p-value =
## 0.005407
## alternative hypothesis: nonrandomness

Hipotesis yang diuji : H0 : Sisaan saling bebas H1 : Sisaan tidak saling bebas

Dari uji diatas, didapat nilai-p sebesar 0,005407. Dengan alpha sebesar 0,05 maka dapat disimpulkan tolak H0 karena nilai-p < alpha. Maka sisaan tidak saling bebas.

B. Galat menyebar normal

library(nortest)
sisaan_model <- resid(modelreg)
(norm_model <- lillie.test(sisaan_model))
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  sisaan_model
## D = 0.12432, p-value = 0.7701

Hipotesis yang diuji : H0 : galat menyebar normal H1 : galat menyebar tidak normal

Dari uji Kolmogrov-Smirnov diatas, didapat nilai-p sebesar 0,7701 Dengan alpha sebesar 0,05, maka dapat kita simpulkan untuk tak tolak H0 karena nilai-p > 0,05. Maka sisaan menyebar normal.

C. Galat bebas terhadap peubah bebas

model <- lm(Y~., data = data)
summary(model)
## 
## Call:
## lm(formula = Y ~ ., data = data)
## 
## 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

Hipotesis yang diuji : H0 : galat bebas terhadap peubah bebas H1 : galat tidak bebas terhadap peubah bebas

Dari ANOVA diatas dapat dilihat bahwa nilai-p sebesar 1,736e-07. Dengan alpha sebesar 0,05, dapat dikatakan bahwa tak tolak H0. Maka galat bebas terhadap peubah bebas.

Maka dari sederetan uji diatas asumsi yang tidak terpenuhi adalah sisaan saling bebas. Karena ada satu asumsi yang tidak terpenuhi maka diperlukan penanganan terhadap kondisi yang tidak standar.

Penanganan kondisi tak standar

data_x <- sqrt(data$X)
data_y <- sqrt(data$Y)
transformasi <- data.frame(data_x,data_y)
transformasi
##      data_x   data_y
## 1  1.414214 7.348469
## 2  2.236068 7.071068
## 3  2.645751 6.708204
## 4  3.162278 6.082763
## 5  3.741657 5.916080
## 6  4.358899 5.000000
## 7  5.099020 4.472136
## 8  5.567764 4.000000
## 9  5.830952 4.242641
## 10 6.164414 3.605551
## 11 6.708204 2.828427
## 12 7.211103 3.316625
## 13 7.280110 2.828427
## 14 7.745967 2.000000
## 15 8.062258 2.449490

Model Linier Baru

modelbaru <- lm(transformasi$data_y~transformasi$data_x, data=transformasi)
summary(modelbaru)
## 
## Call:
## lm(formula = transformasi$data_y ~ transformasi$data_x, data = transformasi)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.42765 -0.17534 -0.05753  0.21223  0.46960 
## 
## Coefficients:
##                     Estimate Std. Error t value Pr(>|t|)    
## (Intercept)          8.71245    0.19101   45.61 9.83e-16 ***
## transformasi$data_x -0.81339    0.03445  -23.61 4.64e-12 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2743 on 13 degrees of freedom
## Multiple R-squared:  0.9772, Adjusted R-squared:  0.9755 
## F-statistic: 557.3 on 1 and 13 DF,  p-value: 4.643e-12
modelbaru
## 
## Call:
## lm(formula = transformasi$data_y ~ transformasi$data_x, data = transformasi)
## 
## Coefficients:
##         (Intercept)  transformasi$data_x  
##              8.7125              -0.8134
plot(transformasi$data_x,transformasi$data_y)

Eksplorasi kondisi Gauss-Markov, pemeriksaan dengan grafik untuk model baru

1. Plot sisaan vs Y duga

plot(modelbaru,1)

2. Plot sisaan vs urutan

plot(x = 1:dim(transformasi)[1],
     y = modelbaru$residuals,
     type = 'b', 
     ylab = "Residuals",
     xlab = "Observation")

3. Eksplorasi normalitas sisaan

plot(modelbaru,2)

Uji formal kondisi Gauss-Markov

1. Nilai harapan sisaan sama dengan 0

nilaiharapan<- t.test(modelbaru$residuals,mu = 0,conf.level = 0.95)
nilaiharapan
## 
##  One Sample t-test
## 
## data:  modelbaru$residuals
## t = 2.0334e-16, df = 14, p-value = 1
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
##  -0.1463783  0.1463783
## sample estimates:
##    mean of x 
## 1.387779e-17
ifelse(nilaiharapan$p.value < 0.05, "Nilai harapan tidak sama dengan 0", "Nilai harapan sama dengan 0")
## [1] "Nilai harapan sama dengan 0"

2. Ragam sisaan homogen

library(car)
## Loading required package: carData
ujihomogen <- ncvTest(modelbaru)
ujihomogen
## Non-constant Variance Score Test 
## Variance formula: ~ fitted.values 
## Chisquare = 2.160411, Df = 1, p = 0.14161
ifelse(ujihomogen$p < 0.05, "Ragam Tidak Homogen", "Ragam Homogen")
## [1] "Ragam Homogen"

3. Sisaan saling bebas

salingbebas<-runs.test(modelbaru$residuals)
salingbebas
## 
##  Runs Test
## 
## data:  modelbaru$residuals
## statistic = 0, runs = 8, n1 = 7, n2 = 7, n = 14, p-value = 1
## alternative hypothesis: nonrandomness
ifelse(salingbebas$p.value < 0.05, "Sisaan tidak saling bebas", "Sisaan saling bebas")
## [1] "Sisaan saling bebas"

Normalitas

sisaanmodel <- resid(modelbaru)
(normmodel <- lillie.test(sisaanmodel))
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  sisaanmodel
## D = 0.11948, p-value = 0.817
ifelse(normmodel$p.value < 0.05, "Galat tidak menyebar normal", "Galat menyebar normal")
## [1] "Galat menyebar normal"

Maka model terbaik didapat dari hasil transformasi kedua variabel yaitu X dan Y. Kedua variabel tersebut diakarkan, kemudian ketika diuji lagi untuk pengujian asumsi seluruh asumsi terpenuhi. Maka, telah didapat model terbaik serta memenuhi seluruh asumsi yang dibutuhkan. Model regresinya menjadi : \[ \hat Y = 8.7125-0.8134X \]