It will take a full cycle of polling before we have a sense of the immediate impact of the change in Liberal leadership. So I would not read too much into today's result.
Ignoring my own advice, I thought it would interesting to drop the ReachTEl poll into the usual aggregation. This is the one where the house effects sum to zero. I made an adjustment to the polling model to allow for a discontinuity in the temporal element of the model for the leadership change on 14 September 2015. (I used a similar discontinuity technique in 2013 when Rudd replaced Gillard).
The result, which should be consumed with more than the usual pinch of salt, is a tie. This is unsurprising given the house effect the model applies to the one-and-only post discontinuity poll.
For the nerds among you, the discontinuity model I used follows:
model {
## -- observational model
for(poll in 1:n_polls) { # for each observed poll result ...
yhat[poll] <- houseEffect[house[poll]] + hidden_voting_intention[day[poll]]
y[poll] ~ dnorm(yhat[poll], samplePrecision[poll]) # distribution
}
## -- temporal model - with one discontinuity
hidden_voting_intention[1] ~ dunif(0.3, 0.7)
for(i in 2:(discontinuity-1)) {
hidden_voting_intention[i] ~ dnorm(hidden_voting_intention[i-1], walkPrecision)
}
hidden_voting_intention[discontinuity] ~ dnorm(hidden_voting_intention[discontinuity-1]+discontinuityValue, walkPrecision)
for (j in (discontinuity+1):n_span) {
hidden_voting_intention[j] ~ dnorm(hidden_voting_intention[j-1], walkPrecision)
}
sigmaWalk ~ dunif(0, 0.01)
walkPrecision <- pow(sigmaWalk, -2)
discontinuityValue ~ dunif(-0.1, 0.1) ## contextually uninformative prior
## -- house effects model
for(i in 2:n_houses) { # for each polling house, except the first ...
houseEffect[i] ~ dunif(-0.15, 0.15)
}
houseEffect[1] <- -sum( houseEffect[2:n_houses] )
}


No comments:
Post a Comment