data {
int N;
int K;
matrix[N,K] X;
vector[N] y;
}
parameters{
real a;
vector[K] b;
real<lower=0> sigma;
//vector<lower=0>[K] sigma2;
real<lower=0>[K] sigma2;
}
transformed parameters{
vector[N] mu;
mu=X*b+a;
// mu=X*b;
}
model{
//b ~ normal(0,sigma2);
b ~ double_exponential(0,sigma2);
//b ~ double_exponential(0,sigma2);
y ~ normal(mu,sigma);
}
x<-tmp3[,5]
X<-dummy(x)
y<-as.numeric(tmp3[,1])
tmp<-list(x=X,y=y,N=length(x),K=length(table(x)))
fit<-stan(file="test0_lm2.stan",data=tmp,seed=1235,chains=2)
ms<-extract(fit)
plot(factor(names(X[1,])),apply(ms$b,2,mean),ylim=c(-30,30))
points(factor(names(X[1,])),apply(ms$b,2,function(x){quantile(x,0.9)}),col=2)
points(factor(names(X[1,])),apply(ms$b,2,function(x){quantile(x,0.1)}),col=2)
names(X[1,])
abline(h=0,lty=2)
data.frame(factor(names(X[1,])),apply(ms$b,2,mean),apply(ms$b,2,function(x){quantile(x,0.1)}),apply(ms$b,2,function(x){quantile(x,0.9)}))