Zum Inhalt springen

Datei:P-hacking by early stopping.svg

Aus MOOCsWiki Staging
Originaldatei (SVG-Datei, Basisgröße: 1.152 × 576 Pixel, Dateigröße: 135 KB)

Diese Datei stammt aus Wikimedia Commons und kann von anderen Projekten verwendet werden. Die Beschreibung von deren Dateibeschreibungsseite wird unten angezeigt.

Beschreibung

Beschreibung
English: The figure shows the change in p-values computed from a t-test as the sample size increases, and how early stopping can allow for p-hacking.

Data is drawn from two identical normal distributions, . For each sample size , ranging from 5 to , a t-test is performed on the first <math>n<math> samples from each distribution, and the resulting p-value is plotted. The red dashed line indicates the commonly used significance level of 0.05.

If the data collection or analysis were to stop at a point where the p-value happened to fall below the significance level, a spurious statistically significant difference could be reported.

Illustration based on

Wagenmakers, Eric-Jan. "A practical solution to the pervasive problems of p values." Psychonomic bulletin & review 14.5 (2007): 779-804.

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

# Set random seed for reproducibility
np.random.seed(42)

# Function to perform t-test and return p-value
def perform_t_test(sample1, sample2):
    _, p_value = stats.ttest_ind(sample1, sample2)
    return p_value

# Initialize parameters
max_samples = 10**4
start_samples = 5
p_values = []
sample_sizes = range(start_samples, max_samples + 1)

# Generate data and perform t-tests
population1 = stats.norm(loc=0, scale=10)
population2 = stats.norm(loc=0, scale=10)

samples1 = population1.rvs(max_samples)
samples2 = population2.rvs(max_samples)

for n in sample_sizes:
    p_value = perform_t_test(samples1[:n], samples2[:n])
    p_values.append(p_value)

# Create the plot
plt.figure(figsize=(12, 6))
plt.semilogx(sample_sizes, p_values, 'b-')
plt.axhline(y=0.05, color='r', linestyle='--', label='p = 0.05')
plt.xlabel('Sample Size (log scale)')
plt.ylabel('p-value')
plt.title('Variability of p-value as Sample Size Increases')
plt.grid(True, which="both", ls="-", alpha=0.2)
plt.legend()
plt.ylim(0, 1)
plt.tight_layout()
plt.savefig('p-hacking.svg')
plt.show()
Datum
Quelle Eigenes Werk
Urheber Cosmia Nebula

Lizenz

Ich, der Urheber dieses Werkes, veröffentliche es unter der folgenden Lizenz:
w:de:Creative Commons
Namensnennung Weitergabe unter gleichen Bedingungen
Dieses Werk darf von dir
  • verbreitet werden – vervielfältigt, verbreitet und öffentlich zugänglich gemacht werden
  • neu zusammengestellt werden – abgewandelt und bearbeitet werden
Zu den folgenden Bedingungen:
  • Namensnennung – Du musst angemessene Urheber- und Rechteangaben machen, einen Link zur Lizenz beifügen und angeben, ob Änderungen vorgenommen wurden. Diese Angaben dürfen in jeder angemessenen Art und Weise gemacht werden, allerdings nicht so, dass der Eindruck entsteht, der Lizenzgeber unterstütze gerade dich oder deine Nutzung besonders.
  • Weitergabe unter gleichen Bedingungen – Wenn du das Material wiedermischst, transformierst oder darauf aufbaust, musst du deine Beiträge unter der gleichen oder einer kompatiblen Lizenz wie das Original verbreiten.

Kurzbeschreibungen

Ergänze eine einzeilige Erklärung, was diese Datei darstellt.

In dieser Datei abgebildete Objekte

Motiv

image/svg+xml

138.409 Byte

27b1e9907556002dd675b3dbfbd69cc7be7b42bd

Dateiversionen

Klicke auf einen Zeitpunkt, um diese Version zu laden.

Version vomVorschaubildMaßeBenutzerKommentar
aktuell03:21, 26. Jul. 2024Vorschaubild der Version vom 03:21, 26. Jul. 20241.152 × 576 (135 KB)wikimediacommons>Cosmia NebulaUploaded while editing "Data dredging" on en.wikipedia.org

Die folgende Seite verwendet diese Datei:

Metadaten