# MEMANGGIL LIBRARY YANG DIGUNAKAN
library(lmtest)
library(MASS)
library(car)
library(pastecs)
library(pracma)
library(Matrix)
# MEMANGGIL DATA
data=read.table(file.choose(),header=TRUE)
data
# ANALISIS STATISTIKA DESKRIPTIF & DETEKSI MULTIKOLINIERITAS
stat.desc(data)
model=(lm(formula=Y~X1+X2+X3+X4+X5+X6,data=data))
model
##
## Call:
## lm(formula = Y ~ X1 + X2 + X3 + X4 + X5 + X6, data = data)
##
## Coefficients:
## (Intercept) X1 X2 X3 X4 X5
## 26.47106 -0.61512 -0.21398 -0.21664 -0.42017 0.92267
## X6
## 0.03101
summary(model)
##
## Call:
## lm(formula = Y ~ X1 + X2 + X3 + X4 + X5 + X6, data = data)
##
## Residuals:
## Min 1Q Median 3Q Max
## -24.041 -3.610 2.047 5.431 21.434
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 26.47106 11.16110 2.372 0.0181 *
## X1 -0.61512 0.07038 -8.740 < 2e-16 ***
## X2 -0.21398 0.02453 -8.721 < 2e-16 ***
## X3 -0.21664 0.29665 -0.730 0.4656
## X4 -0.42017 0.04933 -8.518 < 2e-16 ***
## X5 0.92267 0.14182 6.506 1.85e-10 ***
## X6 0.03101 0.04248 0.730 0.4657
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 8.209 on 507 degrees of freedom
## Multiple R-squared: 0.6801, Adjusted R-squared: 0.6763
## F-statistic: 179.7 on 6 and 507 DF, p-value: < 2.2e-16
vif(model)
## X1 X2 X3 X4 X5 X6
## 1.930060 1.842417 1.599757 1.415399 1.754443 1.155668
# PALET WARNA & FUNGSI BANTU VISUALISASI
# Satu warna khas untuk setiap variabel supaya mudah dibedakan di semua plot
var_x = c("X1","X2","X3","X4","X5","X6")
warna = c(X1="#E21AE4", X2="#37B871", X3="#AFAC4A",
X4="#FF0080", X5="#4E59A3", X6="#00A600")
# versi transparan (untuk titik) dan versi lebih gelap (untuk garis)
transp = function(col, alpha=0.6) adjustcolor(col, alpha.f=alpha)
gelap = function(col) adjustcolor(col, red.f=0.6, green.f=0.6, blue.f=0.6)
# SCATTERPLOT (WARNA BERBEDA UNTUK SETIAP VARIABEL)
par(mfrow=c(2,3), mar=c(4.5,4.5,3,1))
for (v in var_x) {
x = data[[v]]
r = cor(x, data$Y)
plot(x, data$Y,
main=paste("Scatterplot Y dan", v),
xlab=v, ylab="Y",
pch=19, cex=1.3, col=transp(warna[v]))
grid(col="grey90")
# garis regresi linier (solid, warna lebih gelap)
abline(lm(data$Y~x), col=gelap(warna[v]), lwd=3)
# kurva loess (putus-putus) -> menunjukkan pola non-linier yang melandasi regresi nonparametrik
lines(lowess(x, data$Y), col="black", lwd=2, lty=2)
legend("topleft", bty="n", cex=0.85,
legend=c(paste0("r = ", round(r,3)), "Linier", "Lowess"),
col=c(NA, gelap(warna[v]), "black"), lty=c(NA,1,2), lwd=c(NA,3,2))
}

par(mfrow=c(1,1))
# HISTOGRAM & BOXPLOT
# Semua X diubah ke skala yang sama (z-score) untuk boxplot
Z = scale(data[,var_x])
par(mfrow=c(1,2), mar=c(4.5,4.5,3,1))
# Histogram Y + kurva densitas
hist(data$Y, breaks="FD", freq=FALSE, col="#99D38D", border="white",
main="Distribusi Variabel Y", xlab="Y")
lines(density(data$Y), col="#D9027C", lwd=3)
abline(v=mean(data$Y), col="#429E1B", lwd=2, lty=2)
abline(v=median(data$Y), col="#70AEB3", lwd=2, lty=3)
legend("topright", bty="n", cex=0.85,
legend=c("Densitas","Rata-rata","Median"),
col=c("#D9027C","#429E1B","#70AEB3"), lwd=c(3,2,2), lty=c(1,2,3))
# Boxplot seluruh X (distandardisasi), tiap variabel punya warna sendiri
boxplot(Z, col=transp(warna[var_x], 0.7), border=gelap(warna[var_x]),
main="Boxplot Variabel X (Terstandardisasi)",
ylab="Z-score", las=1)
abline(h=0, col="grey50", lty=2)

par(mfrow=c(1,1))
# HEATMAP KORELASI
kor = cor(data[,c("Y",var_x)])
pal = colorRampPalette(c("#21AC67","white","#9F18B2"))(101)
p = ncol(kor)
par(mar=c(4,4,3,1))
image(1:p, 1:p, t(kor[p:1,]), col=pal, zlim=c(-1,1),
axes=FALSE, xlab="", ylab="", main="Heatmap Korelasi Antar Variabel")
axis(1, at=1:p, labels=colnames(kor), las=1)
axis(2, at=1:p, labels=rev(rownames(kor)), las=1)
for (i in 1:p) for (j in 1:p)
text(j, p-i+1, sprintf("%.2f", kor[i,j]), cex=0.9,
col=ifelse(abs(kor[i,j])>0.6,"white","black"))
box()

