2017-02-19 2 views
1

Ich versuche, einige Analyse-Dienstprogramme, die ich schreibe, eine einfache T-Score-Visualisierung hinzuzufügen (Plotting pdf Wahrscheinlichkeitsdichtefunktion über ein Intervall). In diesem Beispiel zeichne ich eine Student-t-Verteilung zusammen mit kritischen T-Score-Cutoffs für eine gegebene Problemmenge. Wie dem auch sei, das einfache vis geht einfach nicht richtig aus.Probleme bei der Visualisierung einer T-Distribution in Python

In diesem Beispiel habe ich eine n=24 Dataset und ich versuche, eine alpha=0.05 zwei tailed Test für ihn (AKA statistische Signifikanz von 2,5% in entweder Schwanz der Verteilung angegeben) zu visualisieren. Ich würde erwarten, dass der kritische t-Wert die t-Verteilung bei einem y (Wahrscheinlichkeit) -Wert von 0,025 schneidet, aber die t-Verteilung selbst scheint skaliert/abgeflacht zu sein? um einen gewissen Betrag.

Soweit ich sagen kann, stimmt die t-Verteilung einfach nicht mit dem überein, was ich erwarten würde, aber das Setup ist einfach genug, wo ich nicht sagen kann, wo ich falsch liege. Ich bin etwas neu in der Statistik und frage mich, ob ich etwas Grundlegendes vermisse?

## Basic T-Distribution 
import scipy.stats as st 
import matplotlib.pyplot as plt 
import numpy as np 

## Setup  
dof = 23  # Degrees of freedom 
alpha = 0.05 # Significence level 
ntails = 2  # Number of tails 

## Calculate critical t-score 
tcrit = abs(st.t.ppf(alpha/ntails, dof)) 
# +=2.068 

plt.figure() 
xs = np.linspace(-10,10,1000) 
plt.plot(xs, st.t.pdf(xs,dof), 'k', label="T-Distribution PDF") 

## Plot some vertical lines representing critical t-score cutoff 
critline = np.linspace(0,alpha/ntails) # y range for critical line, AKA probability from 0-p* 
xs_1 = len(critline) * [-tcrit]   # X ranges for plotting 
xs_2 = len(critline) * [tcrit] 
plt.plot(xs_1, critline, 'r', label="-t* for dof=23") 
plt.plot(xs_2, critline,'r', label="t* for dof=23") 
plt.legend() 

T-Vis

Antwort

1

Das PDF ist ein Dichte. Die Y-Achse ist nicht in Einheiten von "Wahrscheinlichkeit", sondern "Wahrscheinlichkeit pro Einheit von X". Bewerten Sie das PDF unter tcrit, um den passenden Wert für die Übereinstimmung mit der Kurve zu erhalten.

diese versuchen, die vertikale Linien zu zeichnen:

plt.vlines([-tcrit, tcrit], 0.0, st.t.pdf(tcrit), colors='r') 
+0

+1 für 'vlines' dank dort und für die explination. Ich bin verwirrt, was eine "Einheit von X" hier ist? Ist X nicht der T-Score, der mehr oder weniger ein standardisiertes Maß für den Unterschied ist? Wie würdest du die "pro Einheit von X" loswerden, um die wahre Wahrscheinlichkeit auf einem Diagramm zu visualisieren? –

+0

Sie werden es nicht loswerden. Die Werte der PDF sind Dichten, keine Wahrscheinlichkeiten. Das Integral der PDF ist eine Funktion der Wahrscheinlichkeiten, aber das ist nicht das, was Sie zeichnen. Das Alpha/2 ist der * Bereich * unter der Kurve jedes der beiden Enden, nicht der * Wert * des PDFs an diesen Punkten. –

+0

Aah aah aah, das macht jetzt absoluten Sinn. Danke für das Aufklären! –