Amélioration de mon modèle prédictif du nombre de membres


#9

Je confirme ce que dit @elois. Je fais partir mes mesures du début de la Ğ1 (08/03/2017 15:32:07), en regroupant par 24h. Je ne pense pas qu’il y ait d’erreur, vu que je retombe toujours sur le total affiché par Duniter.
@Galuel : Je n’ai pas de compte facebook, et n’en créerai pas pour l’occasion. Je compte publier bientôt un graphique, que tu pourras recopier si tu veux.
@bert31 : Je suis intéressé par ton modèle, bien sûr, je trouve que mettre des courbes sur des points est un jeu fascinant. Toutefois, je ne crois pas que l’on puisse tirer de vrais prédictions à long terme. Pour ce qui est du logiciel, je t’enverrai les sources et les explications bientôt.


#10

Oui la mesure, pour être précise, doit spécifier le dernier n°de bloc auquel elle fait référence, lequel bloc étant généré toutes les 5 minutes, cela signifie qu’une telle mesure doit indiquer l’heure à 5 minutes près qui lui correspond.

Ex : 19/12/2017 15h:32:07 - bloc #79106 - nombre de membres de la TdC Ğ1: 532


#11

Oui, bien sûr. Mais dans mon cas, je n’en avais pas besoin, c’était juste pour tracer la courbe. Si besoin était, je pourrais afficher ces informations.


#12

J’adore lire ce genre de choses :smiley:

Amis matheux, merci d’avance pour ce que vous pourriez produire à propos de la Ğ1, sachez que bien sûr les développeurs suivent tout cela avec un grand intérêt ! (même s’ils ne disent rien)


#13

Oui, Cesium utilise le bloc journalier qui produit le DU. Ainsi, le graph a le même pas de temps et référence de temps que le graphique sur la masse monétaire.


#14

Salut @gerard94 ! Je suis super intéressé par ton programme ! Est-ce que tu pourrais me transmettre le code source et les explications d’installation ? :blush:

J’ai commencé à travailler moi aussi sur mon propre modèle, j’espère pouvoir bosser beaucoup plus dessus une fois les fêtes passées et vous présenter ça dans les premières semaines de janvier. En attendant, @bert31, @gerard94, je suis vos développements avec passion. :wink:


#15

https://forum.duniter.org/t/sortie-de-la-version-2-0-de-wotwizard/3744

https://github.com/duniter/WotWizard


#16

Je fournirai code et explications dans la semaine. Ce sera mon cadeau de fin d’année :wink:


#17

Merci Père Noël Gérard, j’ai posé mes petits soulier à côté de mon PC et j’attends avec impatience la marche à suivre! Joyeux Noël à tout le monde!


#18

Pour ceux qui veullent avoir l’évolution du nombre de membre avec le temps :

  • Obtenir un fichier duniter.db à jour (en suivant le lien ou via votre noeud local)
  • Utiliser sqliteBrowser (librement téléchargeable) ou autre programme pour extraire les info que vous souhaitez de la base de donnée duniter.db.

Exemple de requêtes permétant de créer des vues spécialisé pour obtenir l’évolution quotidienne du nombre de membre :

drop view if exists memberCountEvolutionFlavorDU;
create view memberCountEvolutionFlavorDU
	as select distinct
		cast (round((time - (select time from block where number=0)) /(24*3600.0)) as int) as daySinceLaunch,
		number as blockNumber,
		strftime('%d/%m/%Y', datetime(time, 'unixepoch')) as date,
		strftime('%H:%M:%S', datetime(time, 'unixepoch')) as horaire,
		membersCount
	from block
	where dividend is not null
	order by blockNumber asc
	;

drop view if exists memberCountEvolutionFlavorMidNight;
create view memberCountEvolutionFlavorMidNight
	as select distinct
		(time - strftime('%s',strftime('%Y-%m-%d 00:00:00', datetime((select time from block where number=0), 'unixepoch')))) /(24*3600) as daySinceLaunch,
		number as blockNumber,
		strftime('%d/%m/%Y', datetime(time, 'unixepoch')) as date,
		strftime('%H:%M:%S', datetime(time, 'unixepoch')) as horaire,
		membersCount
	from block
	group by date
	HAVING MIN(ROWID)
	order by blockNumber asc
	;

