Having done some work in this space I can tell you the exact process. Applications on your phone provide a maid. Mobile Application ID. Which reports back it's(the phones) geo location. Using some basic statistics regarding location, duration of stay, time of day, you infer home address, work address. Once you have a small foothold you go to aggregated data repositories and run a query. Once you get a positive hit the rest is dead simple.