READ DATA

data <- read.csv("/Users/user/Downloads/Documents/Anreg 📈/data liver.csv", sep=";")

y<-data$Y
x1<-data$X1
x2<-data$X2
x3<-data$X3
x4<-data$X4 
x5<-data$X5
x6<-data$X6

data<-data.frame(cbind(y,x1,x2,x3,x4,x5,x6))
head(data)
##        y    x1    x2   x3    x4    x5   x6
## 1 158.76 16.36  8.90 3.47  6.02 57.42 1.11
## 2 197.19 26.68 21.22 3.53 12.07 61.38 1.36
## 3 144.73 12.49 16.62 2.00  8.88 67.42 1.47
## 4 140.06  8.45 22.86 6.71  7.46 69.94 1.31
## 5 129.71 10.19 14.23 4.75  2.06 65.68 1.25
## 6 162.59 19.53 17.35 1.95  7.54 59.63 1.14
n<-nrow(data) #menunjukan jumlah barisnya
n
## [1] 36
p<-ncol(data) #menunjukan jumlah kolomnya
p
## [1] 7

EKSPLORASI DATA

summary(y)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   120.9   143.9   160.7   169.7   191.8   247.4
boxplot(y)

summary(x2)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   1.270   6.335   9.220  11.549  15.207  36.360
boxplot(x2)

library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.4     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.4     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.0
## ✔ purrr     1.0.1     
## ── 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(datasets)
data <- tibble::as.tibble(data) 
## Warning: `as.tibble()` was deprecated in tibble 2.0.0.
## ℹ Please use `as_tibble()` instead.
## ℹ The signature and semantics have changed, see `?as_tibble`.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
library(plotly)
## 
## Attaching package: 'plotly'
## 
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## 
## The following object is masked from 'package:stats':
## 
##     filter
## 
## The following object is masked from 'package:graphics':
## 
##     layout

Interactive Scatter Plot

interactive.plot <- ggplot(data) +
  geom_point(aes(x = x2,y = y),color="steelblue",shape=9, size=1) +
  geom_smooth(aes(x = x2, y = y), method = "lm", se = FALSE, color = "grey") +
  ggtitle("Scatter Plot X2 vs Y") +
  ylab("Y") +
  xlab("X2") + 
  theme_classic() +
  theme(plot.title = element_text(hjust = 0.5))
ggplotly(interactive.plot)
## `geom_smooth()` using formula = 'y ~ x'

PEMBENTUKAN MODEL TANPA FUNGSI BAWAAN (MANUAL)

Parameter Regresi

b1<-(sum(x2*y)-sum(x2)*sum(y)/n)/(sum(x2^2)-(sum(x2)^2/n))
b1
## [1] 2.243073
b0<-mean(y)-b1*mean(x2)
b0
## [1] 143.8205

Koefisien Determinasi dan Penyesuaiannya

r<-(sum(x2*y)-sum(x2)*sum(y)/n)/
  sqrt((sum(x2^2)-(sum(x2)^2/n))*(sum(y^2)-(sum(y)^2/n)))
Koef_det<-r^2
Koef_det
## [1] 0.2592103
Adj_R2<-1-((1-Koef_det)*(n-1)/(n-1-1))
Adj_R2
## [1] 0.2374224

Standar Error Parameter Regresi

galat<-y-(b0+b1*x2)
ragam_galat<-sum(galat^2)/(n-2)
se_b1<-sqrt(ragam_galat/sum((x2-mean(x2))^2))
se_b1
## [1] 0.6503173
se_b0<-sqrt(ragam_galat*(1/n+mean(x2)^2/sum((x2-mean(x2))^2)))
se_b0
## [1] 8.90762

Signifikansi Parameter (nilai-t)

t_b0<-b0/se_b0
t_b0
## [1] 16.14578
t_b1<-b1/se_b1
t_b1
## [1] 3.449198
2*pt(-abs(t_b0 ),df<-n-2)
## [1] 1.637163e-17
2*pt(-abs(t_b1 ),df<-n-2)
## [1] 0.001518399

UKURAN KERAGAMAN

Nilai F hitung

galat<-y-(b0+b1*x2)
JKG <- sum((y - (b0+b1*x2))^2)
JKReg <- sum(((b0+b1*x2)- mean(y))^2)
JKT <- sum((y - mean(y))^2)
JKT <- JKReg+JKG

dbReg<-1
dbg<-n-2
dbt<-n-1

Fhit<-(JKReg/dbReg)/(JKG/dbg)
Fhit
## [1] 11.89697

P Value

P.value<-1-pf(Fhit, dbReg, dbg, lower.tail <- F)
P.value
## [1] 0.001518399

PEMBENTUKAN MODEL DENGAN FUNGSI lm

model<-lm(y~x2,data<-data)
summary(model)
## 
## Call:
## lm(formula = y ~ x2, data = data <- data)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -55.04 -14.52  -1.00  12.24  65.49 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 143.8205     8.9076  16.146  < 2e-16 ***
## x2            2.2431     0.6503   3.449  0.00152 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 28.74 on 34 degrees of freedom
## Multiple R-squared:  0.2592, Adjusted R-squared:  0.2374 
## F-statistic:  11.9 on 1 and 34 DF,  p-value: 0.001518

ANOVA

anova(model)
## Analysis of Variance Table
## 
## Response: y
##           Df  Sum Sq Mean Sq F value   Pr(>F)   
## x2         1  9823.4  9823.4  11.897 0.001518 **
## Residuals 34 28074.0   825.7                    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

INTERPRETASI

Persamaan regresi liner sederhana: \[ ŷ=143.8205 + 2.243073x \]Berdasarkan hasil yang diperoleh dari kedua metode tersebut, dapat disimpulkan bahwa keduanya valid dan memberikan hasil yang sama dengan persamaan regresi di atas. Dari persamaan tersebut, terlihat bahwa hubungan antara variabel X2 dan Y bersifat linear positif. Artinya, ketika nilai X2 meningkat satu satuan, nilai Y juga akan meningkat sebesar nilai \(b_1\), yaitu 2.243073. Selain itu, nilai \(b_0\) sebesar 143.820 merupakan nilai perkiraan rata-rata atau nilai harapan dari Y yang tidak dapat dijelaskan oleh variabel penjelas X.

Dari grafik scatter plot diatas juga dapat dilihat bahwa ragam dalam hubungan antara variabel X2 dan Y cukup besar. Hal ini diperkuat dengan nilai R-square sebesar 0.2374224 yang menunjukkan bahwa pengaruh variabel X2 terhadap variabel Y relatif lemah.