Well the colonist.house property is a reference to the building id of where they live. So if colonist.house = 0, that means that one specific colonist has no house, i, which case his happiness goes down and it adds one "point" to the city homeless unhappiness stat.
The thing is, that the unhappiness graph is based on the last certain number (i think maybe 600 but I don't remember for sure) of colonist "complaints" logged, using the addColoniseWoeStat function. So that if nobody has been complaining for quite some time, you might still have stats there like 'homelessness' that have not yet fallen off of the radar.
I think what I should actually do is continually clear out the old stats if nobody is currently complaining about anything.