Berechnung von Mittelwert, Median, Modus und Standardabweichung aus der Verteilung

8

Wie berechnet man Mittelwert, Varianz, Median, Standardabweichung und Verteilungsmodus? Wenn ich zufällig Zahlen generiere, die die Normalverteilung bilden, habe ich den Mittelwert als m=24.2Standardabweichung wie folgt angegeben sd=2.2:

> dist = rnorm(n=1000, m=24.2, sd=2.2)

Dann kann ich folgendes tun:

Bedeuten:

> mean(dist)
[1] 24.17485

Varianz:

> var(dist)
[1] 4.863573

Median:

> median(dist)
[1] 24.12578

Standardabweichung:

> sqrt(var(dist))
[1] 2.205351

Modus aka Modus (von hier übernommen ):

> names(sort(-table(dist)))[1]
[1] "17.5788181686221"
  1. Ist das die ganze Magie oder gibt es noch etwas, das ich nicht realisiert habe?
  2. Kann ich mir meine glockenförmige Normalverteilung mit vertikalen Linien (Mittelwert, Median ...) irgendwie vorstellen?
  3. Was sagen diese Attribute über die Verteilung aus?

PS: Code ist in R.

Wakan Tanka
quelle
Es ist nicht klar, was Sie mit Ihrer Frage 1 meinen. Frage 3 scheint derzeit zu weit gefasst zu sein, da man über jede Frage viel schreiben könnte. Könnten Sie die Wikipedia-Seiten auf Mittelwert, Median, Standardabweichung und Modus überprüfen und dann etwas Spezifischeres fragen?
Glen_b -Reinstate Monica
Ihr Titel spricht auch von einer "Verteilung", aber Ihr Text scheint sich stattdessen auf ein Beispiel zu beziehen . Sollte sich Ihr Titel auf ein Beispiel beziehen?
Glen_b -Reinstate Monica
@Glen_b bis 1. Ich meine, wenn die von mir veröffentlichten Methoden zur Berechnung von Parametern (Mittelwert, Varianz ...) für die Verteilung in Ordnung sind oder etwas anderes oder irgendwie anders verwendet werden sollten? 3. Ich wusste nicht, dass das zu weit gefasst ist, ich erwartete eine Antwort wie: Wenn der Median größer als der Mittelwert ist, dann Ihre Daten ... In Bezug auf das Umtiteln ist es vielleicht in Ordnung, tatsächlich habe ich mit normaler Verteilung gearbeitet oder irre ich mich?
Wakan Tanka
Es tut mir leid, aber ich kann Ihrem Kommentar dort überhaupt nicht folgen.
Glen_b -State Monica
Sie müssen eine kontinuierliche Variable nicht ablegen, bevor Sie ihren Modus abschätzen können. Weitere Informationen finden Sie unter stats.stackexchange.com/questions/176112/… . (Sie sollten vermeiden, Binning als abhängig von willkürlichen Entscheidungen der Behälterbreite und Herkunft.)
Nick Cox

Antworten:

10

Zunächst ein allgemeiner Kommentar zum Modus:

Sie sollten diesen Ansatz nicht verwenden, um den Modus (zumindest fiktiv) kontinuierlich verteilter Daten zu ermitteln. Es ist unwahrscheinlich, dass sich Werte wiederholen (es sei denn, Sie haben wirklich große Stichproben, es wäre ein kleines Wunder, und selbst dann könnten verschiedene numerische Probleme dazu führen, dass es sich auf etwas unerwartete Weise verhält), und Sie erhalten im Allgemeinen nur den Mindestwert dafür Weg. Es wäre eine Möglichkeit, einen der globalen Modi in diskreten oder kategorialen Daten zu finden, aber ich würde es wahrscheinlich auch dann nicht so machen. Hier sind einige andere Ansätze, um den Modus für diskrete oder kategoriale Daten zu erhalten:

x = rpois(30,12.3)

tail(sort(table(x)),1)   #1: category and count; if multimodal this only gives one

w=table(x); w[max(w)==w] #2: category and count; this can find more than one mode

which.max(table(x))      #3: category and *position in table*; only finds one mode

Wenn Sie nur den Wert und nicht die Anzahl oder Position wollen, names()erhalten Sie ihn von diesen