Il ne vous reste plus qu’a demander select * from memberCountEvolutionFlavorDU pour afficher le comptage façon Cesium, ou select * from memberCountEvolutionFlavorMidNight pour l’afficher le nombre de membre au premier block passé minuit.

PS : depuis les vues crées il est possible d’exporter en csv pour s’en servir dans un tableur, et ces vue s’actualiserons toutes seule si le duniter.db utilisé est celui d’un noeud actif, donc il suffit de refaire des exports csv ou de générer une vue en requêtant directement dessus.


#19

Et pour les flémards via ces quelques lignes exécutées quotidiennement avec la CI de duniter-mycelia-view voici l’historique d’évolution du nombre de membres actualisé chaque jour :

  • au moment du DU (façon Cesium) json, csv, html
  • au premier bloc passé minuit (façon Monit) json, csv, html

#20

Voila, j’ai publié plusieurs de mes outils sur Github (https://github.com/duniter/WotWizard), dont l’affichage du nombre de membres jour par jour. C’est la version 2.1 (https://github.com/duniter/WotWizard/releases). Il suffit de copier l’exécutable dans un répertoire vide, puis d’y ajouter le fichier sqlite3.dll (https://www.sqlite.org/2015/sqlite-dll-win32-x86-3081002.zip). Lancer WotWizard.exe directement dans Windows, ou avec Wine dans Linux.
Attention :

  • un noeud Duniter doit tourner sur le même poste ;
  • la base de données de Duniter doit être accessible ; vérifier avec la commande “Édition->Changer la base de données Duniter” ;
  • Wotwizard crée sa propre base de données Duniter/DBase.data ; cette création peut prendre un temps assez long au démarrage ;
  • ne pas réutiliser un fichier DBase.data d’une version précédente, le format a changé.

#21

Je viens de faire des lissage de l’évolution du nombre de membre sur 30 jour :
a cette échelle, l’accélération d’augmentation du nombre de membre est quasiment toujours positive ou nulle. Avec le minimum d’accélération des 30 derniers jours qui ne descend presque jamais (et de très peux) et idem pour le max.
en revanche, l’accélération de l’accélération semble osciller.

Bref, selon mes pronostique si joint : memberCountEvolution.flavor-DU.ods (111,8 Ko)
Nous devrions être environ 800 membres ± 50 au premier anniversaire de la Ğ1.
Nous devrions être environ 2600 membres ± 150 au 2nd anniversaire de la Ğ1.
Nous devrions être environ 5750 membres ± 250 au 3nd anniversaire de la Ğ1.
Et avoisiner les 10 000 membres au 4ème anniversaire de la Ğ1, soit en mars 2021

A part ça, le seuil des 1000 membres devrais être passé en Mai 2018
celui des 2000 en novembre 2018
2500 pour février 2019
5000 fin 2019


#22

Ceci dit, j’observe une baisse de cette augmentation du nombre de membres depuis 1 semaine ou deux. C’est peut-être l’effet “fêtes de fin d’année”.


#23

C’est ce que je pensais aussi.


#24

En fait, il semble qu’il n’y ait pas de baisse dans le nombre de nouvelles candidatures, mais plutôt dans les certifications, ce qui confirme ton hypothèse. Il serait intéressant d’avoir un outil permettant de tracer le nombre de nouvelles candidatures par jour.


#25

Oui, c’est une stat que je voulais ajouté, dans sur les noeuds ES. C’est très simple à faire (par exemple à partir de l’URL de l’API BMA /wot/pending).
Cela me permettrait aussi d’avoir des sauvegarde des demandes d’adhésion, par exemple en cas de RAZ de noeud…


#26

Oui, ce serait bien. Il faudrait aussi pouvoir récupérer les données dans un format texte.


#27

Est-ce que le fait d’habiter à l’extérieur de la France peut ralentir, voir même réduire, le processus pour devenir membre ?


#28

La position géographique relative n’est pas le seul critère, l’investissement personnel à se faire connaître joue un rôle capital.

Par exemple beaucoup de français n’arrivent pas à se faire certifier, car ils partent du principe que les membres les certifieront à la 1ère rencontre. Ce qui est faux, rencontrer une fois n’est pas suffisant pour connaître.