Ich habe ein Problem bei der Anpassung der instrumentellen Variablenmodelle mit Kovariaten mit dem Bayesm-Paket in R. Hinzufügen von Kovariaten führt zu der Fehlermeldung: "Fehler: join_cols()/join_vert(): Anzahl der Spalten muss gleich sein "R Fehler: join_cols()/join_vert(): Anzahl der Spalten muss gleich sein
Der Fehler rührt von der über Rcpp aufgerufenen externen Funktion 'rivDP_rcpp_loop.cpp' her. Ich bin jedoch nicht fähig genug, um das Problem auf R-Niveau zu behandeln.
Ich konstruierte ein Beispiel basierend auf dem Funktionsbeispiel, das zu dem Fehler auf meinem Rechner führt.
##
## simulate scaled log-normal errors and run
##
set.seed(66)
k=10
delta=1.5
Sigma=matrix(c(1,.6,.6,1),ncol=2)
N=1000
tbeta=4
set.seed(66)
scalefactor=.6
root=chol(scalefactor*Sigma)
mu=c(1,1)
##
## compute interquartile ranges
##
ninterq=qnorm(.75)-qnorm(.25)
error=matrix(rnorm(100000*2),ncol=2)
error=t(t(error)+mu)
Err=t(t(exp(error))-exp(mu+.5*scalefactor*diag(Sigma)))
lnNinterq=quantile(Err[,1],prob=.75)-quantile(Err[,1],prob=.25)
##
## simulate data
##
error=matrix(rnorm(N*2),ncol=2)%*%root
error=t(t(error)+mu)
Err=t(t(exp(error))-exp(mu+.5*scalefactor*diag(Sigma)))
#
# scale appropriately
Err[,1]=Err[,1]*ninterq/lnNinterq
Err[,2]=Err[,2]*ninterq/lnNinterq
z=matrix(runif(k*N),ncol=k)
x=z%*%(delta*c(rep(1,k)))+Err[,1]
y=x*tbeta+Err[,2]
w<-matrix(rnorm(10000),ncol=10)
# set intial values for MCMC
Data = list(); Mcmc=list()
Data$z<-cbind(z,w); Data$x=x; Data$y=y; Data$w<-w
# start MCMC and keep results
Mcmc$maxuniq=100
Mcmc$R=R
end=Mcmc$R
begin=100
out=rivDP(Data=Data,Mcmc=Mcmc)
Vielen Dank für den Vorschlag. Ich habe das auf unseren Cluster-Maschinen versucht, aber es hat nicht funktioniert und immer noch den gleichen Fehler erzeugt. Aus dem Kontakt mit dem Autor des Pakets habe ich erfahren, dass die Änderung einiger Algorithmen auf Rcpp die Ursache des Problems und eine neue Version des Pakets ist, das für September geplant ist. – alex2006