Um Modi (es kann mehr als einen lokalen Modus geben) für kontinuierliche Daten auf grundlegende Weise zu identifizieren , können Sie die Daten (wie bei einem Histogramm) ablegen oder sie glätten ( densityz. B. verwenden) und versuchen, einen oder mehrere Modi zu finden dieser Weg.

Mit weniger Histogrammfächern ist Ihre Schätzung eines Modus weniger rauschempfindlich, aber die Position wird nicht besser als die Behälterbreite festgelegt (dh Sie erhalten nur ein Intervall). Mehr Behälter ermöglichen möglicherweise mehr Präzision innerhalb eines Behälters, aber Rauschen kann dazu führen, dass er über viele solcher Behälter hinweg springt. Eine kleine Änderung des Behälterursprungs oder der Behälterbreite kann zu relativ großen Änderungen des Modus führen. (Es gibt den gleichen Bias-Varianz-Kompromiss in allen Statistiken.)

Beachten Sie, summarydass Sie mehrere grundlegende Statistiken erhalten.

[Sie sollten sd(x)eher als verwenden sqrt(var(x)); es ist klarer für eine Sache]

- -

In Bezug auf q.2 ja; Sie könnten sicherlich den Mittelwert und den Median der Daten auf einer Anzeige wie einem Histogramm oder einem Boxplot anzeigen. Sehen Sie hier einige Beispiele und Code , dass Sie in der Lage sein sollte, unabhängig von Fällen zu verallgemeinern Sie benötigen.

Glen_b -Reinstate Monica
quelle
Vielen Dank, können Sie bitte den Unterschied zwischen Binden und Glätten erklären?
Wakan Tanka
@ Wakan Was ist verbindlich?
Glen_b -State Monica
1
Extrem nützlich. Sehr überraschend, dass das R-Projekt dies nicht zu einer Basisfunktion gemacht hat.
Hack-R
7

Einige zusätzliche und nicht sehr bekannte beschreibende Statistiken.

x<-rnorm(10)

sd(x) #Standard deviation

fivenum(x) #Tukey's five number summary, usefull for boxplots

IQR(x) #Interquartile range

quantile(x) #Compute sample quantiles

range(x) # Get minimum and maximum

Ich bin sicher, dass Sie viele andere in einem dieser frei verfügbaren RHandbücher finden können.

JohnK
quelle
Können Sie einige Situationen posten, in denen Sie diese verwendet haben (Fivenum, IQR, Quantil ...) und sie nützlich waren?
Wakan Tanka
0

Wie @Glen_b beschrieben hat, ist der Modus einer kontinuierlichen Verteilung nicht so einfach wie für einen Vektor von ganzen Zahlen.

Dieser R-Code erhält den Modus für eine kontinuierliche Verteilung unter Verwendung der unglaublich nützlichen hist()Funktion von Basis R. Wie @Glen_b beschrieben hat, werden Beobachtungen in Bins eingeteilt - diskrete Kategorien, in denen die Beobachtung als Instanz von gezählt wird, wenn sie in das Bin-Intervall fällt dieser Behälter, der das Problem umgeht, dass es in einer kontinuierlichen Verteilung höchst unwahrscheinlich ist, dass er genau denselben Wert zweimal beobachtet.

set.seed(123)
dist <- rnorm(n=1000, m=24.2, sd=2.2)
h <- hist(dist, # vector
          plot = F, # stops hist() from automatically plotting histogram
          breaks = 40) # number of bins

Jetzt behandeln wir den Mittelpunkt des Bin-Intervalls, in dem sich die maximale Anzahl befindet, als Modus

h$mids[which.max(h$counts)] 

# [1] 23.75

Voila! Der Modus.

ps Sie können auch den Beginn des Intervalls als Modus über behandeln h$breaks[which.max(h$counts)]. Wie bereits erwähnt, sind Modi für kontinuierliche Verteilungen nicht einfach und erfordern Entscheidungen. Daher gibt es für sie keine einfache Funktion wie bei mean()undmedian()

llewmills
quelle
Das läuft darauf hinaus zu sagen, dass Sie zum Finden des Modus den am häufigsten vorkommenden Behälter finden. Was machst du, wenn es Krawatten gibt? Wie wählen Sie Behälter systematisch aus?
Nick Cox
Das sind sehr gute Fragen @Nick Cox? Würde gerne die Antwort wissen. Ich denke, Sie würden eine Regel brauchen, wenn es Bindungen gibt.
Llewmills