Kursinhalt
Fortgeschrittene Wahrscheinlichkeitstheorie
Fortgeschrittene Wahrscheinlichkeitstheorie
Vergleich der Mittelwerte Zweier Verschiedener Datensätze
Eine ziemlich wichtige angewandte Aufgabe ist es, die mathematischen Erwartungen von zwei verschiedenen unabhängigen numerischen Datensätzen zu vergleichen.
Im Allgemeinen wird diese Aufgabe eher nicht-trivial gelöst, aber unter bestimmten Bedingungen kann dies relativ einfach durchgeführt werden.
Betrachten wir die folgenden Bedingungen:
Wir haben zwei unabhängige numerische Datensätze mit Gaußschen Verteilungen und gleichen Varianzen (wir kennen möglicherweise nicht den tatsächlichen Wert der Varianz, aber wir müssen sicherstellen, dass die Varianzen gleich sind). Wir möchten die folgende Hypothese testen:
Haupthypothese: Die Erwartungen dieser Datensätze sind gleich.
Alternative Hypothese: Die Erwartung des X-Datensatzes ist größer als die des Y-Datensatzes.
Statistisches Kriterium
Wenn die oben beschriebenen Bedingungen erfüllt sind, können wir das folgende Kriterium verwenden, um diese Hypothese zu überprüfen:
Python-Implementierung
Lassen Sie uns zwei unabhängige Datensätze mit unterschiedlichen Mittelwerten generieren und versuchen, die Hypothese zu überprüfen:
import numpy as np import scipy.stats as stats import matplotlib.pyplot as plt # Generate two independent Gaussian datasets with different means and variances np.random.seed(123) # Set seed for reproducibility data1 = np.random.normal(loc=5, scale=2, size=500) # Generate first dataset data2 = np.random.normal(loc=4.7, scale=2, size=500) # Generate second dataset # Compute the two-sample t-test. By default, it checks the two-tailed hypothesis t_stat, p_value = stats.ttest_ind(data1, data2) # Define the significance level alpha = 0.05 # Compare the p-value with the significance level and print the result if p_value < alpha: print('Reject the null hypothesis that the means are equal') else: print('Fail to reject the null hypothesis that the means are equal') # Plot the critical regions of the t-test fig, ax = plt.subplots() # Create figure and axis objects x = np.linspace(-4, 4, 1000) # Generate x values for plotting y = stats.t.pdf(x, df=len(data1)+len(data2)-2) # Compute t-distribution PDF ax.plot(x, y, label='t-distribution') # Plot t-distribution t_crit_left = stats.t.ppf(alpha/2, len(data1)+len(data2)-2) # Compute left critical value t_crit_right = stats.t.ppf(1-alpha/2, len(data1)+len(data2)-2) # Compute right critical value ax.axvline(t_crit_left, color='r', linestyle='--', label='t-critical left') # Plot left critical value ax.axvline(t_crit_right, color='g', linestyle='--', label='t-critical right') # Plot right critical value ax.axvline(t_stat, color='k', linestyle='--', label='t-statistic') # Plot t-statistic ax.legend() # Add legend to the plot plt.show() # Show the plot
Wir sehen, dass der Wert des Kriteriums in die rechte kritische Region gefallen ist, daher schließen wir, dass der mathematische Erwartungswert des ersten Datensatzes größer ist als der mathematische Erwartungswert des zweiten.
Datensätze mit unterschiedlichen Varianzen
Es gibt auch eine Verallgemeinerung dieses Kriteriums für den Fall, dass die Varianzen der Datensätze unterschiedlich sind, schauen wir uns ein Beispiel an, wie dies im Code implementiert werden kann:
import numpy as np import scipy.stats as stats import matplotlib.pyplot as plt # Generate two independent Gaussian datasets with different means and variances np.random.seed(123) data1 = np.random.normal(loc=5, scale=2, size=100) data2 = np.random.normal(loc=4.95, scale=4, size=100) # Compute the two-sample t-test t_stat, p_value = stats.ttest_ind(data1, data2, equal_var=False) # Define the significance level alpha = 0.05 # Compare the p-value with the significance level and print the result if p_value < alpha: print('Reject the null hypothesis that the means are equal') else: print('Fail to reject the null hypothesis that the means are equal')
Im obigen Code haben wir equal_var=False
als Argument der Methode stats.ttest_ind
verwendet, um Hypothesentests für Datensätze mit unterschiedlichen Varianzen bereitzustellen.
Danke für Ihr Feedback!