Distinguishing statistical (global) and network (local) effects

I am analyzing how users of specific service affect each other by observing communication between them and changes in membership plans.

The social network consists of 3M users and 40M connections among them. To determine the influence of a specific user I observe the sequence of membership plans changes. For example there is a network of users A, B, C, D, and E and the connections

A SENT_MESSAGE_TO B
C SENT_MESSAGE_TO B
D SENT_MESSAGE_TO B
D SENT_MESSAGE_TO E


and the membership log

B changed the subscription plan from free to premium in 2011-10-11
A changed the subscription plan from free to premium in 2011-10-18
D changed the subscription plan from free to premium in 2011-10-22


As the users are connected to each other there are (I assume) two possible causes for membership plan change:

• The person was either influenced by advertisment, personal satisfaction or in generally the global effects had a major influence on him
• the person noticed the behavior of his friends (connections) and imitated the majority or a specific neighbor

As there is possible to observe the subscription plan changes in whole network I guess I could statistically determine, what was the effect of a particular advertising campaign or price change (for example I know the dates of each campaign and price change) in global scale but don't know how to use this insight to distinguish interpersonal effects from global effects.

One guess (a simple example) would be to say 'if the time difference in plan change between two connected users is more than [determined period] then we assume the second change wasn't affected by first one'.

Another guess could be 'if two users exchanged less than [specific number of messages] then there is no influence among each other'.

Anyway I would like to find or develop a solution for distinguishing global and network effects in social network data and would be very thankful if anyone suggested any good article with similar problem or suggest an approach for dealing with such problems.

Thank you!

After accounting for global effects, a tool from spatial statistics-- Moran's $I$-- could be used for testing whether network effects are significant. The calculation of $I$ (which can be done using existing software such as the R package spdep) relies on introducing a weight matrix $W$ with entries $w_{ij}$, representing the distance between two individuals. Obviously, in spatial statistics, distance retains its geographical interpretation; however, there is no reason $W$ could not be used with the host of distance measures used in social network analysis. For example, weights could be based on the Jaccard distance e.g. $w_{ij} = 1 - \frac{|N_i \cap N_j|}{|N_i \cup N_j|}$, where $N_i$ is the set of neighbors of individual $i$ and $|\cdot|$ represents the cardinality of a given set.
To test for statistical significance of the observed $I$ from data that is not normally distributed (as would be expected from residuals from a logistic regression), one could use the bootstrap, sampling individuals and their neighbors at random with replacement, recalculating the weight matrix and then recalculating $I$. After repeating this procedure $B$ times the bootstrap $p$-value is the number of bootstrap $I$'s more extreme than the observed $I$ divided by $B$.
Thus, roughly speaking, the procedure would involve first performing logistic regression, calculating a weight matrix based on a social dissimilarity measure between individuals, calculating $I$ with $W$ and the residuals from the regression, and then bootstrapping the data to test whether $I$ is significant.