The effect has been modelled as a random slope if you didn't code it as a factor in the data. The value on the y axis is the estimated slope; it will be a little smaller in absolute value than if you use Fire
as a linear fixed effect in the model formula because it is being penalised (shrunk) towards zero.
This likely should have been fitted as a binary fixed effect; code Fire
as a factor with two levels (Yes
/No
, or Burned
/ Unburned
say). Just because a variable represents something that is random over the data doesn't mean it is a suitable random effect; fire here has some average effect and the fixed effect describes that well. There's nothing stopping you from using Fire
coded as a factor as a random effect via the smooth, but with only two levels it's not going the two intercepts aren't going to be estimate that precisely.
Now, if you had repeated observations on n
sites and you thought the Fire
effect varied across the n
sites then you could do s(Site, Fire, bs = 're')
where both Site
and Fire
are factors and you'll get different Fire
effects for each Site
. Then the plot you show would have many points on it as it is a QQ-plot of the estimated values for the effect of Fire
in each Site
, hence 1 point per Site
. Given the way this model is estimated, these are somewhat assumed to be distributed Gaussian with some variance that is inversely proportional to the smoothness parameter selected by gam()
when fitting this random effect smoother. That's why the default plot is as it is; it's a QQ-plot comparing the observed distribution of estimate values of the random effects against the theoretical expectation.