Aha, excellente question !!
J'aurais aussi proposé naïvement une courbe logisitique en forme de S, mais il s'agit évidemment d'un mauvais ajustement. Pour autant que je sache, l'augmentation constante est approximative car YouTube comptabilise les vues uniques (une par adresse IP), il ne peut donc y avoir plus de vues que d'ordinateurs.
Nous pourrions utiliser un modèle épidémiologique où les personnes ont des susceptibilités différentes. Pour simplifier les choses, nous pourrions les diviser en deux groupes: le groupe à risque élevé (par exemple les enfants) et le groupe à risque faible (par exemple les adultes). Appelons la proportion d'enfants "infectés" et la proportion d'adultes "infectés" au temps . J'appellerai le nombre (inconnu) d'individus du groupe à risque élevé et le nombre (également inconnu) d'individus du groupe à faible risque.x(t)y(t)tXY
x˙(t)=r1(x(t)+y(t))(X−x(t))
y˙(t)=r2(x(t)+y(t))(Y−y(t)),
où . Je ne sais pas comment résoudre ce système (peut-être que @EpiGrad le ferait), mais si vous regardez vos graphiques, nous pourrions faire quelques hypothèses simplificatrices. Parce que la croissance ne sature pas, on peut supposer que est très grand et est petit, our1>r2Yy
x˙(t)=r1x(t)(X−x(t))
y˙(t)=r2x(t),
qui prédit la croissance linéaire une fois que le groupe à haut risque est complètement infecté. Notez qu'avec ce modèle, il n'y a aucune raison de supposer que , bien au contraire, car le grand terme est maintenant compris dans .r1>r2Y−y(t)r2
Ce système résout à
x(t)=XC1eXr1t1+C1eXr1t
y(t)=r2∫x(t)dt+C2=r2r1log(1+C1eXr1t)+C2,
où et sont des constantes d'intégration. La population totale "infectée" est alors
, qui a 3 paramètres et 2 constantes d'intégration (conditions initiales). Je ne sais pas à quel point il serait facile de s'y adapter ...C1C2x(t)+y(t)
Mise à jour: en jouant avec les paramètres, je ne pouvais pas reproduire la forme de la courbe supérieure avec ce modèle, la transition de à est toujours plus nette que précédemment. En continuant avec la même idée, nous pourrions encore supposer qu'il existe deux types d’utilisateurs d’Internet: les "partageurs" et les "solitaires" . Les partageurs s'infectent les uns les autres, les solitaires se heurtent à la vidéo par hasard. Le modèle est0600,000,000x(t)y(t)
x˙(t)=r1x(t)(X−x(t))
y˙(t)=r2,
et résout à
x(t)=XC1eXr1t1+C1eXr1t
y(t)=r2t+C2.
Nous pourrions supposer que , c'est-à - dire qu'il n'y a que le patient 0 à , ce qui donne car est un grand nombre. donc on peut supposer que . Maintenant, seuls les 3 paramètres , et déterminent la dynamique.x(0)=1t=0C1=1X−1≈1XXC2=y(0)C2=0Xr1r2
Même avec ce modèle, il semble que la flexion soit très forte, ce n’est pas un bon ajustement et le modèle doit donc être faux. Cela rend le problème très intéressant en fait. Par exemple, la figure ci-dessous a été construite avec , et .X=600,000,000r1=3.667⋅10−10r2=1,000,000
Mise à jour: D'après les commentaires que j'ai recueillis, Youtube comptabilise les vues (de manière secrète) et non les adresses IP uniques, ce qui fait toute la différence. Retour à la planche à dessin.
Pour rester simple, supposons que les téléspectateurs sont "infectés" par la vidéo. Ils reviennent le regarder régulièrement jusqu'à ce qu'ils éliminent l'infection. L'un des modèles les plus simples est le SIR (Susceptible-Infected-Resistant), qui est le suivant:
˙ I (t)=αS(t)I(t)-βI(t) ˙ R (t)=βI(t)
S˙(t)=−αS(t)I(t)
I˙(t)=αS(t)I(t)−βI(t)
R˙(t)=βI(t)
où est le taux d'infection et le taux de clairance. Le nombre total de vues est tel que , où est la moyenne des vues par jour par individu infecté.ß x ( t ) ˙ x ( t ) = k I ( t ) kαβx(t)x˙(t)=kI(t)k
Dans ce modèle, le nombre de vues commence à augmenter brusquement quelque temps après le début de l'infection, ce qui n'est pas le cas dans les données d'origine, peut-être parce que les vidéos se propagent également de manière non virale (ou meme). Je ne suis pas un expert dans l'estimation des paramètres du modèle SIR. En jouant avec des valeurs différentes, voici ce que j’ai trouvé (en R).
S0 = 1e7; a = 5e-8; b = 0.01 ; k = 1.2
views = 0; S = S0; I = 1;
# Exrapolate 1 year after the onset.
for (i in 1:365) {
dS = -a*I*S;
dI = a*I*S - b*I;
S = S+dS;
I = I+dI;
views[i+1] = views[i] + k*I
}
par(mfrow=c(2,1))
plot(views[1:95], type='l', lwd=2, ylim=c(0,6e8))
plot(views, type='n', lwd=2)
lines(views[1:95], type='l', lwd=2)
lines(96:365, views[96:365], type='l', lty=2)
Le modèle n'est évidemment pas parfait et pourrait être complété de nombreuses manières. Cette ébauche très approximative prédit un milliard de vues vers mars 2013, voyons ...