This is the code used for a multiple regression with a t student for a robust result, but what if i use more than one predictor? what should i modify in this code? can you help me?
data {
int<lower=1> Ntotal ;
real x[Ntotal] ;
real y[Ntotal] ;
real meanY ;
real sdY ;
real meanX ;
real sdX ;
}
transformed data {
real unifLo ;
real unifHi ;
real expLambda ;
real beta0sigma ;
real beta1sigma ;
unifLo <- sdY/1000 ;
unifHi <- sdY*1000 ;
expLambda <- 1/30.0 ;
beta1sigma <- 10*fabs(sdY/sdX) ;
beta0sigma <- 10*fabs(meanX*sdY/sdX) ;
}
parameters {
real beta0 ;
real beta1 ;
real<lower=0> nu ;
real<lower=0> sigma ;
}
model {
sigma ~ uniform( unifLo , unifHi ) ;
nu ~ exponential( expLambda ) ;
beta0 ~ normal( 0 , beta0sigma ) ;
beta1 ~ normal( 0 , beta1sigma ) ;
for ( i in 1:Ntotal ) {
y[i] ~ student_t( nu , beta0 + beta1 * x[i] , sigma ) ;
}
}
in r i use this code for the data
dataList = list(
x = x ,
y = y ,
Ntotal = length(y) ,
meanY = mean(y) ,
sdY = sd(y) ,
meanX = mean(x) ,
sdX = sd(x)
)
but x is a vector here, i want a matrix cause of multiple predictor, thanks in advance