Open gvegayon opened 6 years ago
Hi - I'd be interested to hear if you've thought about this any more or made any progress on a separate or supplementary package to netdiffuseR. I'm thinking about the adoption of various health behaviors, which can come and go (as you discuss above). I'd like to use netdiffuseR, just not sure if its currently able to handle multiple adoptions/deadoptions.
Natalie
I'm sorry but we haven't made any progress on this issue, and we don't have any concrete plans for it. I would encourage you to take a look at EpiModel.
The idea
While the social phenomena that inspired netdiffuseR was the diffusion of innovations which usually is assumed to be permanent (for example, color TV, internet, etc.), the more general case is about social behavior that need not be permanent, such as, smoking, political position, etc.
It is then the case that if we want to extend the use netdiffuseR it is necessary to implement disadoption of behavior as well, in other words, more than using Time of Adoption, the more general case requires using spells (if continuous) or more generally a sort of cumulative adoption matrix in which individuals are allowed to disadopt.
Making such change can be huge in the package since most of the methods and core functionalities depend on time of adoption, which does not provide the flexibility needed.
Perhaps, a first solution would be to actually start a new R package that relates to netdiffuseR. This can be in line with the development of a simulation-only oriented R package that allows implementing ABM.
If we change this to have multiple adoptions, then, a bunch of functions will have to be modified, in essence, all of those that use
toa
as input.Functions and structure using
toa
threshold
: Essentially, the meaning of this concepts changes when we have multiple adoptions. Since this is not for the first adoption, this would be a threshold for "expressing" the behavior at all, e.g. using a particular technology in the workplace such as Slack, or a jargon, or even smoking.plot_diffnet2
: Since there may be multiple adoptions, then it does not make sense to use a single (static) plot to represent the dynamics of the diffusion process.diffnet
Class: The matrixadopt
would be suffering from this. And alsotoa
.cumadopt
on the other hand should be OK. The most flexible way of storing adoption times is using spells, i.e. time-stamped data. But the main drawback of this would be the fact that all the rest of the data would be treated as discrete (pretty much the network and the attributes). Unless we change the way we store data, spells should be discrete.infect
andsuscept
functions: These use toa heavily. But this can be changed to a dynamic adopt matrix.