library(readxl)
datafolder <- read_xlsx("C:/Users/ASUS/Documents/UNY/SEM 2/ANALISIS REGRESI/Tugas AnReg/Folder data/handHeight.xlsx")
head(datafolder)
## # A tibble: 6 × 3
## Sex Height HandSpan
## <chr> <dbl> <dbl>
## 1 Female 68 21.5
## 2 Male 71 23.5
## 3 Male 73 22.5
## 4 Female 64 18
## 5 Male 68 23.5
## 6 Female 59 20
lm1 <- lm(HandSpan ~ Height, data=datafolder) # build linear regression model on full data
summary(lm1)
##
## Call:
## lm(formula = HandSpan ~ Height, data = datafolder)
##
## Residuals:
## Min 1Q Median 3Q Max
## -3.3888 -0.9348 0.0135 1.0365 2.6629
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.00161 1.69394 -1.772 0.0782 .
## Height 0.35057 0.02484 14.113 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.301 on 165 degrees of freedom
## Multiple R-squared: 0.5469, Adjusted R-squared: 0.5442
## F-statistic: 199.2 on 1 and 165 DF, p-value: < 2.2e-16
#Persamaan regresi :
#yhat = -3.00161+0.35057x
# makna Bhat1 = 0.35057, jika tinggi badan meningkat sebesar 1 satuan maka jengkal tangan akan meningkat sebesar 0.35057
# makna Bhat0 = -3.00161, jika tinggi sebesar 0 satuan maka jengkal menurun sebesar 3.00161
# (Bhat0 tidak bermakna karena tinggi seseorang tidak mungkin 0)
anova(lm1)
## Analysis of Variance Table
##
## Response: HandSpan
## Df Sum Sq Mean Sq F value Pr(>F)
## Height 1 337.08 337.08 199.17 < 2.2e-16 ***
## Residuals 165 279.25 1.69
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
library(alr3)
## Loading required package: car
## Warning: package 'car' was built under R version 4.3.2
## Loading required package: carData
pureErrorAnova(lm1)
## Analysis of Variance Table
##
## Response: HandSpan
## Df Sum Sq Mean Sq F value Pr(>F)
## Height 1 337.08 337.08 200.9539 <2e-16 ***
## Residuals 165 279.25 1.69
## Lack of fit 23 41.06 1.79 1.0642 0.3924
## Pure Error 142 238.19 1.68
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
qf(0.95,df1=23,df2=142)
## [1] 1.605618
#hipotesis :
# H0 : Tidak ada ketidakpasan model regresi linear sederhana dengan data
# H1 : Ada ketidakpasan model regresi linear sederhana dengan data
#Taraf nyata :
# alfa = 0.05
# Statistik uji :
# menggunakan uji F
# Kriteria keputusan :
# H0 ditolak jika F-value > F0,05(23,142)
# F0,05(23,142) = 1.605618
# Perhitungan :
# F-value = 1.0642
# KESIMPULAN :
# karena F-value < F0,05(23,142) yakni 1.0642 < 1.605618 maka H0 diterima. Dengan demikian, Pada taraf signifikansi 0.05 tidak ada ketidakpasan model regresi linear sederhana dengan data.
summary(datafolder)
## Sex Height HandSpan
## Length:167 Min. :57.00 Min. :16.00
## Class :character 1st Qu.:65.00 1st Qu.:19.50
## Mode :character Median :68.00 Median :21.00
## Mean :68.07 Mean :20.86
## 3rd Qu.:71.00 3rd Qu.:22.00
## Max. :78.00 Max. :25.50
plot(datafolder$Height, datafolder$HandSpan,xlab="Height",ylab="HandSpan",pch=16)
Analisis Visualisasi –> titik titik berada di sekitar garis regresi dan condong ke kanan, sehingga derajat kekuatan korelasinya kuat dan positif. Dimana ketika Height meningkat maka HanSpan juga meningkat.
plot(datafolder$Height,lm1$residuals,
xlab="Height (X)",ylab="Residuals",
main="Plot Uji Asumsi Rata-rata Galat bernilai nol")
plot sisaan ei dengan nilai dugaan HandSpan-hat, terlihat residu menyebar di sekitar garis residual e = 0 secara acak, sehingga E (HandSpan) merupakan fungsi linier dari Height atau asumsi galat bernilai 0 terpenuhi.
c<-(1:167)
datafolder<-cbind(datafolder,c)
head(datafolder)
## Sex Height HandSpan c
## 1 Female 68 21.5 1
## 2 Male 71 23.5 2
## 3 Male 73 22.5 3
## 4 Female 64 18.0 4
## 5 Male 68 23.5 5
## 6 Female 59 20.0 6
plot(datafolder$c,lm1$residuals,
xlab="Amatan",ylab="Residuals",type="l",
main="Plot Uji Asumsi Galat Saling Bebas")
Plot sisaan ei dengan nilai dugaan HandSpan-hat, terlihat residu menyebar di sekitar garis residual e = 0 secara acak, sehingga dapat disimpulkan bahawa galat saling bebas.
plot(datafolder$c,lm1$residuals,
xlab="Amatan",ylab="Residuals",
main="Plot Uji Asumsi Galat Saling Bebas")
c<-(1:167)
ytopi<-lm1$fitted.values
ei<-lm1$residuals
eiterurut<-sort(lm1$residuals)
anova(lm1) #baca nilai KTG
## Analysis of Variance Table
##
## Response: HandSpan
## Df Sum Sq Mean Sq F value Pr(>F)
## Height 1 337.08 337.08 199.17 < 2.2e-16 ***
## Residuals 165 279.25 1.69
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
hi<-sqrt(1.69)*qnorm((c-0.375)/(167+0.25))
Hi<-cbind(datafolder,ytopi,ei,eiterurut,hi)
head(Hi)
## Sex Height HandSpan c ytopi ei eiterurut hi
## 1 Female 68 21.5 1 20.83708 0.66291514 -3.388792 -3.477447
## 2 Male 71 23.5 2 21.88879 1.61120802 -3.187654 -3.038280
## 3 Male 73 22.5 3 22.58993 -0.08993006 -2.791068 -2.797719
## 4 Female 64 18.0 4 19.43481 -1.43480870 -2.687654 -2.626440
## 5 Male 68 23.5 5 20.83708 2.66291514 -2.584240 -2.491399
## 6 Female 59 20.0 6 17.68196 2.31803650 -2.538223 -2.378873
plot(hi,eiterurut,
xlab="hi",ylab="eiterurut",
main="Plot Uji Galat Berdistribusi Normal")
hist(lm1$residuals,5)
qqnorm(lm1$residuals,ylab = "Raw Residuals")
qqline(lm1$residuals)
plot terlihat terdapat titik-titik (residuals) mengikuti arah garis diagonal (model skew-havy tail: ada ekor yang tidak mengikuti garis diagonal) sehingga galat berdistribusi normal.
hist(lm1$residuals,167) #interval data ada 167
boxplot(lm1$residuals)
ytopi<-lm1$fitted.values
ei<-lm1$residuals
plot(ytopi,ei,
xlab="fitted values",ylab="residuals",
main="Plot Uji Ragam Galat Konstan")
plot sisaan ei dengan dugaan HandSpan-hat, terlihat plot galat membentuk pita horizontal di sekitar garis residual e = 0 maka ragam galat konstan.
plot(datafolder$Height,datafolder$HandSpan,main="Plot Data")
karena titik-titik pada plot mengikuti garis diagonal regresi, maka x dan y berhubungan linier.
plot(datafolder$Height,datafolder$HandSpan,main="Plot Data")
terlihat tidak ada outlier (data yang paling beda dengan yang lain) di dalam plot tersebut.