# Statistische Methoden für die Datenanalyse ohne maschinelles Lernen
Statistische Werkzeuge ermöglichen eine schnelle Auswertung von Daten ohne komplexe Modelle des maschinellen Lernens. Gewichtete Mittel berücksichtigen die Wichtigkeit der Beobachtungen, Standardabweichung und Varianz offenbaren Heterogenität, während Poisson- und Binomialverteilungen seltene Ereignisse vorhersagen. Diese Methoden mit Python, numpy und pandas sind ideal für Mid-/Senior-Entwickler, die Geschäftsmetriken analysieren.
Gewichtetes Mittel: Korrektur von Ausreißer-Verzerrungen
Der einfache Durchschnitt ist anfällig für Ausreißer. Bei Gehältern von $10 (Direktor) und $0.10 (Hausmeister, Gewicht 10) beträgt der Durchschnitt $5.05, was die Realität nicht widerspiegelt. Das gewichtete Mittel löst das:
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}")
Ausgabe: $1.00. Anwendungen:
- Umsatzanalyse nach Vertriebskanälen unter Berücksichtigung des Traffics.
- Auswertung von Metriken mit unterschiedlichen Ereignishäufigkeiten.
- Gruppierung von Kunden nach Segmenten mit Gewichten.
Standardabweichung und Varianz: Stabilität bewerten
Die Standardabweichung misst die Streuung um den Mittelwert. Bei Gehältern [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}")
Ergebnis: 2024.41 – Indikator für einen starken Ausreißer. Die Varianz (Quadrat der Abweichung) eignet sich zum Vergleich von Datensätzen:
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)
Streuung nach Tagen (Wochentage vs. Wochenenden) erfordert eine Segmentierung der Daten.
Pearson-Korrelation: Lineare Beziehungen ohne Kausalität
Der Pearson-Korrelationskoeffizient bewertet lineare Abhängigkeiten. Formel:
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 – perfekte Korrelation. Das Quadrat (r²) gibt den Anteil der erklärten Variation an (in der Regression – Bestimmtheitsmaß). Merke: Korrelation ≠ Kausalität (Beispiel: Golf und Sterblichkeit bei Älteren).
Chi-Quadrat-Test: Erwartungen vs. Realität prüfen
Chi-Quadrat vergleicht beobachtete (O) und erwartete (E) Werte:
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}")
Bedingungen: gleiche Länge, E > 0. Höherer Wert – größere Abweichung. Verwendet zur Validierung von Prognosen.
Poisson-Verteilung: Modellierung seltener Ereignisse
Für Ereignisse mit konstanter Intensität λ (Durchschnitt pro Intervall). Wahrscheinlichkeit von k Ereignissen:
import math
λ = 3 # srednesutochnoe count requests
k = 5
prob = (λ ** k) * math.exp(-λ) / math.factorial(k)
print(f"Probability 5 requests: {prob:.4f}")
Ergebnis: 0.1008. Annahmen: Unabhängigkeit, konstante Wahrscheinlichkeit, ein Ereignis zur Zeit. Anwendungen:
- Prognose von Support-Anrufen.
- Schätzung von Website-Bestellungen.
- Analyse von Sicherheitsvorfällen.
- Risiken im Finanzwesen.
Binomialverteilung: Erfolge in Versuchen
Für n Versuche mit Erfolgswahrscheinlichkeit p. Wahrscheinlichkeit von k Erfolgen:
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}")
Beispiele: E-Mail-Öffnungen, A/B-Tests, Qualitätskontrolle.
Exponentialverteilung: Intervalle bis zu Ereignissen
Wahrscheinlichkeit eines Ereignisses nach Zeit x bei λ:
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}")
Für Warteschlangen, Ausfallzeiten von Geräten.
Wichtige Erkenntnisse
- Gewichtetes Mittel und Abweichung erkennen Verzerrungen ohne ML.
- Korrelation bewertet Beziehungen, r² – erklärte Variation.
- Poisson und Binomial – zur Prognose von Ereignissen im Geschäft.
- Chi-Quadrat validiert Hypothesen mit minimalen Daten.
- Alle Methoden umsetzbar mit numpy/pandas, kein GPU erforderlich.
— Editorial Team
Noch keine Kommentare.