Sunteți pe pagina 1din 4

Lampiran 4.

Script Program Estimasi, Koefisien Determinasi, MSE, dan Uji


Kesesuaian Model
estimasi<-function(data,f)
{
data<-as.matrix(data)
m<-ncol(data)
n<-nrow(data)
N<-n/f
Y<-data[,1]
x<-data[,2:m]
xx<-rep(1,n)
X<-cbind(xx,x)
et<-rep(1,N)
In<-diag(N)
D<-kronecker(In,et)
It<-diag(f)
Jt<-matrix(1,f,f)
p<-N*f
Int<-diag(p)
K<-m

b<-ginverse(t(X)%*%X)%*%t(X)%*%Y
cat("inisialisasi beta awal : \n")
print(b)
U<-matrix(0,N,f)
u<-Y-(X%*%b)

repeat
{

for (i in 1:N)
{
for (j in 1:f)
{
if (i==1)
{
U[i,j]<-u[j]
}
else
{
temp<-i+i+(i-1)+(i-2)+(j-1)
U[i,j]<-u[temp]
}
}
}

jmlh<-0
for (i in 1:N)
{ jml<- 0
for (j in 1:f)
{ jml<-jml+U[i,j]
}
jmlh <-jmlh + jml^2
}

jumlah<-0
for (i in 1:N)
{ jum<- 0
for (j in 1:f)
{ jum<-jum+U[i,j]^2
}
jumlah <-jumlah + jum
}
#untuk uji LM1
jmlhkali<-0
for (i in 1:N)
{ kali<-0
for (j in 2:f)
{ kali<-kali + U[i,j]*U[i,j-1]
}
jmlhkali<-jmlhkali +kali
}

Salpha<-(1/(f-1))*((((1/f)*jmlh)/(N-K))-(jumlah/((N*f)-K)))

Serror<-(jumlah/((N*f)-K))-Salpha

r<-(1/f)*Jt
Bn<-kronecker(In,r)
Wn<-Int-Bn

teta<-Serror/(Serror+(f*Salpha))

r<-(1/f)*Jt
Q<-1/teta
Bn<-kronecker(In,r)
Wn<-Int-Bn
omega<-Wn+(Q*Bn)

Bfgls<-ginverse(t(X)%*%ginverse(omega)%*%X)%*%t(X)%*%omega%*%Y

error<-Bfgls-b
if (max(error)<1e-5)
{
break
}
b<-Bfgls
cat("jadi beta FGLS topi : \n")
print(Bfgls)
}

ytopi<-X%*%Bfgls
utopi<-Y-ytopi
ytopi1<-cbind(Y,ytopi,utopi)
ytopi2<-as.matrix(ytopi1)
cat("
______________________________________________________________________
___\n")
cat(" | y | y-dugaan | u-
dugaan |\n")
cat("
______________________________________________________________________
___\n")
for (h in 1:n)
{
cat(" ",ytopi2[h,1]," ",ytopi2[h,2],"
",ytopi2[h,3],"\n")
}

ybar<-mean(Y)
R2<-sum((ytopi-ybar)^2)/(sum((Y-ybar)^2))

cat("Koefisien determinasi R2 = ",R2)


cat("\n")
MSE<-sum((Y-ytopi)^2)/(n*m-6)
cat("Nilai MSE = ",MSE)
cat("\n")

#UJI KESESUAIAN MODEL


cat("------------------------------------------------------------\n")
cat("*********************KESESUAIAN MODEL******************** **\n")
cat("-------------------------------------------------------------\n")
#Uji Efek Individu
cat("H0: varalpha=0(ketiadaan efek individu) \n")
cat("H1: varalpha tidak sama dengan nol (ada efek individu) \n")
cat("nilai g\n")
g<-((N*f)/(2*(f-1)))*(((jmlh/jumlah)-1)^2)
print(g)
chisquare1<-qchisq(0.95,1)

if(g>chisquare1)
{
z1<-cat("karena g=",g," lebih besar dari chi-
square.tabel=",chisquare1," maka tolak Ho\n")
}
else{
z1<-cat("karena g=",g," kurang dari chi-
square.tabel=",chisquare1," maka terima Ho\n")
}

#Uji Uncorrelated
cat("H0: tidak ada korelasi antar efek individu\n")
cat("H1: ada korelasi antar efek individu\n")
cat("nilai Qh\n")
beta1<-ginverse(t(X)%*%Wn%*%X)%*%t(X)%*%Wn%*%Y
beta2<-Bfgls
bb<-beta1-beta2
varb1<-Serror*ginverse(t(X)%*%Wn%*%X)
varb2<-Serror*ginverse(t(X)%*%omega%*%X)
vvar<-varb1-varb2
Qh<-t(bb)%*%ginverse(vvar)%*%bb
print(Qh)
chisquare2<-qchisq(0.95,6)
if(Qh>chisquare2)
{
z2<-cat("karena Qh=",Qh," lebih besar dari chi-
square.tabel=",chisquare2," maka tolak Ho\n")
}
else{
z2<-cat("karena Qh=",Qh," kurang dari chi-
square.tabel=",chisquare2," maka terima Ho\n")
}

#Uji Korelasi Serial


cat("H0: tidak ada korelasi serial antar error\n")
cat("H1: ada korelasi serial antar efek error\n")
cat("nilai LM1\n")
s<-kronecker(In,Jt)
A<-((t(utopi)%*%s%*%utopi)/jumlah)-1
B<-jmlhkali/jumlah
LM1<-((N*(f^2))/(2*(f-1)*(f-2)))*((A^2)-(4*A*B)+(2*f*(B^2)))
print(LM1)
chisquare3<-qchisq(0.95,2)
if(LM1>chisquare3)
{
z3<-cat("karena LM1=",LM1," lebih besar dari chi-
square.tabel=",chisquare3," maka tolak Ho\n")
}
else{
z3<-cat("karena LM1=",LM1," kurang dari chi-
square.tabel=",chisquare3," maka terima Ho\n")
}

cat("======== UJI NORMALITAS VARIABEL RANDOM ERROR ========\n")


#print(utopi)
(ks.gof(utopi,distribution="normal"))

S-ar putea să vă placă și