non-conformable arguments when read %*%

28 Views Asked by At

This is my Code, maybe you know the method of Geographically Weighted Negative Binomial and can fix the error

> gemes2=function(X,y,W1,phi1,b1){
+   beta=matrix(c(0),6,6,byrow=T)
+   #beta[1,1]=phi1
+   #beta[1,2:6]=b1
+   satu=rep(1,38)
+   dua=as.matrix(satu)
+   bxx=rbind(c(phi1,beta[1,2:6]))
+   for(i in 1:6){
+     Xb1=as.matrix(X)%*%as.matrix(bxx)
+     mu1=exp(Xb1+log(n))
+     delta11=((log(1+phi1*mu1)-digamma(y+(1/phi1))+digamma(1/phi1))/phi1^2)+
+       ((y-mu1)/((1+phi1*mu1)*phi1))
+     delta11=as.matrix(delta11)
+     p11= t(satu) %*% W1 %*% delta11
+     delta21=(y-mu1)/(1+phi1*mu1)
+     delta21=as.matrix(delta21)
+     p21=t(X)%*%as.matrix(W1)%*%delta21
+     p21=as.matrix(p21)
+     gt1=rbind(p11,p21)
+     delta31=((trigamma(y+(1/phi1))-trigamma(1/phi1))/phi1^4)+((2*digamma(y+(1/phi1))-
+                                                                  2*digamma(1/phi1)-2*log(1+phi1*mu1))/phi1^3)+((2*mu1)/(phi1^2*(1+phi1*mu1)))+
+       (((y+(1/phi1))*mu1^2)/(1+phi1*mu1)^2)-(y/phi1^2)
+     delta31=as.matrix(delta31)
+     p31=t(satu)%*%W1%*%delta31
+     p31=as.matrix(p31)
+     delta41=mu1*(mu1-y)/(1+phi1*mu1)^2
+     delta41=as.matrix(delta41)
+     p41=t(X)%*%W1%*%delta41
+     p41=as.matrix(p41)
+     h11=rbind(p31,p41)
+     delta51=mu1*(phi1*y+1)/(1+phi1*mu1)^2
+     delta51=t(delta51)
+     delta51=c(delta51)
+     delta51=as.matrix(diag(delta51))
+     p51=t(x)%*%as.matrix(W1)%*%delta51%*%as.matrix(x)
+     p51=-1*p51
+     p51=as.matrix(p51)
+     h21=rbind(t(p41),p51)
+     H1=cbind(h11,h21)
+     H11=ginv(H1)
+     beta[i,]=(t(b01)-H11%*%gt1)
+     phi1=beta[i,1]
+     b01=t(beta[i,])
+     bxx=beta[i,2:6]}
+   return(list(beta=beta,hessian=H1))}
> 
> #Fungsi GWNBR
> gwnbr1=function(x,y,W,teta){
+   beta=bn$coefficients
+   param=matrix(c(0),nrow(x),ncol(x)+1,byrow=T)
+   zhit=matrix(c(0),nrow(x),ncol(x),byrow=T)
+   for(i in 1:38){
+     ww=as.matrix(diag(W[i,]))
+     hit=gemes2(x,y,ww,teta,beta)
+     parameter=hit$beta
+     param[i,]=hit$beta[6,]
+     write.csv(hit$hessian,file=paste("hessian",i,".csv"))
+     invh= -ginv(as.matrix(hit$hessian))
+     for(j in 1:ncol(x)){
+       zhit[i,j]=param[i,j]/invh[j+1,j+1]}}
+   return(list(koefisien=param,Z_hitung=zhit))}
> 
> 
> #Memanggil GWNBR
> datad=read.table("D:/data baru lg.csv",header=T, sep=";")
> bobot=as.matrix(read.table("D:/pembobot fix.csv",header=F,sep=";"))
> xx=datad[,3:6]
> bny=datad[,2]
> x=as.matrix(cbind(1,xx))
> y=c(bny)
> mod=gwnbr1(x,y,bobot,9.21)
Error in as.matrix(X) %*% as.matrix(bxx) : non-conformable arguments                                                          

Today i can fix the error, but when i was change the predictor variables in data. i don't know why the syntax error again. my laptop can't read %*% in r

As you can see I get the error, from the causality method:Error in as.matrix(X) %*% as.matrix(bxx) : non-conformable arguments

0

There are 0 best solutions below