# DIAGNOSTIK RESIDUAL MODEL REGRESI LINIER
res_lm = residuals(model); fit_lm = fitted(model)
par(mfrow=c(1,3), mar=c(4.5,4.5,3,1))
plot(fit_lm, res_lm, pch=19, col=transp("#37B871"), cex=1.2,
main="Residual vs Fitted", xlab="Fitted", ylab="Residual")
abline(h=0, col="#E21AE4", lwd=2, lty=2); grid(col="grey90")
lines(lowess(fit_lm, res_lm), col="black", lwd=2)
qqnorm(res_lm, pch=19, col=transp("#AFAC4A"), main="Normal Q-Q Residual")
qqline(res_lm, col="#E21AE4", lwd=2)
hist(res_lm, breaks="FD", freq=FALSE, col="#FD62AB", border="white",
main="Histogram Residual", xlab="Residual")
curve(dnorm(x, mean(res_lm), sd(res_lm)), add=TRUE, col="#4E59A3", lwd=3)

par(mfrow=c(1,1))
# PEMILIHAN 1 TITIK KNOT
GCV1=function(data)
{
para=0
data=as.matrix(data)
N=nrow(data)
M=ncol(data)
m=ncol(data)-para-1
dataA=data[,(para+2):M]
dataA=as.matrix(dataA)
F=diag(N)
nk=50 #nk=banyaknya alternatif titik knot yang akan dicoba
knot1=matrix(ncol=m,nrow=nk)
for (i in (1:m)) #membuat knot
{
a=seq(min(dataA[,i]),max(dataA[,i]),length.out=nk)
knot1[,i]=t(as.matrix(a))
}
a1=length(knot1[,1])
knot1=as.matrix(knot1[2:(a1-1),])
aa=rep(1,N)
data1=matrix(ncol=m,nrow=N)
data2=data[,2:M] #data x saja
nk1=nrow(knot1)
GCV=as.matrix(rep(NA,nk1),ncol=1);colnames(GCV)<-"GCV"
MSE=as.matrix(rep(NA,nk1),ncol=1);colnames(MSE)<-"MSE"
SSE=rep(NA,nk1)
SSR=rep(NA,nk1)
Rsq=as.matrix(rep(NA,nk1),ncol=1);colnames(Rsq)<-"Rsq"
knotke=matrix(c(1:nk1),ncol=1);colnames(knotke)<-"knot_ke"
for (i in 1:nk1)
{
for (j in 1:m)
{
for (k in 1:N)
{
if (data[k,(j+para+1)]<knot1[i,j]) data1[k,j]=0 else
data1[k,j]=data[k,(j+para+1)]-knot1[i,j]
}
}
mx=as.matrix(cbind(aa,data2,data1))
C=pinv(t(mx)%*%mx)
B=C%*%(t(mx)%*%data[,1])
yhat=mx%*%B
res=data[,1]-yhat
SSE[i]=sum((res)^2)
SSR[i]=sum((yhat-mean(data[,1]))^2)
MSE[i]=SSE[i]/(N)
Rsq[i]=(SSR[i]/(SSR[i]+SSE[i]))*100
A=mx%*%C%*%t(mx)
A1=(F-A)
A2=(sum(diag(A1))/N)^2
GCV[i]=MSE[i]/A2
}
dataAll=as.matrix(cbind(GCV,Rsq,knotke,knot1))
dataG=dataAll[order(GCV),-2]
write.csv(dataAll, file="C:\\Semester 5\\REGNON\\Tugas 6\\DATA ALL knot 1.csv")
cat("==============================================","\n")
cat("HASIL GCV terkecil dengan 1 knot","\n")
cat("==============================================","\n")
print(((dataG[1,1:(2+m)])))
cat("Nilai GCV 10 terkecil pertama","\n")
print(dataG[1:10,])
mingcv=dataG[1,1]
knotgcv=as.matrix(knot1[dataG[1,"knot_ke"],])
knotgcv1=matrix(knotgcv,nrow=1)
datagcv1=matrix(ncol=m,nrow=N)
for (j in 1:m)
{
for (k in 1:N)
{
if (data[k,(j+para+1)]<knotgcv[j,1]) datagcv1[k,j]=0 else
datagcv1[k,j]=data[k,(j+para+1)]-knotgcv[j,1]
}
}
mxgcv=as.matrix(cbind(aa,data2,datagcv1))
# hitung ulang B dari titik knot dengan GCV TERKECIL
Cgcv=pinv(t(mxgcv)%*%mxgcv)
B=Cgcv%*%(t(mxgcv)%*%data[,1])
mxgcv=mxgcv[,2:(2*m+1)]
list(knotgcv=knotgcv1,mingcv=mingcv,mxgcv=mxgcv)
cat("\n")
cat("==============================================","\n")
cat("HASIL ESTIMASI PARAMETER TITIK KNOT KE 1","\n")
cat("==============================================","\n")
print(B)
cat("\n")
}
GCV1(data)
## ==============================================
## HASIL GCV terkecil dengan 1 knot
## ==============================================
## GCV knot_ke
## 20.206458 27.000000 54.892653 7.594694 47.839592 67.958163 27.661224 59.450408
## Nilai GCV 10 terkecil pertama
## GCV knot_ke
## [1,] 20.20646 27 54.89265 7.594694 47.83959 67.95816 27.66122 59.45041
## [2,] 20.21553 28 56.92571 7.828571 49.61143 68.41143 28.68571 61.12857
## [3,] 20.25827 26 52.85959 7.360816 46.06776 67.50490 26.63673 57.77224
## [4,] 20.29451 25 50.82653 7.126939 44.29592 67.05163 25.61224 56.09408
## [5,] 20.33676 29 58.95878 8.062449 51.38327 68.86469 29.71020 62.80673
## [6,] 20.33968 24 48.79347 6.893061 42.52408 66.59837 24.58776 54.41592
## [7,] 20.43170 23 46.76041 6.659184 40.75224 66.14510 23.56327 52.73776
## [8,] 20.53707 30 60.99184 8.296327 53.15510 69.31796 30.73469 64.48490
## [9,] 20.70568 22 44.72735 6.425306 38.98041 65.69184 22.53878 51.05959
## [10,] 20.75155 31 63.02490 8.530204 54.92694 69.77122 31.75918 66.16306
##
## ==============================================
## HASIL ESTIMASI PARAMETER TITIK KNOT KE 1
## ==============================================
## [,1]
## [1,] 97.52697136
## [2,] 0.02229463
## [3,] -1.90990877
## [4,] -0.02161166
## [5,] -0.67330763
## [6,] 0.04263029
## [7,] -0.44524953
## [8,] -0.10100488
## [9,] 1.28323925
## [10,] -0.07209349
## [11,] 0.36647397
## [12,] 0.32940003
## [13,] 0.39371960
# UJI SIGNIFIKANSI SATU TITIK KNOT
uji=function(alpha,para)
{
# --- baca & siapkan titik knot terbaik (GCV terkecil) ---
knot = read.csv("C:\\Semester 5\\REGNON\\Tugas 6\\DATA ALL knot 1.csv", header=TRUE)
knot = as.matrix(knot)
knot = knot[,-1] # buang kolom index baris
knot = knot[order(knot[,1]), ] # urutkan berdasarkan GCV (kolom 1) terkecil
baris_knot = as.numeric(knot[1, 4:9]) # ambil knot X1-X6 pada baris GCV terkecil
data=as.matrix(data)
ybar=mean(data[,1])
m=para+2
n=nrow(data)
q=ncol(data)
dataA=cbind(data[,m],data[,m+1],
data[,m+2],data[,m+3],
data[,m+4],data[,m+5])
dataA=as.matrix(dataA)
satu=rep(1,n)
n1=6 # jumlah variabel X (X1-X6)
data.knot=matrix(ncol=n1,nrow=n)
# --- hitung fungsi basis knot (loop i untuk variabel, j untuk observasi) ---
for (i in 1:n1)
{
for (j in 1:n)
{
if(dataA[j,i] < baris_knot[i]) data.knot[j,i]=0
else data.knot[j,i] = dataA[j,i] - baris_knot[i]
}
}
mx=cbind(satu,data[,2],data.knot[,1:1],data[,3],
data.knot[,2:2],data[,4],data.knot[,3:3],
data[,5],data.knot[,4:4],
data[,6],data.knot[,5:5],
data[,7],data.knot[,6:6])
mx=as.matrix(mx)
B=(pinv(t(mx)%*%mx))%*%t(mx)%*%data[,1]
n1=nrow(B)
yhat=mx%*%B
ybar=mean(data[,1])
res=data[,1]-yhat
SSE=sum((data[,1]-yhat)^2)
SSR=sum((yhat-ybar)^2)
MSE=SSE/(n)
MSR=SSR/(n1-1)
SST=sum((data[,1]-ybar)^2)
Rsq=(SSR/(SSR+SSE))*100
#-------------------------------------------------------#
# UJI SIMULTAN
#-------------------------------------------------------#
Fhit=MSR/MSE
pvalue=pf(Fhit,(n1-1),(n-n1),lower.tail=FALSE)
if(pvalue<=alpha)
{
cat('---------------------------------------','\n')
cat('Kesimpulan hasil uji simultan','\n')
cat('---------------------------------------','\n')
cat('Tolak Ho yakni minimal terdapat 1 variabel bebas yang signifikan','\n')
cat('','\n')
}
else
{
cat('---------------------------------------','\n')
cat('Kesimpulan hasil uji simultan','\n')
cat('---------------------------------------','\n')
cat('Gagal Tolak Ho yakni semua variabel bebas tidak berpengaruh signifikan','\n')
cat('','\n')
}
#------------------------------------------------------#
# UJI PARSIAL
#------------------------------------------------------#
thit=rep(NA,n1)
pval=rep(NA,n1)
SE=sqrt(diag(MSE*(pinv(t(mx)%*%mx))))
cat('---------------------------------------------','\n')
cat('Kesimpulan hasil uji parsial','\n')
cat('---------------------------------------------','\n')
for (i in 1:n1)
{
thit[i]=B[i,1]/SE[i]
pval[i]=2*(pt(abs(thit[i]),(n-n1),lower.tail=FALSE))
if (pval[i]<=alpha) cat('Tolak Ho yakni variabel bebas signifikan dengan pvalue',pval[i],'\n')
else cat('Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue',pval[i],'\n')
}
thit=as.matrix(thit)
cat('=============================================','\n')
cat('nilai t hitung','\n')
cat('=============================================','\n')
print(thit)
cat('Analysis of Variance','\n')
cat('=============================================','\n')
cat('Sumber df SS MS Fhit','\n')
cat('Regresi ',(n1-1),' ',SSR,' ',MSR,' ',Fhit,'\n')
cat('Error ',n-n1,' ',SSE,' ',MSE,'\n')
cat('Total ',n-1,' ',SST,'\n')
cat('=============================================','\n')
cat('s=',sqrt(MSE),' Rsq=',Rsq,'\n')
cat('pvalue(F)=',pvalue,'\n')
write.csv(res, file='C:\\Semester 5\\REGNON\\Tugas 6\\OUTPUT UJI RESIDUAL knot1.csv')
write.csv(mx, file='C:\\Semester 5\\REGNON\\Tugas 6\\OUTPUT UJI MX knot1.csv')
write.csv(yhat, file='C:\\Semester 5\\REGNON\\Tugas 6\\OUTPUT UJI yhat knot1.csv')
}
uji(0.1, 0)
## ---------------------------------------
## Kesimpulan hasil uji simultan
## ---------------------------------------
## Tolak Ho yakni minimal terdapat 1 variabel bebas yang signifikan
##
## ---------------------------------------------
## Kesimpulan hasil uji parsial
## ---------------------------------------------
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 2.602376e-15
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.1979433
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.04436058
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.0001218067
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.02607293
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.5293206
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.5875557
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.0001343102
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.104349
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.2043021
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.0001457498
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 5.379056e-12
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 3.442012e-07
## =============================================
## nilai t hitung
## =============================================
## [,1]
## [1,] 8.1662945
## [2,] 1.2891429
## [3,] -2.0157396
## [4,] -3.8729010
## [5,] 2.2317506
## [6,] -0.6294819
## [7,] -0.5427320
## [8,] -3.8483117
## [9,] 1.6270791
## [10,] 1.2710459
## [11,] 3.8276411
## [12,] -7.0657268
## [13,] 5.1669305
## Analysis of Variance
## =============================================
## Sumber df SS MS Fhit
## Regresi 12 16391.04 1365.92 71.15179
## Error 501 9867.395 19.19727
## Total 513 26258.43
## =============================================
## s= 4.381469 Rsq= 62.422
## pvalue(F)= 5.200845e-100
# PEMILIHAN DUA TITIK KNOT
GCV2=function(data)
{
para=0
data=as.matrix(data)
N=nrow(data)
M=ncol(data)
m=ncol(data)-para-1
dataA=data[,(para+2):M]
dataA=as.matrix(dataA)
F=diag(N)
nk=50
knot1=matrix(ncol=m,nrow=nk)
for (i in (1:m))
{
a=seq(min(dataA[,i]),max(dataA[,i]),length.out=nk)
knot1[,i]=t(as.matrix(a))
}
a1=length(knot1[,1])
knot1=as.matrix(knot1[2:(a1-1),])
a2=nk-2
z=(a2*(a2-1)/2)
knot2=cbind(rep(NA,(z+1)))
for (i in (1:m))
{
knot=rbind(rep(NA,2))
for ( j in 1:(a2-1))
{
for (k in (j+1):a2)
{ xx=cbind(knot1[j,i],knot1[k,i])
knot=rbind(knot,xx)
}
}
knot2=cbind(knot2,knot)
}
knot2=knot2[2:(z+1),2:(2*m+1)]
a3=nrow(knot2)
aa=rep(1,N)
data1=matrix(ncol=2*m,nrow=N)
data2=data[,2:M]
nk1=nrow(knot2)
GCV=as.matrix(rep(NA,nk1),ncol=1);colnames(GCV)<-"GCV"
MSE=as.matrix(rep(NA,nk1),ncol=1);colnames(MSE)<-"MSE"
SSE=rep(NA,nk1)
SSR=rep(NA,nk1)
Rsq=as.matrix(rep(NA,nk1),ncol=1);colnames(Rsq)<-"Rsq"
knotke=matrix(c(1:nk1),ncol=1);colnames(knotke)<-"knot_ke"
for (i in 1:a3)
{
for (j in 1:(2*m))
{
if (mod(j,2)==1) b=floor(j/2)+1 else b=j/2
for (k in 1:N)
{
if (data[k,(b+para+1)]<knot2[i,j]) data1[k,j]=0 else
data1[k,j]=data[k,(b+para+1)]-knot2[i,j]
}
}
mx=as.matrix(cbind(aa,data2,data1))
C=pinv(t(mx)%*%mx)
B=C%*%(t(mx)%*%data[,1])
yhat=mx%*%B
res=data[,1]-yhat
SSE[i]=sum((res)^2)
SSR[i]=sum((yhat-mean(data[,1]))^2)
MSE[i]=SSE[i]/(N)
Rsq[i]=(SSR[i]/(SSR[i]+SSE[i]))*100
A=mx%*%C%*%t(mx)
A1=(F-A)
A2=(sum(diag(A1))/N)^2
GCV[i]=MSE[i]/A2
}
dataAll=as.matrix(cbind(GCV,Rsq,knotke,knot2))
dataG=dataAll[order(GCV),-2]
write.csv(dataAll,file="C:\\Semester 5\\REGNON\\Tugas 6\\DATA ALL knot 2.csv")
cat("==============================================","\n")
cat("HASIL GCV terkecil dengan 2 knot","\n")
cat("==============================================","\n")
print(((dataG[1,1:(2+2*m)])))
cat("Nilai GCV 10 terkecil pertama","\n")
print(dataG[1:10,])
# --- PERBAIKAN: hitung ulang B dari titik knot dengan GCV TERKECIL ---
# (sebelumnya B yang dicetak = B dari kombinasi knot TERAKHIR yang dicoba, bukan yang terbaik)
baris_terbaik = dataG[1, "knot_ke"]
knotgcv = knot2[baris_terbaik, ]
datagcv1=matrix(ncol=2*m,nrow=N)
for (j in 1:(2*m))
{
if (mod(j,2)==1) b=floor(j/2)+1 else b=j/2
for (k in 1:N)
{
if (data[k,(b+para+1)]<knotgcv[j]) datagcv1[k,j]=0 else
datagcv1[k,j]=data[k,(b+para+1)]-knotgcv[j]
}
}
mxgcv=as.matrix(cbind(aa,data2,datagcv1))
Cgcv=pinv(t(mxgcv)%*%mxgcv)
B=Cgcv%*%(t(mxgcv)%*%data[,1])
cat("\n")
cat("==============================================","\n")
cat("HASIL ESTIMASI PARAMETER TITIK KNOT KE 2","\n")
cat("==============================================","\n")
print(B)
cat("\n")
}
GCV2(data)
## ==============================================
## HASIL GCV terkecil dengan 2 knot
## ==============================================
## GCV knot_ke
## 18.985476 921.000000 56.925714 63.024898 7.828571 8.530204 49.611429
##
## 54.926939 68.411429 69.771224 28.685714 31.759184 61.128571 66.163061
## Nilai GCV 10 terkecil pertama
## GCV knot_ke
## [1,] 18.98548 921 56.92571 63.02490 7.828571 8.530204 49.61143 54.92694
## [2,] 18.98686 920 56.92571 60.99184 7.828571 8.296327 49.61143 53.15510
## [3,] 19.04751 901 54.89265 63.02490 7.594694 8.530204 47.83959 54.92694
## [4,] 19.10503 939 58.95878 60.99184 8.062449 8.296327 51.38327 53.15510
## [5,] 19.12689 919 56.92571 58.95878 7.828571 8.062449 49.61143 51.38327
## [6,] 19.12877 900 54.89265 60.99184 7.594694 8.296327 47.83959 53.15510
## [7,] 19.13558 940 58.95878 63.02490 8.062449 8.530204 51.38327 54.92694
## [8,] 19.15718 880 52.85959 63.02490 7.360816 8.530204 46.06776 54.92694
## [9,] 19.19519 902 54.89265 65.05796 7.594694 8.764082 47.83959 56.69878
## [10,] 19.21913 922 56.92571 65.05796 7.828571 8.764082 49.61143 56.69878
##
## [1,] 68.41143 69.77122 28.68571 31.75918 61.12857 66.16306
## [2,] 68.41143 69.31796 28.68571 30.73469 61.12857 64.48490
## [3,] 67.95816 69.77122 27.66122 31.75918 59.45041 66.16306
## [4,] 68.86469 69.31796 29.71020 30.73469 62.80673 64.48490
## [5,] 68.41143 68.86469 28.68571 29.71020 61.12857 62.80673
## [6,] 67.95816 69.31796 27.66122 30.73469 59.45041 64.48490
## [7,] 68.86469 69.77122 29.71020 31.75918 62.80673 66.16306
## [8,] 67.50490 69.77122 26.63673 31.75918 57.77224 66.16306
## [9,] 67.95816 70.22449 27.66122 32.78367 59.45041 67.84122
## [10,] 68.41143 70.22449 28.68571 32.78367 61.12857 67.84122
##
## ==============================================
## HASIL ESTIMASI PARAMETER TITIK KNOT KE 2
## ==============================================
## [,1]
## [1,] 91.36884400
## [2,] -0.01679699
## [3,] -0.92744459
## [4,] -0.03116134
## [5,] -0.52954211
## [6,] 0.02368497
## [7,] -0.62717611
## [8,] 0.47186143
## [9,] -0.68801713
## [10,] -0.40340313
## [11,] 0.81801155
## [12,] 1.06073557
## [13,] -1.35431420
## [14,] -0.59686929
## [15,] 1.14374483
## [16,] 0.45300042
## [17,] -0.18233420
## [18,] 1.73075599
## [19,] -1.34946890
# UJI SIGNIFIKANSI DUA TITIK KNOT
uji=function(alpha,para)
{
knot = read.csv("C:\\Semester 5\\REGNON\\Tugas 6\\DATA ALL knot 2.csv", header=TRUE)
knot = as.matrix(knot)
knot = knot[,-1] # buang kolom index baris
knot = knot[order(knot[,1]), ] # urutkan berdasarkan GCV terkecil
baris_knot = as.numeric(knot[1, 4:15]) # 12 nilai knot terbaik (X1a,X1b,X2a,X2b,...,X6a,X6b)
data=as.matrix(data)
ybar=mean(data[,1])
m=para+2
n=nrow(data)
q=ncol(data)
dataA=cbind(data[,m],data[,m],data[,m+1],data[,m+1],
data[,m+2],data[,m+2],data[,m+3],data[,m+3],
data[,m+4],data[,m+4],data[,m+5],data[,m+5])
dataA=as.matrix(dataA)
satu=rep(1,n)
n1=length(baris_knot) # = 12
data.knot=matrix(ncol=n1,nrow=n)
for (i in 1:n1)
{
for (j in 1:n)
{
if(dataA[j,i]<baris_knot[i]) data.knot[j,i]=0
else data.knot[j,i]=dataA[j,i]-baris_knot[i]
}
}
mx=cbind(satu,data[,2],data.knot[,1:2],data[,3],
data.knot[,3:4],data[,4],data.knot[,5:6],
data[,5],data.knot[,7:8],
data[,6],data.knot[,9:10],
data[,7],data.knot[,11:12])
mx=as.matrix(mx)
B=(pinv(t(mx)%*%mx))%*%t(mx)%*%data[,1]
n1=nrow(B)
yhat=mx%*%B
ybar=mean(data[,1])
res=data[,1]-yhat
SSE=sum((data[,1]-yhat)^2)
SSR=sum((yhat-ybar)^2)
MSE=SSE/(n)
MSR=SSR/(n1-1)
SST=sum((data[,1]-ybar)^2)
Rsq=(SSR/(SSR+SSE))*100
Fhit=MSR/MSE
pvalue=pf(Fhit,(n1-1),(n-n1),lower.tail=FALSE)
if(pvalue<=alpha)
{
cat('---------------------------------------','\n')
cat('Kesimpulan hasil uji simultan','\n')
cat('---------------------------------------','\n')
cat('Tolak Ho yakni minimal terdapat 1 variabel bebas yang signifikan','\n')
cat('','\n')
}
else
{
cat('---------------------------------------','\n')
cat('Kesimpulan hasil uji simultan','\n')
cat('---------------------------------------','\n')
cat('Gagal Tolak Ho yakni semua variabel bebas tidak berpengaruh signifikan','\n')
cat('','\n')
}
thit=rep(NA,n1)
pval=rep(NA,n1)
SE=sqrt(diag(MSE*(pinv(t(mx)%*%mx))))
cat('---------------------------------------------','\n')
cat('Kesimpulan hasil uji parsial','\n')
cat('---------------------------------------------','\n')
for (i in 1:n1)
{
thit[i]=B[i,1]/SE[i]
pval[i]=2*(pt(abs(thit[i]),(n-n1),lower.tail=FALSE))
if (pval[i]<=alpha) cat('Tolak Ho yakni variabel bebas signifikan dengan pvalue',pval[i],'\n')
else cat('Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue',pval[i],'\n')
}
thit=as.matrix(thit)
cat('=============================================','\n')
cat('nilai t hitung','\n')
cat('=============================================','\n')
print(thit)
cat('Analysis of Variance','\n')
cat('=============================================','\n')
cat('Sumber df SS MS Fhit','\n')
cat('Regresi ',(n1-1),' ',SSR,' ',MSR,' ',Fhit,'\n')
cat('Error ',n-n1,' ',SSE,' ',MSE,'\n')
cat('Total ',n-1,' ',SST,'\n')
cat('=============================================','\n')
cat('s=',sqrt(MSE),' Rsq=',Rsq,'\n')
cat('pvalue(F)=',pvalue,'\n')
write.csv(res,file='C:\\Semester 5\\REGNON\\Tugas 6\\OUTPUT UJI RESIDUAL knot2.csv')
write.csv(mx,file='C:\\Semester 5\\REGNON\\Tugas 6\\OUTPUT UJI MX knot2.csv')
write.csv(yhat,file='C:\\Semester 5\\REGNON\\Tugas 6\\OUTPUT UJI yhat knot2.csv')
}
uji(0.1, 0)
## ---------------------------------------
## Kesimpulan hasil uji simultan
## ---------------------------------------
## Tolak Ho yakni minimal terdapat 1 variabel bebas yang signifikan
##
## ---------------------------------------------
## Kesimpulan hasil uji parsial
## ---------------------------------------------
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 1.096726e-13
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.3412052
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.04027877
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.01106055
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.07696369
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.7405573
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.4393531
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.3614774
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.1200001
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.09558417
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.002218409
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.2971753
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.03743297
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.4752954
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.08462063
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.5674028
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 1.343222e-18
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 5.923075e-12
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 7.181441e-09
## =============================================
## nilai t hitung
## =============================================
## [,1]
## [1,] 7.6446775
## [2,] -0.9527036
## [3,] 2.0562849
## [4,] -2.5503812
## [5,] -1.7722766
## [6,] -0.3313011
## [7,] 0.7739106
## [8,] -0.9133989
## [9,] 1.5574613
## [10,] -1.6698352
## [11,] -3.0754024
## [12,] -1.0436099
## [13,] 2.0866275
## [14,] 0.7144344
## [15,] 1.7279513
## [16,] -0.5722642
## [17,] -9.1629162
## [18,] 7.0531017
## [19,] -5.8889379
## Analysis of Variance
## =============================================
## Sumber df SS MS Fhit
## Regresi 18 17208.01 956.0008 54.29409
## Error 495 9050.421 17.60782
## Total 513 26258.43
## =============================================
## s= 4.196168 Rsq= 65.53328
## pvalue(F)= 1.059424e-104
#PEMILIHAN TIGA TITIK KNOT#
GCV3=function(data)
{
para=0
data=as.matrix(data)
N=nrow(data)
M=ncol(data)
m=ncol(data)-para-1
dataA=data[,(para+2):M]
dataA=as.matrix(dataA)
F=diag(N)
nk=50
knot1=matrix(ncol=m,nrow=nk)
for (i in (1:m))
{
a=seq(min(dataA[,i]),max(dataA[,i]),length.out=nk)
knot1[,i]=t(as.matrix(a))
}
a1=length(knot1[,1])
knot1=as.matrix(knot1[2:(a1-1),])
a2=nk-2
z=(a2*(a2-1)*(a2-2)/6)
knot2=cbind(rep(NA,(z+1)))
for (i in (1:m))
{
knot=rbind(rep(NA,3))
for ( j in 1:(a2-2))
{
for (k in (j+1):(a2-1))
{
for (g in (k+1):a2)
{
xx=cbind(knot1[j,i],knot1[k,i],knot1[g,i])
knot=rbind(knot,xx)
}
}
}
knot2=cbind(knot2,knot)
}
knot2=knot2[2:(z+1),2:(3*m+1)]
a3=nrow(knot2)
aa=rep(1,N)
data1=matrix(ncol=3*m,nrow=N)
data2=data[,2:M]
nk1=nrow(knot2)
GCV=as.matrix(rep(NA,nk1),ncol=1);colnames(GCV)<-"GCV"
MSE=as.matrix(rep(NA,nk1),ncol=1);colnames(MSE)<-"MSE"
SSE=rep(NA,nk1)
SSR=rep(NA,nk1)
Rsq=as.matrix(rep(NA,nk1),ncol=1);colnames(Rsq)<-"Rsq"
knotke=matrix(c(1:nk1),ncol=1);colnames(knotke)<-"knot_ke"
for (i in 1:a3)
{
for (j in 1:(3*m))
{
b=ceiling(j/3)
for (k in 1:N)
{
if (data[k,(b+para+1)]<knot2[i,j]) data1[k,j]=0 else
data1[k,j]=data[k,(b+para+1)]-knot2[i,j]
}
}
mx=as.matrix(cbind(aa,data2,data1))
C=pinv(t(mx)%*%mx)
B=C%*%(t(mx)%*%data[,1])
yhat=mx%*%B
res=data[,1]-yhat
SSE[i]=sum((res)^2)
SSR[i]=sum((yhat-mean(data[,1]))^2)
MSE[i]=SSE[i]/(N)
Rsq[i]=(SSR[i]/(SSR[i]+SSE[i]))*100
A=mx%*%C%*%t(mx)
A1=(F-A)
A2=(sum(diag(A1))/N)^2
GCV[i]=MSE[i]/A2
}
dataAll=as.matrix(cbind(GCV,Rsq,knotke,knot2))
dataG=dataAll[order(GCV),-2]
write.csv(dataAll,file="C:\\Semester 5\\REGNON\\Tugas 6\\DATA ALL knot 3.csv")
cat("==============================================","\n")
cat("HASIL GCV terkecil dengan 3 knot","\n")
cat("==============================================","\n")
print(((dataG[1,1:(2+3*m)])))
cat("Nilai GCV 10 terkecil pertama","\n")
print(dataG[1:10,])
# --- PERBAIKAN: hitung ulang B dari titik knot dengan GCV TERKECIL ---
baris_terbaik = dataG[1, "knot_ke"]
knotgcv = knot2[baris_terbaik, ]
datagcv1=matrix(ncol=3*m,nrow=N)
for (j in 1:(3*m))
{
b=ceiling(j/3)
for (k in 1:N)
{
if (data[k,(b+para+1)]<knotgcv[j]) datagcv1[k,j]=0 else
datagcv1[k,j]=data[k,(b+para+1)]-knotgcv[j]
}
}
mxgcv=as.matrix(cbind(aa,data2,datagcv1))
Cgcv=pinv(t(mxgcv)%*%mxgcv)
B=Cgcv%*%(t(mxgcv)%*%data[,1])
cat("\n")
cat("==============================================","\n")
cat("HASIL ESTIMASI PARAMETER TITIK KNOT KE 3","\n")
cat("==============================================","\n")
print(B)
cat("\n")
}
GCV3(data)
## ==============================================
## HASIL GCV terkecil dengan 3 knot
## ==============================================
## GCV knot_ke
## 18.636070 14057.000000 42.694286 46.760408 69.124082 6.191429
##
## 6.659184 9.231837 37.208571 40.752245 60.242449 65.238571
##
## 66.145102 71.131020 21.514286 23.563265 34.832653 49.381429
##
## 52.737755 71.197551
## Nilai GCV 10 terkecil pertama
## GCV knot_ke
## [1,] 18.63607 14057 42.69429 46.76041 69.12408 6.191429 6.659184 9.231837
## [2,] 18.63904 16006 56.92571 63.02490 69.12408 7.828571 8.530204 9.231837
## [3,] 18.64996 14058 42.69429 46.76041 71.15714 6.191429 6.659184 9.465714
## [4,] 18.65976 16005 56.92571 63.02490 67.09102 7.828571 8.530204 8.997959
## [5,] 18.66287 13706 40.66122 46.76041 69.12408 5.957551 6.659184 9.231837
## [6,] 18.66361 13707 40.66122 46.76041 71.15714 5.957551 6.659184 9.465714
## [7,] 18.67131 16007 56.92571 63.02490 71.15714 7.828571 8.530204 9.465714
## [8,] 18.69623 15816 54.89265 63.02490 69.12408 7.594694 8.530204 9.231837
## [9,] 18.69868 14382 44.72735 46.76041 69.12408 6.425306 6.659184 9.231837
## [10,] 18.70235 15831 54.89265 65.05796 67.09102 7.594694 8.764082 8.997959
##
## [1,] 37.20857 40.75224 60.24245 65.23857 66.14510 71.13102 21.51429 23.56327
## [2,] 49.61143 54.92694 60.24245 68.41143 69.77122 71.13102 28.68571 31.75918
## [3,] 37.20857 40.75224 62.01429 65.23857 66.14510 71.58429 21.51429 23.56327
## [4,] 49.61143 54.92694 58.47061 68.41143 69.77122 70.67776 28.68571 31.75918
## [5,] 35.43673 40.75224 60.24245 64.78531 66.14510 71.13102 20.48980 23.56327
## [6,] 35.43673 40.75224 62.01429 64.78531 66.14510 71.58429 20.48980 23.56327
## [7,] 49.61143 54.92694 62.01429 68.41143 69.77122 71.58429 28.68571 31.75918
## [8,] 47.83959 54.92694 60.24245 67.95816 69.77122 71.13102 27.66122 31.75918
## [9,] 38.98041 40.75224 60.24245 65.69184 66.14510 71.13102 22.53878 23.56327
## [10,] 47.83959 56.69878 58.47061 67.95816 70.22449 70.67776 27.66122 32.78367
##
## [1,] 34.83265 49.38143 52.73776 71.19755
## [2,] 34.83265 61.12857 66.16306 71.19755
## [3,] 35.85714 49.38143 52.73776 72.87571
## [4,] 33.80816 61.12857 66.16306 69.51939
## [5,] 34.83265 47.70327 52.73776 71.19755
## [6,] 35.85714 47.70327 52.73776 72.87571
## [7,] 35.85714 61.12857 66.16306 72.87571
## [8,] 34.83265 59.45041 66.16306 71.19755
## [9,] 34.83265 51.05959 52.73776 71.19755
## [10,] 33.80816 59.45041 67.84122 69.51939
##
## ==============================================
## HASIL ESTIMASI PARAMETER TITIK KNOT KE 3
## ==============================================
## [,1]
## [1,] 95.37246209
## [2,] -0.03266317
## [3,] 0.78251791
## [4,] -0.06708851
## [5,] -0.84045363
## [6,] 0.01901839
## [7,] -0.37636772
## [8,] 0.25879501
## [9,] -0.21956394
## [10,] -0.12011621
## [11,] -12.11865938
## [12,] 10.65241559
## [13,] -0.05039049
## [14,] -0.07747172
## [15,] 0.64210012
## [16,] -1.01592956
## [17,] 3.19168414
## [18,] -3.26669072
## [19,] 1.23141797
## [20,] -0.20262179
## [21,] 0.39611079
## [22,] 0.22850765
## [23,] -2.53034180
## [24,] 3.09616317
## [25,] -0.44966092
# UJI SIGNIFIKANSI TIGA TITIK KNOT
uji=function(alpha,para)
{
knot = read.csv("C:\\Semester 5\\REGNON\\Tugas 6\\DATA ALL knot 3.csv", header=TRUE)
knot = as.matrix(knot)
knot = knot[,-1]
knot = knot[order(knot[,1]), ]
baris_knot = as.numeric(knot[1, 4:21]) # 18 nilai knot terbaik (3*m = 18)
data=as.matrix(data)
ybar=mean(data[,1])
m=para+2
n=nrow(data)
q=ncol(data)
dataA=cbind(data[,m],data[,m],data[,m],
data[,m+1],data[,m+1],data[,m+1],
data[,m+2],data[,m+2],data[,m+2],
data[,m+3],data[,m+3],data[,m+3],
data[,m+4],data[,m+4],data[,m+4],
data[,m+5],data[,m+5],data[,m+5])
dataA=as.matrix(dataA)
satu=rep(1,n)
n1=length(baris_knot) # = 18
data.knot=matrix(ncol=n1,nrow=n)
for (i in 1:n1)
{
for (j in 1:n)
{
if(dataA[j,i]<baris_knot[i]) data.knot[j,i]=0
else data.knot[j,i]=dataA[j,i]-baris_knot[i]
}
}
mx=cbind(satu,data[,2],data.knot[,1:3],data[,3],
data.knot[,4:6],data[,4],data.knot[,7:9],
data[,5],data.knot[,10:12],
data[,6],data.knot[,13:15],
data[,7],data.knot[,16:18])
mx=as.matrix(mx)
B=(pinv(t(mx)%*%mx))%*%t(mx)%*%data[,1]
n1=nrow(B)
yhat=mx%*%B
ybar=mean(data[,1])
res=data[,1]-yhat
SSE=sum((data[,1]-yhat)^2)
SSR=sum((yhat-ybar)^2)
MSE=SSE/(n)
MSR=SSR/(n1-1)
SST=sum((data[,1]-ybar)^2)
Rsq=(SSR/(SSR+SSE))*100
Fhit=MSR/MSE
pvalue=pf(Fhit,(n1-1),(n-n1),lower.tail=FALSE)
if(pvalue<=alpha)
{
cat('---------------------------------------','\n')
cat('Kesimpulan hasil uji simultan','\n')
cat('---------------------------------------','\n')
cat('Tolak Ho yakni minimal terdapat 1 variabel bebas yang signifikan','\n')
cat('','\n')
}
else
{
cat('---------------------------------------','\n')
cat('Kesimpulan hasil uji simultan','\n')
cat('---------------------------------------','\n')
cat('Gagal Tolak Ho yakni semua variabel bebas tidak berpengaruh signifikan','\n')
cat('','\n')
}
thit=rep(NA,n1)
pval=rep(NA,n1)
SE=sqrt(diag(MSE*(pinv(t(mx)%*%mx))))
cat('---------------------------------------------','\n')
cat('Kesimpulan hasil uji parsial','\n')
cat('---------------------------------------------','\n')
for (i in 1:n1)
{
thit[i]=B[i,1]/SE[i]
pval[i]=2*(pt(abs(thit[i]),(n-n1),lower.tail=FALSE))
if (pval[i]<=alpha) cat('Tolak Ho yakni variabel bebas signifikan dengan pvalue',pval[i],'\n')
else cat('Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue',pval[i],'\n')
}
thit=as.matrix(thit)
cat('=============================================','\n')
cat('nilai t hitung','\n')
cat('=============================================','\n')
print(thit)
cat('Analysis of Variance','\n')
cat('=============================================','\n')
cat('Sumber df SS MS Fhit','\n')
cat('Regresi ',(n1-1),' ',SSR,' ',MSR,' ',Fhit,'\n')
cat('Error ',n-n1,' ',SSE,' ',MSE,'\n')
cat('Total ',n-1,' ',SST,'\n')
cat('=============================================','\n')
cat('s=',sqrt(MSE),' Rsq=',Rsq,'\n')
cat('pvalue(F)=',pvalue,'\n')
write.csv(res,file='C:\\Semester 5\\REGNON\\Tugas 6\\OUTPUT UJI RESIDUAL knot3.csv')
write.csv(mx,file='C:\\Semester 5\\REGNON\\Tugas 6\\OUTPUT UJI mx knot3.csv')
write.csv(yhat,file='C:\\Semester 5\\REGNON\\Tugas 6\\OUTPUT UJI yhat knot3.csv')
}
uji(0.1, 0)
## ---------------------------------------
## Kesimpulan hasil uji simultan
## ---------------------------------------
## Tolak Ho yakni minimal terdapat 1 variabel bebas yang signifikan
##
## ---------------------------------------------
## Kesimpulan hasil uji parsial
## ---------------------------------------------
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 7.543555e-05
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.143479
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.2966555
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.4534026
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.3737844
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.414443
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.006623752
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.01045749
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.9309305
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.1263923
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.9247796
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.5158068
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.01937242
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.01916318
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.03426407
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.01574818
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 6.17516e-06
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.7070754
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.5589676
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.2869932
## Gagal tolak Ho yakni variabel tidak signifikan dengan pvalue 0.2078166
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 0.002999219
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 2.204262e-06
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 5.139071e-10
## Tolak Ho yakni variabel bebas signifikan dengan pvalue 1.522783e-06
## =============================================
## nilai t hitung
## =============================================
## [,1]
## [1,] 3.99244848
## [2,] -1.46530994
## [3,] 1.04474833
## [4,] -0.75035375
## [5,] -0.89022218
## [6,] 0.81679564
## [7,] -2.72685961
## [8,] 2.57024868
## [9,] -0.08671882
## [10,] -1.53109623
## [11,] -0.09446360
## [12,] 0.65029547
## [13,] -2.34604214
## [14,] -2.35013381
## [15,] 2.12289898
## [16,] -2.42316052
## [17,] 4.57031285
## [18,] 0.37600610
## [19,] -0.58477674
## [20,] 1.06590374
## [21,] 1.26125979
## [22,] -2.98276846
## [23,] -4.79098178
## [24,] 6.34291011
## [25,] -4.86815459
## Analysis of Variance
## =============================================
## Sumber df SS MS Fhit
## Regresi 24 17588.64 732.8599 43.44853
## Error 489 8669.797 16.86731
## Total 513 26258.43
## =============================================
## s= 4.106983 Rsq= 66.98281
## pvalue(F)= 5.17654e-105