#Nomor 1
#PACKAGE#
library(stats)
library(car)
## Warning: package 'car' was built under R version 4.5.3
## Loading required package: carData
## Warning: package 'carData' was built under R version 4.5.3
library(lmtest)
## Warning: package 'lmtest' was built under R version 4.5.2
## Loading required package: zoo
## Warning: package 'zoo' was built under R version 4.5.3
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
library(zoo)

#MEMANGGIL DATA
data=read.table(file.choose(),header=TRUE)
data
##    Petak    Y  X1  X2
## 1      1 34.4 100 140
## 2      2 38.7 110 180
## 3      3 34.2 120 150
## 4      4 41.7 130 200
## 5      5 39.0 140 170
## 6      6 41.5 150 220
## 7      7 40.9 160 190
## 8      8 44.0 170 240
## 9      9 43.9 180 200
## 10    10 47.6 190 230
## 11    11 49.7 200 260
## 12    12 48.7 210 220
summary(data)
##      Petak             Y               X1              X2       
##  Min.   : 1.00   Min.   :34.20   Min.   :100.0   Min.   :140.0  
##  1st Qu.: 3.75   1st Qu.:38.92   1st Qu.:127.5   1st Qu.:177.5  
##  Median : 6.50   Median :41.60   Median :155.0   Median :200.0  
##  Mean   : 6.50   Mean   :42.02   Mean   :155.0   Mean   :200.0  
##  3rd Qu.: 9.25   3rd Qu.:44.90   3rd Qu.:182.5   3rd Qu.:222.5  
##  Max.   :12.00   Max.   :49.70   Max.   :210.0   Max.   :260.0
#SCATTER PLOT
plot(data$X1, data$Y, xlab="Dosis Pupuk (kg/ha)",ylab="Hasil Panen Padi (kuintal/ha)",
     main="Scatter Plot Dosis Pupuk dan Hasil Panen Padi")
abline(lm(data$Y~data$X1),col="lightpink",lwd=3)

plot(data$X2, data$Y, xlab="Curah Hujan (mm/bulan)",ylab="Hasil Panen Padi (kuintal/ha)",
     main="Scatter Plot Curah Hujan dan Hasil Panen Padi")
abline(lm(data$Y~data$X2),col="lightpink",lwd=3)

#RLB
reg=lm(formula=Y~X1+X2, data=data)
summary(reg)
## 
## Call:
## lm(formula = Y ~ X1 + X2, data = data)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.8540 -1.0105  0.1800  0.9349  1.6401 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 16.96176    2.30605   7.355  4.3e-05 ***
## X1           0.07860    0.01965   4.000  0.00311 ** 
## X2           0.06440    0.01958   3.289  0.00940 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.361 on 9 degrees of freedom
## Multiple R-squared:  0.9412, Adjusted R-squared:  0.9281 
## F-statistic: 71.99 on 2 and 9 DF,  p-value: 2.905e-06
#Pendeteksian Multikolinieritas
#<10
vif(reg)
##       X1       X2 
## 2.983051 2.983051
#PENGUJIAN ASUMSI
bptest(reg,varformula=~fitted.values(reg), studentize=F)
## 
##  Breusch-Pagan test
## 
## data:  reg
## BP = 0.2226, df = 1, p-value = 0.6371
dwtest(reg, alternative='two.sided')
## 
##  Durbin-Watson test
## 
## data:  reg
## DW = 2.0988, p-value = 0.9478
## alternative hypothesis: true autocorrelation is not 0
shapiro.test(resid(reg))
## 
##  Shapiro-Wilk normality test
## 
## data:  resid(reg)
## W = 0.92837, p-value = 0.3631
#Nomor 2
#MEMBENTUK MATRIKS Y DAN X
Y=as.matrix(data$Y)
X=cbind(1, data$X1, data$X2)

#JUMLAH OBSERVASI (n) DAN JUMLAH VARIABEL BEBAS (k)
n=nrow(X)
k=ncol(X)-1
n
## [1] 12
k
## [1] 2
#b=(X'X)^-1 X'Y
b.topi=solve(t(X) %*% X) %*% t(X) %*% Y
b.topi
##             [,1]
## [1,] 16.96175938
## [2,]  0.07860495
## [3,]  0.06439736
#TAHAPAN PERHITUNGAN KOEFISIEN DETERMINASI (R^2)
#a. Nilai dugaan Y
Y.topi=X %*% b.topi
Y.topi
##           [,1]
##  [1,] 33.83789
##  [2,] 37.19983
##  [3,] 36.05396
##  [4,] 40.05988
##  [5,] 38.91400
##  [6,] 42.91992
##  [7,] 41.77405
##  [8,] 45.77997
##  [9,] 43.99012
## [10,] 46.70809
## [11,] 49.42606
## [12,] 47.63622
#b. Jumlah Kuadrat Total
JKT=sum((Y-mean(Y))^2)
JKT
## [1] 283.1825
#c. Jumlah Kuadrat Regresi
JKR=sum((Y.topi-mean(Y))^2)
JKR
## [1] 266.5227
#d. Jumlah Kuadrat Galat
JKG=sum((Y-Y.topi)^2)
JKG
## [1] 16.65977
#e.JKT
JKR+JKG
## [1] 283.1825
#f. Koefisien Determinasi (R^2) = JKR/JKT#
R2=JKR/JKT
R2
## [1] 0.9411695
#UJI F
#F = (R^2/k) / ((1-R^2)/(n-k-1))
F_hitung=(R2/k)/((1-R2)/(n-k-1))
F_hitung
## [1] 71.99094
#NILAI F TABEL
df1=k
df2=n-k-1
alpha=0.05
f_tabel=qf(alpha, df1, df2, lower.tail=FALSE)
f_tabel
## [1] 4.256495
#KEPUTUSAN
F_hitung > f_tabel
## [1] TRUE