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)
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
plot(modelreg,1)
plot(x=1:dim(data)[1],
y=modelreg$residuals,
type='b',
ylab="residuals",
xlab="observation")
plot(modelreg,2)
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.
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.
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.
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.
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.
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
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)
plot(modelbaru,1)
plot(x = 1:dim(transformasi)[1],
y = modelbaru$residuals,
type = 'b',
ylab = "Residuals",
xlab = "Observation")
plot(modelbaru,2)
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"
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"
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"
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 \]