During the 13th General Election (GE13) we came up with a methodology for estimating individual voter support based on polling lane results from the 12th General Election (GE12). The results of these calculations were used to design a program to predict election results based on ‘swing’ parameters fed in e.g. ethnic support; age group; increasing partisanship etc. You can read a summary of this method at the end of this post.

Using the polling lane results of the 13th General Election we can compare our previous calculations and come up with an estimated swing. This can help inform analysts and campigners. We have just completed our analysis for Kuala Besut in anticipation of tomorrow’s by-election and these are the results.

Kuala Besut is a rural DUN (State Assembly seat) in Terengganu. Based on our GE13 data there are 17,679 voters of which 16500 regular voters and 1179 postal and early voters. 98.7% of the voters are ethnic Malays. The chart below illustrates the breakdown of voters by age group. Youth (ages 21-30) make-up 31% of the regular voters.


Due to some complications in linking early voter results to individual voters we have excluded the 1179 voters from our analysis. We will use a general estimation for the 1179 voters in our later simulations. As our previous calculations were based on Parliament seat results, we will use the same seat (P033.Besut) for this DUN. Voting patterns for DUN and Parliament were similar for Kuala Besut in GE13.

Predicted GE13 Support (based on GE12 results)

Leaning BN: 15,525 (94.09%)

Fence-sitters: 178 (1.08%)

Leaning PR: 797 (4.83%)

Estimated GE13 Support (based on GE13 results)

Leaning BN: 14,113 (85.53%)

Fence-sitters: 161 (0.98%)

Leaning PR: 2,226 (13.49%)

‘Leaning BN’ means these voters have a >50% probability of voting for BN. In GE13 BN obtained 8,243 votes from the 16,500 voters, well short of the 15,525 and 14,113 voters.

By comparing the 2 datasets we can estimate the swing in support by the voters. For this analysis we will focus on the swing to and away from PR.

The following histograms illustrate the distribution of probabilities among voters. The blue bars represent ‘Leaning BN’ voters. The 50% bar represents the fence-sitters. The red bars represent fence-sitters and ‘Leaning PR’ voters – we combine the 2 to show PR’s potential base.


While the majority of support for PR is still below 50% the minimum support is now 29.5% instead of 0 – 24%. Voters are no longer concentrated in low support numbers (such as 2589 voters at 32% support) but instead widely distributed. The average support for PR for each voter has shifted +3.59%.


This chart shows the swing by age. The biggest swings were from ages 21-35, while ages 51-61 experienced minimal or negative swing. Ages 65 – 82 had an average swing of +3.7%. When we combine this graph with the number of regular voters by age, we can see the impact of the swing.


PR’s greatest challenges are voters aged 36 – 64. This forms a noticeable valley in the graph and covers 7880 regular voters (44.57% of total voters). 690 postal and early voters (3.9% of total voters) voted for BN at state-level in GE13. PR has good odds in this by-election if they build on their previous gains, particularly the youth vote. BN can focus on this valley or pursue the youth vote. The winning scenarios are is something we will explore in voter simulations later today.

Polling District Swing

The following is a list of polling districts (daerah mengundi) with their average estimated swing to PR and estimated support for PR based on GE13 results. The list is sorted by support levels and only covers averages of regular voters.

  1. Kampung Nangka (52.53% support, +7% swing)
  2. Bukit Puteri (49.79% support, +4% swing)
  3. Kampung Baru (46.68% support, +3.66% swing)
  4. Kampung Nail (39.17% support, +4.5% swing)
  5. Seberang Barat (38.29% support, +3.67% swing)
  6. Tok Saboh (38.12% support, +3.9% swing)
  7. Seberang Barat Luar (34.29% support, +1.67% swing)
  8. Pulau Perhentian (29.52% support, +0.103% swing)

(Update 23 July 1.40pm: Kampung Baru and Pulau Perhentian had incorrect values when this post was first published. That error has been corrected.)

Summary of Methodology

Voters are assigned to polling lanes based on their age and polling district (the area they reside in). A lane can hold 350-700+ voters, with a common size of 400-650 voters. From the results of the lane, we can assign a probability value to each voter in that lane.

For example if 400/600 votes went to BN, then the average probability of voters in that lane voting for BN is 66.67%. We can take the analysis a step further by adjusting for ethnicity, because each lane will have a fixed maximum number of ethnic voters. If there are 500 Malay voters in our example that means BN obtained at most 400 Malay votes and at least 300 Malay votes. This changes the probability of Malays voting for BN to a value between (300/500) to (400/500), or 60% – 80%. We take the average of this, giving a probability of 70%.

Note that this calculation does assume that turnout is evenly distributed by race. While that is not true, high voter turnout rates and ethnically dominant lanes reduce the impact of error. We tested both the average probability and the ethnicity-adjusted probabilities in our GE13 simulations and the ethnicity-adjusted probabilities yielded greater accuracy. We also had to take into account that voters migrate between constituencies. When they do that, they bring their individual probabilities with them. This helps avoid inaccuracies that are introduced by focusing on polling district results from the previous election.

Published On: July 23rd, 2013 / Categories: Analyses / Tags: , , , , , , , , , /