# PARSER EXPECTED: \<expression assignable to left-hand side\>

**URL:** <https://discourse.mc-stan.org/t/parser-expected-expression-assignable-to-left-hand-side/6075>\
**Category:** Modeling\
**Created:** [October 18, 2018, 9:37am UTC](https://discourse.mc-stan.org/t/parser-expected-expression-assignable-to-left-hand-side/6075 "2018-10-18T09:37:08Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Qian\_Xiong](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.mc-stan.org/qian_xiong/32/3195_2.png) [@Qian\_Xiong](https://discourse.mc-stan.org/u/Qian_Xiong)\
**Post date:** [October 18, 2018, 9:37am UTC](https://discourse.mc-stan.org/t/parser-expected-expression-assignable-to-left-hand-side/6075/1 "2018-10-18T09:37:08Z")

</div>

Below is my model, however, when I run it, always showed that

## Cannot assign to variable outside of declaration block; left-hand-side variable origin=parameter error in ‘model49df3845277a\_simulation\_v4’ at line 24, column 13

```
22: target += log(normal_cdf( x1[n] , alpha, sigma) - normal_cdf( x2[n] , alpha, sigma)); // interval censored titer
23: for (n in 1:N)
24: theta[n] = inv_logit(b_0 + b_titer * x1[n]); // infection rate
                ^
25: for (n in 1:N)

```

* * *

PARSER EXPECTED:   
Error in stanc(file = file, model\_code = model\_code, model\_name = model\_name, :  
failed to parse Stan model ‘simulation\_v4’ due to the above error.

data {  
int\<lower=0\> N;  
real\<lower=0\> x1[N];  
real\<lower=0\> x2[N];  
int\<lower=0,upper=1\> output[N];  
}  
parameters {  
real alpha;  
real\<lower=0\> sigma;  
real theta;  
real b\_0;  
real b\_titer;  
}  
model {  
alpha ~ normal(0,10);  
sigma ~ cauchy(0,10);  
theta ~ cauchy(0,10);  
b\_0 ~ cauchy(0,10);  
b\_titer ~ cauchy(0,10);  
for (n in 1:N)  
target += log(normal\_cdf( x1r[n] , alpha, sigma) - normal\_cdf( x2[n] , alpha, sigma));  
for (n in 1:N)  
theta[n] = inv\_logit(b\_0 + b\_titer \* x1[n]);  
for (n in 1:N)  
target += bernoulli\_lpmf(output[n] | theta[n]);  
print(alpha, sigma, theta, b\_0, b\_titer);  
}

---

<div class="post-metadata">

**Author:** ![hhau](https://avatars.discourse-cdn.com/v4/letter/h/2bfe46/32.png) [@hhau](https://discourse.mc-stan.org/u/hhau)\
**Post date:** [October 18, 2018, 10:07am UTC](https://discourse.mc-stan.org/t/parser-expected-expression-assignable-to-left-hand-side/6075/2 "2018-10-18T10:07:04Z")

</div>

You declare theta as `real theta` in the parameters block, i.e. a single real number. In the model block you say `theta[n] = inv_logit(b_0 + b_titer * x1[n]);` which implies `theta` is a vector. You probably need to change the way theta is defined in the parameters block.

---

<div class="post-metadata">

**Author:** ![Qian\_Xiong](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.mc-stan.org/qian_xiong/32/3195_2.png) [@Qian\_Xiong](https://discourse.mc-stan.org/u/Qian_Xiong)\
**Post date:** [October 19, 2018, 1:46am UTC](https://discourse.mc-stan.org/t/parser-expected-expression-assignable-to-left-hand-side/6075/3 "2018-10-19T01:46:04Z")

</div>

yes, it’s true, but I change

> real theta;

as

> vector[N] theta;

it still doesn’t work

---

<div class="post-metadata">

**Author:** ![stijn](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.mc-stan.org/stijn/32/105_2.png) [@stijn](https://discourse.mc-stan.org/u/stijn)\
**Post date:** [October 19, 2018, 2:09am UTC](https://discourse.mc-stan.org/t/parser-expected-expression-assignable-to-left-hand-side/6075/4 "2018-10-19T02:09:24Z")

</div>

```
vector[N] theta = inv_logit(b_0 + b_titer * x1);

```

needs to be in the transformed parameter block. See Chapter 6 in the Stan Reference Manual (version 2.17) for an explanation of the different blocks.

---

<div class="post-metadata">

**Author:** ![Qian\_Xiong](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.mc-stan.org/qian_xiong/32/3195_2.png) [@Qian\_Xiong](https://discourse.mc-stan.org/u/Qian_Xiong)\
**Post date:** [October 19, 2018, 2:10am UTC](https://discourse.mc-stan.org/t/parser-expected-expression-assignable-to-left-hand-side/6075/5 "2018-10-19T02:10:53Z")

</div>

oh, I just debug successfully, thanks, I put them together, I think you are right, theta shouldn’t belong to parameters block.

Thanks all
