Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

R und RStudio Grundkurs

(Pseudo-)Zufallszahlen unterschiedlicher Verteilungen erzeugen

Testen Sie unsere 2021 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
In diesem Video verfolgen Sie, wie man Sequenzen erzeugt. Außerdem erfahren Sie, wie normalverteilte Zufallszahlen generiert und geplottet werden können.
10:21

Transkript

Manchmal kann es sehr sinnvoll sein, eine Stichprobe zu simulieren. Ein sehr mächtiges Werkzeug von R ist das Erzeugen von Pseudozufallszahlen, unterschiedliche Verteilungen, wenn man zum Beispiel eine Stichprobe simulieren möchte. In dem nächsten Video möchte ich Ihnen zeigen, wie Sie als Erstes eine Sequenz von Zahlen erzeugen und als nächstes, wie Sie normalverteilte Zufallszahlen generieren können. Dafür öffnen Sie bitte RStudio und legen eine neue Skriptdatei an. Das können Sie machen, indem Sie auf dieses kleine grüne Plus, an der linken Seite, klicken und dann auf "R Script" und dieses Skript speichern Sie zum Beispiel ab unter "Zufallszahlen". Als aller erstes möchte ich mit Ihnen Sequenzen erzeugen. Das ist relativ einfach, Sie legen einen neuen Vektor an "seq1" und weisen Wesen Vektor eine Sequenz zu mit dem Befehl "seq". Diese Sequenz soll zum Beispiel von 1 bis 10 gehen und das in 0,01 Schritte. Wenn Sie nachrechnen, müssen wir jetzt 901 Werte erhalten. Und tatsächlich, auf der rechten Seite sehen Sie, wir haben einen Vektor erzeugt, "seq1" und dieser Vektor läuft von 1 bis 901, hat also 901 Zeilen. Wir können diesen Vektor auch einfach noch einmal abrufen, und Sie sehen den Vektor mit der kleinsten Zahl 1 und der größten Zahl 10 und dazwischen den Zahlen in 0,01 Schritten. Wir haben eine Sequenz erzeugt. Wenn wir jedoch Stichproben simulieren möchten, sind solche Sequenzen nicht sehr nützlich. In dem Fall, würden wir vielleicht eher auf normalverteilte Zufallszahlen zurückgreifen wollen, und auch das ist in R relativ einfach zu machen. Wenn Sie ihre Zufallszahlen und alles was Sie mit diesen Zufallszahlen so einstellen reproduzieren möchten, nachverfolgen möchten, dann lohnt es sich einen Startwert zu setzen mit dem Befehl "set.seed". Das können Sie tun, das müssen Sie aber nicht. Der eigentliche Befehl zum Erzeugen von Zufallszahlen ist "rnorm", also generieren wir erstmal einen Vektor, ich nenne ihn "normal1000" und diesen Vektor werden normalverteilte Zufallszahlen zugewiesen, mit "rnorm", r steht hier für "rendom" und "norm" für die "Normalverteilung". Wir wollen einen Stichprobenumfang von 1000 Werten haben, also einen Vektor mit 1000 Werten und einen Mittelwert zum Beispiel von 0 und eine Standardabweichung von 1. Also im Grunde wollen wir 1000 standardnormalverteilte Zufallszahlen generieren. Ich führe das ganze mal aus und Sie können jetzt entweder im Skript oder in der Konsole diesen Vektor abrufen und Sie sehen, Sie erhalten 1000 Zufallszahlen, beziehungsweise einen Vektor mit 1000 Werten und diese Werte sind standardnormalverteilt, die wir auch auf der rechten Seite sehen können. An dieser Stelle bietet es sich an, mal mit der Funktion "plot" zu spielen. Mit der Funktion "plot" kann man relativ einfach Streudiagramme, aber auch Kurvenverläufe darstellen. Wenn Sie ein Streudiagramm generieren möchten, dann reicht es einfach den Befehl "plot" aufzurufen und Ihren Vektor einzubetten. Wenn Sie diesen Befehl ausführen, haben Sie ein Streudiagramm über Ihre standardnormalverteilten Zufallszahlen, die irgendwie symmetrisch um 0 streuen. Die meisten denken jedoch eher an die Dichtefunktion der Normalverteilung, wenn wir von normalverteilten Zufallszahlen sprechen. Also Sie denken an diese schöne gaußsche Glockenform und auch die können wir relativ einfach zeichnen. Und an dieser Stelle müssen Sie mir einfach vertrauen, indem Sie mal den Befehl "plot" angeben, dann den Befehl "function" für Funktion, Sie wollen einen Funktionsverlauf haben und Sie wollen den Funktionsverlauf Ihre normalverteilten Zufallszahlen haben. Und zwar Sie wollen die Dichte geplottet haben. Also geben Sie jetzt nicht "rnorm" an, sondern "dnorm" für "density". Und hier stecken Ihre normalverteilten Zufallszahlen drin. So, und das Ganze können wir jetzt einfach mal abrufen, beziehungsweise ausführen und Sie sehen, das sieht noch nicht ganz nach einer gaußschen Glockenform aus. Kein Wunder, wir wissen wir haben vorher festgelegt, dass unsere Zufallszahlen einen Mittelwert von 0 haben soll. Wir wissen, dass die Dichtefunktion normalverteilte Zufallszahlen achsensymmetrisch ist, damit liegt die Hälfte der Dichtefunktion links vom Mittelwert, also von X=0. Wir erhöhen einfach mal den Wertebereich von X, das können wir ganz bequem mit "xlim" machen, also wir limitieren die x-Achse auf 2 Zahl, wir müssen aber auch sagen, wir limitieren innerhalb eines Vektors, deswegen brauchen wir das kleine c für "combine" und wir limitieren auf den Wertebereich -5 bis +5. Was können wir noch machen? Auf der linken Seite sehen Sie, auf der Y-Achse, beziehungsweise der Ordinate, die ganze Funktion, die wir hier eingegeben haben. Das muss ja auch nicht sein. Wir wissen aus der Statistik, die Dichtefunktion wird angegeben mit klein "f(x)", und genau das können wir hier auch machen. wir sagen x sei unsere normalverteilten Zufallszahlen, also es soll an der y-Achse stehen, "ylab" lab für Label "=f(x)". Wir markieren alles, führen das Ganze dann aus und wir sehen eine wunderschöne gaußsche Glockenform und an der linken Seite steht an der Y-Achse f(x) und deutet auf unsere Dichte. Nun ja, man kann ja auch relativ leicht von der Dichtefunktion auf die Verteilungsfunktion schließen. und auch das geht in R relativ leicht. Ich kopiere mir einfach, das sollte auskommentiert sein, die Zeile der Dichtefunktion nach unten und ändere lediglich dieses "d" ab. Ich möchte ja jetzt nicht die Dichtefunktion haben, sondern die Wahrscheinlichkeitsverteilungsfunktionen, also die probability distribution function. Und die kennzeichne ich mit einem kleinen p, der Rest kann so bleiben. An der y-Achse steht jetzt die Verteilungsfunktion und die wird meist du mir geben mit groß F(x), und dann plotten wir das Ganze und wir sehen eine wunderschöne Verteilungsfunktion. Analog ist es möglich, dass Sie p austauschen und dafür q einsetzen und Sie erhalten die Quantilfunktion. Ich kann das mal ganz schnell machen. Die Quantilfunktion ist die Umkehrfunktion der Verteilungsfunktion, also "F^{-1}" wir müssen den Wertebereich ein bisschen ändern, und zwar brauchen wir nicht den Wertebereich von x, sondern von y, und den Sätzen wir mal von - 3 bis + 3, und dann ist das nicht mehr die Verteilungsfunktion, sondern die Quantilsfunktion. Und die sieht wie folgt aus. Nun wissen Sie, wie Sie Sequenzen mit R erzeugen können, aber auch, wie Sie normalverteilte Zufallszahlen generieren können, wie sie Dichtefunktion, Verteilungsfunktion und für die ganz fortgeschrittenen, auch die Quantilsfunktionen generieren können.

R und RStudio Grundkurs

Lernen Sie, wie Daten mit der Programmiersprache R statistisch ausgewertet, geplottet und exportiert werden können.

2 Std. 29 min (16 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Software:
R R 3
Exklusiv für Abo-Kunden
Erscheinungsdatum:17.11.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!