2016-07-11 10 views
-1

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) 
+0

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

Antwort

1

Ich hatte das gleiche Problem und habe den Paketbetreuer zur Klärung kontaktiert. In der Zwischenzeit konnte ich die rivDP() Funktion erhalten, indem das Herunterladen die Version 2.2-5 von 2012 arbeiten Stellen Sie sicher, RTools zuerst installieren (von hier: https://cran.r-project.org/bin/windows/Rtools/) und dann den folgenden Code ausführen:

packageurl <- "https://cran.r-project.org/src/contrib/Archive/bayesm/bayesm_2.2-5.tar.gz" 
install.packages(packageurl, repos=NULL, type="source") 

library(bayesm) 
Verwandte Themen