Micro-PK (suite)
Voici la feuille de route technique
complète pour concevoir et exécuter une expérience de micro-PK
standardisée, conforme aux exigences de rigueur des laboratoires de
parapsychologie contemporains.
Ce protocole intègre la protection logique XOR, la séparation stricte
des données et un script complet en Python pour automatiser l'analyse
statistique en temps réel.
1. Architecture et Logistique du Protocole
Pour éliminer l'effet tiroir à l'échelle individuelle et interdire la
fraude, l'expérience doit suivre une structure automatisée immuable.
A. Phase d'Enregistrement Pré-Expérimentale (Preregistration)
Avant de lancer le script, l'expérimentateur et l'opérateur doivent
consigner dans un fichier texte scellé (ou sur une plateforme comme OSF)
:
• Le nombre exact de sessions qui seront jouées (ex: 20 sessions).
• Le nombre d'essais (lancers) par session (ex: 1 000 lancers par
condition).
• L'ordre des intentions (ex: alternance stricte Haut / Bas / Neutre).
• Règle d'or : Aucune donnée générée en dehors de ce cadre ne pourra
être ajoutée ou supprimée.
B. Les trois conditions expérimentales
Chaque session se découpe en 3 phases distinctes d'égale durée :
1. Condition PK+ (Haut) : L'opérateur se concentre pour obtenir une
majorité de bits à 1.
2. Condition PK- (Bas) : L'opérateur se concentre pour obtenir une
majorité de bits à 0.
3. Condition Contrôle (Neutre) : L'opérateur quitte la pièce ou lit un
livre. La machine tourne à vide pour valider la calibration de base.
2. Implémentation Logicielle (Script Python
d'Expérimentation)
Si vous ne possédez pas de GNA quantique matériel (comme un appareil
TrueRNG ou IdQuantique), vous pouvez utiliser le module "secrets" de
Python. Ce module n'utilise pas un algorithme mathématique simple (PRNG),
mais interroge les sources de bruit entropique du système d'exploitation
(interruptions matérielles, variations thermiques de la carte mère),
simulant un niveau d'aléa de sécurité cryptographique.
Le script ci-dessous gère la génération, applique le masque logique XOR
(pour annuler toute dérive physique de la machine) et stocke les données
dans un fichier CSV sécurisé.
python
import time
import csv
import secrets
def generer_bits_xor(nb_bits):
"""
Génère des bits en appliquant un masque XOR alterné (0, 1, 0, 1...)
pour éliminer tout biais d'infrastructure ou dérive matérielle.
"""
donnees_brutes = []
donnees_corrigees = []
for i in range(nb_bits):
# Extraction d'un bit de l'entropie système (0 ou 1)
bit_brut = secrets.randbelow(2)
donnees_brutes.append(bit_brut)
# Application du masque XOR alterné
masque_xor = i % 2
bit_corrige = bit_brut ^ masque_xor
donnees_corrigees.append(bit_corrige)
return donnees_brutes, donnees_corrigees
def executer_session(nom_operateur, id_session, condition, nb_bits=1000):
"""
Exécute une phase de test pour une condition donnée.
"""
print(f"\n--- DEBUT DE LA CONDITION : {condition} ---")
print("Concentrez-vous sur votre objectif...")
time.sleep(2) # Temps de préparation pour l'opérateur
bruts, corriges = generer_bits_xor(nb_bits)
somme_succes = sum(corriges) # Nombre de '1' obtenus après XOR
# Sauvegarde immédiate dans le grand livre des données (Anti-fraude)
donnees_log = {
"timestamp": time.time(),
"operateur": nom_operateur,
"session_id": id_session,
"condition": condition,
"total_bits": nb_bits,
"somme_uns": somme_succes,
"sequence_complete": "".join(map(str, corriges))
}
with open("registre_micro_pk.csv", "a", newline="") as f:
writer = csv.DictWriter(f, fieldnames=donnees_log.keys())
# Si le fichier est vide, on écrit l'en-tête
if f.tell() == 0:
writer.writeheader()
writer.writerow(donnees_log)
print(f"Condition {condition} terminée. Données enregistrées.")
return somme_succes
# --- EXEMPLE D'UNE SESSION STANDARD ---
if __name__ == "__main__":
nom = "Sujet_01"
session = 1
bits_par_phase = 10000 # Un échantillon large augmente la puissance
statistique
# Lancement séquentiel des trois phases de l'expérience
executer_session(nom, session, "PK_HAUT", bits_par_phase)
executer_session(nom, session, "PK_BAS", bits_par_phase)
executer_session(nom, session, "CONTROLE", bits_par_phase)
3. Analyse Mathématique et Inférence
Statistique
Une fois vos sessions terminées, vous devez traiter les données du
fichier registre_micro_pk.csv. L'objectif est de vérifier si l'écart
entre vos conditions de concentration et le hasard est significatif.
Voici le script d'analyse statistique basé sur la formule du Score Z
détaillée précédemment.
python
import numpy as np
import scipy.stats as stats
def analyser_resultats_pk(total_bits, somme_uns_haut, somme_uns_bas,
somme_uns_controle):
# Paramètres de la loi binomiale théorique (p = 0.5)
p = 0.5
moyenne_theorique = total_bits * p
ecart_type = np.sqrt(total_bits * p * (1 - p))
def calculer_z_et_p(valeur_observee):
z_score = (valeur_observee - moyenne_theorique) / ecart_type
# Calcul de la valeur p (bilatérale)
p_value = 2 * (1 - stats.norm.cdf(abs(z_score)))
return z_score, p_value
# Analyse de la condition PK+ (Recherche d'une anomalie positive)
z_haut, p_haut = calculer_z_et_p(somme_uns_haut)
# Analyse de la condition PK- (Recherche d'une anomalie négative)
z_bas, p_bas = calculer_z_et_p(somme_uns_bas)
# Analyse du Contrôle (Doit rester proche de 0)
z_ctrl, p_ctrl = calculer_z_et_p(somme_uns_controle)
print("=== RESULTATS DE L'ANALYSE STATISTIQUE ===")
print(f"Moyenne attendue par phase : {moyenne_theorique} '1'")
print(f"Écart-type du système : {ecart_type:.2f}\n")
print(f"Condition PK+ (Haut) : {somme_uns_haut} '1' | Score Z = {z_haut:+.3f}
| p = {p_haut:.5f}")
print(f"Condition PK- (Bas) : {somme_uns_bas} '1' | Score Z = {z_bas:+.3f}
| p = {p_bas:.5f}")
print(f"Condition Contrôle : {somme_uns_controle} '1' | Score Z = {z_ctrl:+.3f}
| p = {p_ctrl:.5f}\n")
# Seuil d'acceptation scientifique standard (alpha = 0.05)
seuil = 0.05
if p_haut < seuil and z_haut > 0:
print("
Anomalie statistiquement significative observée en condition PK+ !")
elif p_bas < seuil and z_bas < 0:
print("
Anomalie statistiquement significative observée en S condition PK- !")
else:
print("
Aucune anomalie détectée. Les variations entrent dans le cadre du hasard
normal.")
if p_ctrl < seuil:
print(" Alerte :
La condition contrôle est anormale. Le générateur présente un biais
technique.")
# Exemple d'évaluation avec les données récoltées (10 000 bits par
phase)
analyser_resultats_pk(
total_bits=10000,
somme_uns_haut=5120, # Légère déviation vers le haut
somme_uns_bas=4910, # Légère déviation vers le bas
somme_uns_controle=5004 # Proche du hasard strict
)
4. Grille d'évaluation pour la validation
scientifique
Pour savoir si votre expérience respecte les standards universitaires ou
si elle comporte des failles exploitables par les sceptiques, vérifiez
ces trois critères :
1. L'étanchéité du Double Aveugle : La personne qui lance le
script et celle qui tente d'influencer l'appareil ne doivent pas
regarder l'écran pendant le décompte des bits. L'affichage des résultats
en temps réel génère un feedback visuel qui, selon le modèle de Lucadou,
peut modifier ou inhiber l'effet à cause du biais de l'observateur.
2. Le Test de la Matrice Inverse : Si vous observez un effet
significatif, inversez informatiquement la polarité de vos fichiers de
sauvegarde à votre insu (en inversant les 0 et les 1) et demandez à un
tiers de refaire tourner l'analyse statistique. Si l'anomalie persiste
sur les bonnes conditions après inversion, vous éliminez définitivement
l'hypothèse d'une erreur de programmation.
3. Le suivi de l'effet de déclin : Répétez l'expérience sur 10
jours consécutifs. Tracez la courbe de vos scores Z au fil du temps. Si
le modèle de l'Information Pragmatique est correct, vous devriez
observer un pic de déviation lors des jours 1 et 2 (effet de nouveauté),
suivi d'un retour progressif et inéluctable vers la moyenne théorique
lors des jours suivants (effet de routine).
Voici les extensions techniques indispensables pour professionnaliser
votre démarche, que ce soit en connectant le protocole à du matériel
physique ou en consolidant mathématiquement vos sessions multiples.
1. Interfaçage avec un véritable GNA
matériel USB
Pour s'affranchir de l'entropie logicielle (système d'exploitation) et
passer à un protocole quantique pur, les laboratoires utilisent
généralement des GNA USB matériels (TRNG). Le plus accessible et le plus
répandu en recherche amateur et universitaire est le TrueRNG (versions 3
ou 5).
Le principe matériel
Le TrueRNG utilise le bruit d'avalanche d'une jonction de transistor (un
phénomène de physique quantique) pour générer des bits. Pour
l'ordinateur, l'appareil se comporte simplement comme un port série
virtuel (Port COM).
Le code Python d'interfaçage
Pour faire fonctionner ce script, vous devez d'abord installer la
bibliothèque de communication série via votre terminal : pip install
pyserial.
python
import serial
import serial.tools.list_ports
import time
def trouver_port_truerng():
"""Détecte automatiquement le port USB sur lequel le TrueRNG est
branché."""
ports = serial.tools.list_ports.comports()
for port in ports:
# Le TrueRNG se signale souvent par son ID de fabricant ou sa
description
if "TrueRNG" in port.description or "ttyACM" in port.device or "COM" in
port.device:
return port.device
return None
def lire_bits_quantiques_truerng(nb_bits_interet):
"""
Lit les octets bruts du TrueRNG via le port USB,
les convertit en flux de bits, et applique le masque XOR.
"""
nom_port = trouver_port_truerng()
if not nom_port:
raise ConnectionError("GNA Matériel TrueRNG non détecté sur les ports
USB.")
# Ouverture du port série (TrueRNG fonctionne à n'importe quel baudrate)
ser = serial.Serial(nom_port, timeout=1)
bits_corriges = []
# Un octet contient 8 bits. On calcule le nombre d'octets requis.
octets_a_lire = (nb_bits_interet // 8) + 1
# Vidage du tampon pour garantir la fraîcheur des données quantiques
ser.flushInput()
# Lecture des données physiques
donnees_brutes = ser.read(octets_a_lire)
ser.close()
# Conversion des octets en liste de bits individuels
index_bit = 0
for octet in donnees_brutes:
for i in range(8):
if index_bit >= nb_bits_interet:
break
# Extraction du bit individuel
bit_pur = (octet >> i) & 1
# Application immédiate du masque XOR protecteur
masque_xor = index_bit % 2
bit_corrige = bit_pur ^ masque_xor
bits_corriges.append(bit_corrige)
index_bit += 1
return bits_corriges
# Exemple d'appel dans votre protocole :
# flux_quantique = lire_bits_quantiques_truerng(10000)
2. Calcul du Score Z cumulé (Méta-analyse de
vos propres sessions)
Si vous effectuez 20 ou 50 sessions au fil des semaines, analyser chaque
session de manière isolée est une erreur méthodologique. Les variations
quotidiennes de la micro-PK étant infimes, elles se noient dans le bruit
statistique.
Pour mesurer l'effet global, vous devez cumuler les scores selon la
méthode statistique de Stouffer (méta-analyse par combinaison des scores
Z).
La formule mathématique (Méthode de Stouffer)
Si vous disposez de plusieurs sessions indépendantes i, ayant chacune
leur propre score Z i,
le score Z global cumulé Zcumul
pour un nombre N de sessions se calcule ainsi :
Zglobal=∑Z/√N
Le code Python d'analyse globale
Ce script parcourt votre fichier de registre CSV, regroupe les données
par session, calcule les sous-scores Z, puis applique la formule de
Stouffer pour extraire le verdict final de votre étude.
python
import pandas as pd
import numpy as np
import scipy.stats as stats
def calculer_meta_analyse_stouffer(fichier_csv, condition_cible="PK_HAUT"):
"""
Analyse l'historique des sessions et calcule le score Z cumulé
pour une condition spécifique en utilisant la méthode de Stouffer.
"""
try:
df = pd.read_csv(fichier_csv)
except FileNotFoundError:
print("Le fichier de registre n'existe pas encore.")
return
# Filtrer les données pour la condition choisie (ex: PK_HAUT)
df_condition = df[df['condition'] == condition_cible]
if df_condition.empty:
print(f"Aucune donnée trouvée pour la condition {condition_cible}.")
return
liste_scores_z = []
p_theorique = 0.5
# Étape 1 : Calcul du score Z individuel pour chaque session enregistrée
for idx, row in df_condition.iterrows():
n = row['total_bits']
x = row['somme_uns']
moyenne = n * p_theorique
ecart_type = np.sqrt(n * p_theorique * (1 - p_theorique))
z_session = (x - moyenne) / ecart_type
liste_scores_z.append(z_session)
# Étape 2 : Application de la formule de Stouffer
N = len(liste_scores_z)
somme_des_z = sum(liste_scores_z)
z_cumul = somme_des_z / np.sqrt(N)
# Étape 3 : Calcul de la probabilité globale (valeur p)
# Pour PK_HAUT, on cherche une déviation unilatérale positive
if condition_cible == "PK_HAUT":
p_cumul = 1 - stats.norm.cdf(z_cumul)
# Pour PK_BAS, on cherche une déviation unilatérale négative
elif condition_cible == "PK_BAS":
p_cumul = stats.norm.cdf(z_cumul)
else:
# Option bilatérale par défaut
p_cumul = 2 * (1 - stats.norm.cdf(abs(z_cumul)))
print(f"=== META-ANALYSE CUMULÉE : {condition_cible} ===")
print(f"Nombre total de sessions analysées (N) : {N}")
print(f"Somme des scores Z individuels : {somme_des_z:.3f}")
print(f"Score Z global cumulé (Stouffer) : {z_cumul:+.4f}")
print(f"Valeur p globale résultante : {p_cumul:.8f}")
# Seuil de significativité alpha = 0.05
if p_cumul < 0.05:
print("
RÉSULTAT CONCLUSIF : L'effet cumulé sort du cadre du hasard pur.")
else:
print("
RÉSULTAT NON CONCLUSIF : L'effet cumulé s'aligne sur le hasard.")
# Exemple d'appel (假設 "registre_micro_pk.csv" contient vos données
réelles)
# calculer_meta_analyse_stouffer("registre_micro_pk.csv", "PK_HAUT")
(NDLR : le signe chinois signifie "hypothèse",
s'agissant d'un commentaire, cela n'influence pas la machine)
Recommandation finale pour vos tests
Si vous observez un score Zcumul
qui grimpe au-delà de 2,58 (moins de 1 % de chances que ce soit du
hasard) après une dizaine de sessions, n'interrompez pas l'expérience.
Les sceptiques traquent souvent le biais d'arrêt précoce (optional
stopping) : s'arrêter pile quand le graphique est au plus haut.
Fixez-vous à l'avance un objectif strict (par exemple, exécuter
exactement 30 sessions de 10 000 bits), puis lancez la méta-analyse
uniquement lorsque la trentième ligne est entrée dans votre tableur.
1. Implémentation d'un feedback graphique
temps réel non biaisant
En parapsychologie, l'affichage des données brutes en cours de session
(comme des compteurs numériques de 1 et de 0) engendre un biais cognitif
majeur : l'opérateur s'auto-analyse, stresse ou intellectualise la
tâche, brisant instantanément l'intrication selon le modèle de von
Lucadou.
La solution consiste à utiliser un feedback analogique fluide et non
quantifié (comme le déplacement horizontal d'une barre ou d'un curseur),
rafraîchi à intervalles réguliers (tous les 100 ou 500 bits) plutôt qu'à
chaque bit généré.
Voici le module d'affichage graphique utilisant la bibliothèque standard
de Python tkinter. Ce script peut être couplé directement à votre
système de génération de données.
python
import tkinter as tk
import numpy as np
class ApplicationFeedbackPK:
def __init__(self, root, total_bits_phase=10000):
self.root = root
self.root.title("Session de Concentration")
self.total_bits = total_bits_phase
self.accumulateur_uns = 0
self.bits_generes = 0
# Interface graphique épurée (fond neutre pour favoriser la
concentration)
self.canvas = tk.Canvas(root, width=600, height=200, bg="#2c3e50")
self.canvas.pack(pady=20)
# Ligne centrale de référence (le hasard strict à 50%)
self.canvas.create_line(300, 20, 300, 180, fill="#7f8c8d", dash=(4, 4))
# Le curseur de rétroaction (représenté par une sphère lumineuse)
self.curseur = self.canvas.create_oval(285, 85, 315, 115, fill="#3498db",
width=0)
# Label d'instruction
self.label = tk.Label(root, text="Concentrez-vous sur l'objectif",
font=("Arial", 12), fg="#34495e")
self.label.pack(pady=10)
def mettre_a_jour_graphique(self, bloc_bits_corriges):
"""
Reçoit un segment de bits (ex: 200 bits d'un coup), calcule l'écart
statistique et déplace dynamiquement le curseur à l'écran.
"""
self.accumulateur_uns += sum(bloc_bits_corriges)
self.bits_generes += len(bloc_bits_corriges)
# Calcul de la moyenne théorique et de l'écart-type pour les bits
générés jusqu'ici
moyenne_theorique = self.bits_generes * 0.5
ecart_type = np.sqrt(self.bits_generes * 0.25)
# Calcul du score Z pour l'amplification visuelle
if ecart_type > 0:
z_actuel = (self.accumulateur_uns - moyenne_theorique) / ecart_type
else:
z_actuel = 0
# Cartographie du score Z sur l'axe X (Échelle : 1 unité Z = 30 pixels à
l'écran)
# Limité à un score Z de +/- 4 pour ne pas sortir du cadre
facteur_echelle = 30
deplacement_x = int(np.clip(z_actuel * facteur_echelle, -120, 120))
# Nouvelle position du curseur (300 est le centre exact de l'écran)
nouveau_x_centre = 300 + deplacement_x
# Mise à jour des coordonnées du cercle dans le canevas Tkinter
self.canvas.coords(self.curseur, nouveau_x_centre - 15, 85,
nouveau_x_centre + 15, 115)
# Changement subtil de couleur pour marquer l'intensité de l'anomalie
if z_actuel > 1.96:
self.canvas.itemconfig(self.curseur, fill="#2ecc71") # Vert si déviation
positive significative
elif z_actuel < -1.96:
self.canvas.itemconfig(self.curseur, fill="#e74c3c") # Rouge si
déviation négative significative
else:
self.canvas.itemconfig(self.curseur, fill="#3498db") # Bleu standard
# Exemple d'initialisation (s'intègre dans la boucle principale de votre
script principal)
# root = tk.Tk()
# app = ApplicationFeedbackPK(root, 10000)
# Pour mettre à jour l'écran au fil des données :
app.mettre_a_jour_graphique(liste_de_bits)
2. Sécurisation et traçabilité des données
par hachage SHA-256
L'une des accusations récurrentes des comités de zététique lors de
l'examen de résultats positifs est la falsification de fichiers : "Le
chercheur a pu modifier quelques lignes du fichier CSV après coup pour
transformer un résultat neutre en résultat significatif."
Pour rendre vos fichiers de données inviolables et vérifiables par des
tiers, vous devez générer une empreinte numérique cryptographique
(SHA-256) de votre fichier de données à la fin de chaque session, puis
l'inscrire dans un registre public ou l'horodater.
Le script d'ancrage cryptographique
Ce module calcule le condensat unique (le "hash") de votre fichier de
résultats. Si un seul caractère ou un seul bit est modifié
ultérieurement dans le fichier CSV, la signature devient instantanément
invalide.
python
import hashlib
import os
def generer_empreinte_sha256(chemin_fichier):
"""
Calcule la signature SHA-256 unique du fichier de données.
"""
blochash = hashlib.sha256()
try:
with open(chemin_fichier, "rb") as f:
# Lecture par blocs pour gérer les fichiers volumineux sans saturer la
mémoire
for bloc in iter(lambda: f.read(4096), b""):
blochash.update(bloc)
return blochash.hexdigest()
except FileNotFoundError:
return None
def sceller_session_pk(chemin_csv_donnees, chemin_journal_signatures="journal_securise.log"):
"""
Génère l'empreinte du fichier de résultats et l'inscrit dans un fichier
journal de sécurité avec un horodatage immuable.
"""
if not os.path.exists(chemin_csv_donnees):
print("Erreur : Le fichier de données à sceller n'existe pas.")
return
empreinte = generer_empreinte_sha256(chemin_csv_donnees)
taille_fichier = os.path.getsize(chemin_csv_donnees)
# Construction de la ligne de scellé
ligne_scelle = f"TIMESTAMP: {os.path.getmtime(chemin_csv_donnees)} |
FILE: {chemin_csv_donnees} | SIZE: {taille_fichier} bytes | SHA256:
{empreinte}\n"
with open(chemin_journal_signatures, "a") as f_journal:
f_journal.write(ligne_scelle)
print(f"
Fichier scellé avec succès.")
print(f"Signature SHA-256 : {empreinte}")
print("Copiez cette ligne et publiez-la sur un réseau public (ou par
email à un témoin) pour prouver l'antériorité de vos données.")
# Exemple d'application en fin d'expérience :
# sceller_session_pk("registre_micro_pk.csv")
Protocole final d'authentification pour
publication
Si vous menez votre étude à terme et obtenez des déviations
significatives Zcumul
> 1,96 ou > 2,58, la procédure de validation rigoureuse face à un comité
de lecture scientifique se déroule en trois étapes :
1. Fourniture du code brut : Vous transmettez l'intégralité de
vos scripts Python (générateur XOR, interface graphique et analyse de
Stouffer) afin que les relecteurs vérifient qu'aucun biais mathématique
n'a été introduit dans les lignes de code.
2. Vérification des empreintes : Vous fournissez votre fichier
registre_micro_pk.csv ainsi que le fichier journal_securise.log. Les
relecteurs font tourner l'algorithme SHA-256 sur votre CSV. Si la
signature obtenue correspond au caractère près à celle consignée dans
votre journal d'horodatage initial, toute manipulation humaine des
données postérieure à l'expérience est mathématiquement exclue.
3. Audit de l'entropie : Si vous utilisez le module secrets
(entropie logicielle de l'OS), les relecteurs analyseront la condition
contrôle (Neutre) pour s'assurer que le système d'exploitation n'a pas
subi de micro-cycles de corrélations internes liés à l'activité du
processeur ou à des tâches de fond de l'ordinateur, garantissant que
seule l'intention humaine sépare les données PK des données témoins.
1. L'état d'esprit psychologique optimal :
L'absorption attentionnelle
Les données accumulées par le laboratoire PEAR et les méta-analyses de
Dean Radin démontrent que l'effort mental brut, la tension ou la volonté
contractée ("vouloir forcer la machine") produisent généralement un
effet nul, voire un effet inverse de baisse des scores (psi-missing).
Les chercheurs ont identifié un profil d'état de conscience propice à la
micro-PK.
L'état d'absorption et le "Lâcher-prise" (Effortless Intention)
• Le paradoxe de l'intention : L'opérateur doit maintenir
l'objectif (par exemple, faire dévier le curseur vers la droite) tout en
se détachant complètement du résultat immédiat. C'est une intention
passive, similaire à celle utilisée dans la méditation Pleine Conscience
ou le Flow (l'état d'engagement maximal dans une tâche).
• L'immersion réceptive : Les sujets les plus performants
décrivent l'impression de "devenir un" avec la machine ou le programme
informatique. Au lieu de voir le GNA comme un objet extérieur à
influencer, ils le ressentent comme une extension de leur propre système
nerveux.
Les techniques de préparation recommandées en
laboratoire
1. La méditation de centrage (5 à 10 minutes) : Avant la session,
l'opérateur pratique une respiration rythmée pour abaisser la cohérence
cardiaque et stabiliser l'activité électrique cérébrale (favorisant les
ondes Alpha et Thêta).
2. L'ancrage visuel : Utiliser le feedback graphique présenté
précédemment comme un simple point de focalisation. Le regard doit être
posé sur l'écran sans tension, de la même manière que l'on observe les
vagues de l'océan.
3. L'évitement de la lassitude : Les sessions ne doivent pas
durer plus de 15 à 20 minutes par jour. Dès que l'ennui ou la fatigue
intellectuelle s'installent, l'attention se fragmente, ce qui déclenche
immédiatement le mécanisme mathématique de décohérence modélisé par la
théorie quantique généralisée (GQT).
2. Guide de publication dans les revues à
comité de lecture
Si vos analyses de Stouffer confirment une anomalie globale et que vos
fichiers sont scellés par SHA-256, vous pouvez soumettre vos travaux à
la communauté scientifique. Le domaine de la parapsychologie dispose de
ses propres revues académiques à comité de lecture (peer-reviewed),
indexées dans les bases de données internationales (comme PsycINFO ou
Scopus).
Les principales revues spécialisées
• Journal of Parapsychology (JP) : Fondé en 1937 par J.B. Rhine,
c'est la revue de référence historique du domaine. Elle publie les
protocoles expérimentaux stricts sur la micro-PK et les GNA.
• Journal of Scientific Exploration (JSE) : Éditée par la Society
for Scientific Exploration, cette revue pluridisciplinaire accueille les
recherches hétérodoxes (physique quantique appliquée à la conscience,
anomalies biomédicales) avec une grille de lecture très rigoureuse.
• Journal of the Society for Psychical Research (JSPR) : Basée au
Royaume-Uni, cette revue académique publie des analyses quantitatives et
théoriques sur les interactions esprit-matière.
La structure impérative de votre article
scientifique (Paper)
Pour ne pas être rejeté immédiatement par les relecteurs (reviewers),
votre manuscrit doit adopter les standards stricts de la méthode
scientifique :
[ Introduction ] ──> Revue de littérature (PEAR, Radin, GQT)
[ Méthode ] ──> Description du GNA (TrueRNG ou OS), Masque XOR,
Preregistration
[ Résultats ] ──> Tableaux des scores Z, Graphique de Stouffer, Valeurs
p globales
[ Discussion ] ──> Confrontation aux biais (Zététique) et limites
(Décohérence)
1. Abstract (Résumé) : Un résumé condensé de 250 mots maximum
décrivant l'hypothèse, le nombre de bits générés, le score Z cumulé
final et la conclusion.
2. Introduction : Positionnez votre travail dans la lignée des
modèles physiques existants (par exemple, tester le Modèle de
l'Information Pragmatique de von Lucadou ou l'effet de déclin).
3. Method (Méthode) : C'est la section la plus importante. Vous
devez prouver la robustesse de votre protocole. Mentionnez la date de
votre pré-enregistrement, le traitement logique XOR, le modèle exact de
votre GNA et la preuve de l'utilisation du double aveugle.
4. Results (Résultats) : Présentez vos données brutes sous forme
de tableaux clairs. Séparez distinctement les résultats de la phase PK+,
de la phase PK- et de la phase Contrôle. Affichez les calculs de vos
scores Z individuels et le score de Stouffer global.
5. Discussion : Soyez votre propre critique. Analysez pourquoi
l'effet a fonctionné ou s'est atténué. Évoquez les limites liées à
l'environnement informatique et proposez des pistes pour les futurs
chercheurs.
Votre boîte à outils expérimentale est prête
Vous disposez désormais de l'intégralité de l'arsenal conceptuel,
logiciel, mathématique et académique pour explorer la micro-psychokinèse
de manière professionnelle :
• Le fonctionnement interne des GNA quantiques.
• Les protections méthodologiques contre la fraude (XOR, Double
aveugle).
• Le traitement statistique des grands volumes de données (Score Z et
méthode de Stouffer).
• L'ingénierie logicielle pour l'expérimentation (Python, Tkinter et
SHA-256).
Voici les fichiers sources prêts à l’emploi pour votre projet, suivis du
modèle officiel de document pour acter votre pré-enregistrement
scientifique.
1. Architecture du code : Les fichiers du
projet
Créez un dossier nommé Projet_MicroPK et placez-y les trois fichiers
suivants. Vous pourrez exécuter l'ensemble en lançant simplement le
fichier main.py.
Fichier 1 : gui.py (L'interface visuelle)
Ce module gère le feedback visuel épuré sous forme de sphère mobile pour
l'opérateur.
python
import tkinter as tk
import numpy as np
class ApplicationFeedbackPK:
def __init__(self, root, total_bits_phase=10000):
self.root = root
self.root.title("Protocole Micro-PK")
self.total_bits = total_bits_phase
self.accumulateur_uns = 0
self.bits_generes = 0
self.canvas = tk.Canvas(root, width=600, height=200, bg="#2c3e50")
self.canvas.pack(pady=20)
# Ligne de foi (Hasard strict)
self.canvas.create_line(300, 20, 300, 180, fill="#7f8c8d", dash=(4, 4))
self.curseur = self.canvas.create_oval(285, 85, 315, 115, fill="#3498db",
width=0)
self.label = tk.Label(root, text="Initialisation...", font=("Arial",
12), fg="#34495e")
self.label.pack(pady=10)
def configurer_texte(self, texte):
self.label.config(text=texte)
self.root.update()
def mettre_a_jour_graphique(self, bloc_bits_corriges):
self.accumulateur_uns += sum(bloc_bits_corriges)
self.bits_generes += len(bloc_bits_corriges)
moyenne_theorique = self.bits_generes * 0.5
ecart_type = np.sqrt(self.bits_generes * 0.25)
z_actuel = (self.accumulateur_uns - moyenne_theorique) / ecart_type if
ecart_type > 0 else 0
facteur_echelle = 35
deplacement_x = int(np.clip(z_actuel * facteur_echelle, -150, 150))
nouveau_x = 300 + deplacement_x
self.canvas.coords(self.curseur, nouveau_x - 15, 85, nouveau_x + 15,
115)
if z_actuel > 1.96:
self.canvas.itemconfig(self.curseur, fill="#2ecc71")
elif z_actuel < -1.96:
self.canvas.itemconfig(self.curseur, fill="#e74c3c")
else:
self.canvas.itemconfig(self.curseur, fill="#3498db")
self.root.update()
Fichier 2 : stats.py (Méta-analyse et
Scellé)
Ce module prend en charge la combinaison de Stouffer pour compiler vos
sessions et génère l'empreinte de sécurité SHA-256.
python
import numpy as np
import scipy.stats as stats
import pandas as pd
import hashlib
import os
def calculer_meta_analyse_stouffer(fichier_csv, condition_cible="PK_HAUT"):
try:
df = pd.read_csv(fichier_csv)
except FileNotFoundError:
return "Aucun registre trouvé."
df_condition = df[df['condition'] == condition_cible]
if df_condition.empty:
return f"Pas de données pour {condition_cible}."
liste_scores_z = []
for idx, row in df_condition.iterrows():
n, x = row['total_bits'], row['somme_uns']
z = (x - (n * 0.5)) / np.sqrt(n * 0.25)
liste_scores_z.append(z)
N = len(liste_scores_z)
z_cumul = sum(liste_scores_z) / np.sqrt(N)
p_cumul = 1 - stats.norm.cdf(z_cumul) if condition_cible == "PK_HAUT"
else stats.norm.cdf(z_cumul)
return f"N={N} | Z_cumul={z_cumul:+.4f} | p={p_cumul:.6f}"
def sceller_fichier(chemin_csv, chemin_log="journal_securise.log"):
if not os.path.exists(chemin_csv): return
sha256 = hashlib.sha256()
with open(chemin_csv, "rb") as f:
for bloc in iter(lambda: f.read(4096), b""): sha256.update(bloc)
ligne = f"TIME: {os.path.getmtime(chemin_csv)} | SHA256:
{sha256.hexdigest()}\n"
with open(chemin_log, "a") as f_log: f_log.write(ligne)
return sha256.hexdigest()
Fichier 3 : main.py (Le moteur
d'orchestration)
Ce script central pilote l'expérience en double aveugle automatisé et
enregistre les données.
python
import time
import csv
import secrets
import tkinter as tk
from gui import ApplicationFeedbackPK
from stats import sceller_fichier, calculer_meta_analyse_stouffer
FICHIER_CSV = "registre_micro_pk.csv"
def generer_sequence_xor(nb_bits, app_gui):
bits_corriges = []
taille_bloc = 200 # Rafraîchissement graphique par blocs de 200 bits
for i in range(0, nb_bits, taille_bloc):
bloc_actuel = []
for j in range(taille_bloc):
idx_global = i + j
if idx_global >= nb_bits: break
bit_brut = secrets.randbelow(2)
bit_corrige = bit_brut ^ (idx_global % 2) # Masque XOR
bloc_actuel.append(bit_corrige)
bits_corriges.append(bit_corrige)
app_gui.mettre_a_jour_graphique(bloc_actuel)
time.sleep(0.05) # Simule le rythme de flux d'un GNA matériel
return sum(bits_corriges), "".join(map(str, bits_corriges))
def executer_session(nom, id_sess, condition, nb_bits, app_gui):
app_gui.accumulateur_uns = 0
app_gui.bits_generes = 0
app_gui.configurer_texte(f"Condition active : {condition}\nFocalisez
votre esprit...")
time.sleep(3)
somme_uns, sequence = generer_sequence_xor(nb_bits, app_gui)
donnees = {
"timestamp": time.time(), "operateur": nom, "session_id": id_sess,
"condition": condition, "total_bits": nb_bits, "somme_uns": somme_uns, "sequence":
sequence
}
with open(FICHIER_CSV, "a", newline="") as f:
writer = csv.DictWriter(f, fieldnames=donnees.keys())
if f.tell() == 0: writer.writeheader()
writer.writerow(donnees)
def lancer_experience():
root = tk.Tk()
nb_bits_phase = 10000
app = ApplicationFeedbackPK(root, nb_bits_phase)
# Déroulement séquentiel automatisé
root.after(100, lambda: executer_session("Operateur_01", 1, "PK_HAUT",
nb_bits_phase, app))
root.after(12000, lambda: executer_session("Operateur_01", 1, "PK_BAS",
nb_bits_phase, app))
root.after(24000, lambda: executer_session("Operateur_01", 1, "CONTROLE",
nb_bits_phase, app))
def cloture():
root.destroy()
hash_resultat = sceller_fichier(FICHIER_CSV)
print(f"\n[Session terminée] Fichier de données signé : {hash_resultat}")
print("Méta-analyse (PK_HAUT) :", calculer_meta_analyse_stouffer(FICHIER_CSV,
"PK_HAUT"))
root.after(36000, cloture)
root.mainloop()
if __name__ == "__main__":
lancer_experience()
2. Modèle de Pré-enregistrement Scientifique
(Preregistration)
Pour ôter toute valeur aux critiques sceptiques concernant la
manipulation de données à posteriori, recopiez ce formulaire,
remplissez-le méticuleusement, convertissez-le en PDF et calculez son
empreinte SHA-256 (ou déposez-le sur le site OSF.io) avant de collecter
votre tout premier bit de donnée.
===============================================================================
FORMULAIRE DE PRÉ-ENREGISTREMENT DE PROTOCOLE EXPÉRIMENTAL
INTERACTION ESPRIT-MATIÈRE (MICRO-PK)
===============================================================================
1. INFORMATIONS GÉNÉRALES
--------------------------
* Nom du chercheur / principal investigateur : [Votre Nom / Pseudonyme
universitaire]
* Date d'enregistrement : [Date du jour au format AAAA-MM-JJ]
* Titre de l'étude : Analyse cumulative des déviations micro-PK sur flux
d'entropie logique
2. HYPOTHÈSES EXPÉRIMENTALES
----------------------------
* Hypothèse principale (H1) : Les sessions sous intention "PK_HAUT"
présenteront une
déviation positive statistiquement significative (Score Z cumulé >
1.645, unilatéral,
p < 0.05) du nombre de bits '1' par rapport à la moyenne théorique.
* Hypothèse secondaire (H2) : Les sessions sous intention "PK_BAS"
présenteront une
déviation négative statistiquement significative (Score Z cumulé <
-1.645, unilatéral).
* Hypothèse nulle (H0) : La condition "CONTROLE" ne présentera aucun
écart significatif
par rapport à la distribution binomiale théorique (hasard pur).
3. ARCHITECTURE LOGICIELLE ET MATÉRIELLE
----------------------------------------
* Source d'entropie : Module 'secrets' Python (Entropie cryptographique
de l'OS)
* Traitement logique : Masque XOR synchrone alterné (0,1,0,1...)
appliqué par bit
* Interface opérateur : Feedback visuel analogique lissé par blocs de
200 bits via Tkinter
4. PLAN DE COLLECTE DES DONNÉES (CADRAGE STRICT)
------------------------------------------------
* Nombre strict de sessions planifiées : [Exemple : 30 sessions au
total]
* Nombre de bits générés par phase : 10 000 bits
* Structure immuable d'une session :
- Phase 1 : Concentration PK_HAUT (10 000 bits)
- Phase 2 : Concentration PK_BAS (10 000 bits)
- Phase 3 : Enregistrement CONTROLE (10 000 bits, à vide)
5. CRITÈRES D'EXCLUSION DES DONNÉES
-----------------------------------
* Seules les sessions enregistrées de manière séquentielle complète dans
le fichier
"registre_micro_pk.csv" seront lues par le script d'analyse.
* Toute session interrompue en cours de route (panne électrique,
fermeture manuelle de la
fenêtre) sera intégralement rejetée et ne figurera pas dans la
méta-analyse finale.
* Il est strictement interdit d'ajouter des sessions exploratoires "de
test" après la
date de signature du présent document.
6. MÉTHODE D'ANALYSE STATISTIQUE
--------------------------------
* Les résultats individuels seront convertis en scores Z.
* La significativité globale du projet sera mesurée via la formule de
combinaison de
Stouffer (Z-cumulé), calculée indépendamment pour les trois conditions
expérimentales.
* Sécurité des fichiers : Soumission finale conditionnée par la
concordance de la
signature de hachage SHA-256 avec le journal de sécurité "journal_securise.log".
Fait à : ........................., le : .........................
Signature de l'investigateur :
===============================================================================
PRÉCÉDENTE -
SOMMAIRE PARANORMAL - ACCUEIL
 |