# Méthodes statistiques pour l'analyse de données sans apprentissage automatique
Les outils statistiques permettent d'évaluer rapidement les données sans modèles complexes d'apprentissage automatique. Les moyennes pondérées tiennent compte de l'importance des observations, l'écart-type et la variance révèlent l'hétérogénéité, tandis que les distributions de Poisson et binomiale prévoient les événements rares. Ces méthodes utilisant Python avec numpy et pandas sont idéales pour les développeurs intermédiaires/seniors analysant des métriques métier.
Moyenne pondérée : Correction des distorsions dues aux valeurs aberrantes
La moyenne ordinaire est vulnérable aux valeurs aberrantes. Avec des salaires de 10 $ (directeur) et 0,10 $ (agent d'entretien, poids 10), la moyenne est de 5,05 $, ce qui ne reflète pas la réalité. La moyenne pondérée résout cela :
import numpy as np
salary = np.array([10.0, 0.10])
weight = np.array([1, 10])
result = np.sum(salary * weight) / np.sum(weight)
print(f"Weighted average: ${result:.2f}")
Sortie : 1,00 $. Applications :
- Analyse des revenus par canaux de vente en tenant compte du trafic.
- Évaluation de métriques avec des fréquences d'événements variables.
- Groupement des clients par segments avec des poids.
Écart-type et variance : Évaluation de la stabilité
L'écart-type mesure la dispersion autour de la moyenne. Pour les salaires [500, 400, 450, 550, 5000] :
import pandas as pd
import numpy as np
data = {
"Employee": ["Ivan", "Maria", "Oleg", "Anna", "CEO"],
"Salary": [500, 400, 450, 550, 5000]
}
df = pd.DataFrame(data)
n = len(df['Salary'])
mean_ = df['Salary'].mean()
s = np.sqrt(np.sum((df['Salary'] - mean_) ** 2) / (n - 1))
print(f"Standard deviation: {s:.2f}")
Résultat : 2024,41 — indicateur d'une forte valeur aberrante. La variance (carré de l'écart-type) est utile pour comparer des ensembles de données :
import numpy as np
sales = np.array([90, 95, 92, 93, 91, 200, 210])
mean_sales = np.mean(sales)
dispersion = np.sum((sales - mean_sales) ** 2) / (len(sales) - 1)
print("Variance:", dispersion)
La dispersion par jours (jours de semaine vs week-ends) nécessite une segmentation des données.
Corrélation de Pearson : Relations linéaires sans causalité
Le coefficient de corrélation de Pearson évalue la dépendance linéaire. Formule :
import numpy as np
X = np.array([1, 2, 3, 4, 5]) # study hours
Y = np.array([50, 55, 60, 65, 70]) # test scores
x_mean = np.mean(X)
y_mean = np.mean(Y)
corXY = np.sum((X - x_mean) * (Y - y_mean))
corr_sqrt = np.sqrt(np.sum((X - x_mean)**2) * np.sum((Y - y_mean)**2))
res = corXY / corr_sqrt
print(f"Pearson correlation: {res:.2f}")
r=1,00 — corrélation parfaite. Le carré (r²) donne la proportion de variation expliquée (en régression — coefficient de détermination). Souvenez-vous : corrélation ≠ causalité (exemple : golf et mortalité chez les personnes âgées).
Test du Chi-deux : Vérification des attentes vs réalité
Le chi-deux compare les valeurs observées (O) et attendues (E) :
import numpy as np
O = np.array([1, 2, 3, 4, 7, 9, 11, 13, 14]) # observed
E = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9]) # expected
xi = np.sum((O - E) ** 2 / E)
print(f"Chi-square statistic: {xi:.2f}")
Conditions : même longueur, E > 0. Valeur plus grande — plus grande divergence. Utilisé pour valider les prévisions.
Distribution de Poisson : Modélisation des événements rares
Pour des événements à intensité constante λ (moyenne par intervalle). Probabilité de k événements :
import math
λ = 3 # srednesutochnoe count requests
k = 5
prob = (λ ** k) * math.exp(-λ) / math.factorial(k)
print(f"Probability 5 requests: {prob:.4f}")
Résultat : 0,1008. Hypothèses : indépendance, probabilité constante, un événement à la fois. Applications :
- Prévision des appels de support.
- Estimation des commandes sur site web.
- Analyse des incidents de sécurité.
- Risques en finance.
Distribution binomiale : Succès dans des essais
Pour n essais avec probabilité de succès p. Probabilité de k succès :
import math
n = 100
k = 70
p = 0.7
b_coef = math.factorial(n) / (math.factorial(k) * math.factorial(n - k))
prob = b_coef * (p ** k) * ((1 - p) ** (n - k))
print(f"Probability 70 otkrytiy: {prob:.6f}")
Exemples : ouvertures d'emails, tests A/B, contrôle qualité.
Distribution exponentielle : Intervalles jusqu'aux événements
Probabilité d'un événement après un temps x à λ :
import math
lambd = 4 # vyzovov/hour
x = 1 / 3 # 20 min
prob = lambd * math.exp(-lambd * x)
print(f"Probability vyzova cherez 20 min: {prob:.4f}")
Pour les files d'attente, temps d'arrêt des équipements.
Points clés
- Moyenne pondérée et écart-type détectent les distorsions sans apprentissage automatique.
- Corrélation évalue les relations, r² — variation expliquée.
- Poisson et binomiale — pour prévoir les événements en métier.
- Chi-deux valide les hypothèses avec données minimales.
- Toutes les méthodes implémentables avec numpy/pandas, pas de GPU nécessaire.
— Editorial Team
Aucun commentaire pour le moment.