1. A method of operating a data processing system to infer demographic information for a user of a wireless communication device, the method comprising: processing a plurality of call detail records (CDRs) to generate a plurality of call graphs having different time slices based on time ranges when data in the CDRs was collected, wherein the call graphs comprise nodes that represent individual callers and edges between the nodes that represent bi-directional communication between the individual callers; identifying neighbors of the user that have a high likelihood of sharing a common demographic attribute with the user based on communication features and structural features among the neighbors on one of the call graphs, wherein the common demographic attribute comprises a similarity of a home location of the user and the neighbors; and identifying a most similar neighbor among the neighbors of the user that has a highest likelihood of sharing the common demographic attribute with the user by at least identifying a neighbor that has a shortest average call duration with the user and a greatest number of common contacts shared with the user.