Erstellung zweier korrelierter Zufallsvariablen

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

8ZRbP
Beiträge: 60
Registriert: Do Okt 13, 2016 11:56 am

Erstellung zweier korrelierter Zufallsvariablen

Beitrag von 8ZRbP »

Hallo,

ich möchte mit möglichst einfachen (!) Mitteln zwei Variablen erstellen, die miteinander korrelieren.

Also in Pseudocode ausgedrückt:

Code: Alles auswählen

zufallszahlenpaarKorreliert(r, Wertebereich_var1(x,y), Wertebereich_var2(a,b) n) 

Die o.g. Funktion soll also zwei Variablen mit n Fällen generierten, wobei var1 Zahlen im Wertbereich (x,y) und var2 Zahlen im Wertebreich (a,b) annehmen darf. var1 und var2 sollen bivariat mit dem Korrelationskeffizientenr korrelieren.

Möglichst sollten beide Zahlen normalverteilt sein. Wenn ich zusätzlich die Größe der Varianz / SD einstellen kann, ist das sicher kein Nachteil, jedoch auch kein Muss! ;)

Besten Dank und Grüße,
8ZRbP
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Erstellung zweier korrelierter Zufallsvariablen

Beitrag von bigben »

Hallo 8ZRbP,

long time no see. Schön, dass Du wieder da bist.
8ZRbP hat geschrieben: Do Aug 12, 2021 12:59 pmich möchte mit möglichst einfachen (!) Mitteln zwei Variablen erstellen, die miteinander korrelieren.
Das Einfache ist nicht immer das beste. Das einfachste wäre es, zunächst ein normalverteiltes a zu ziehen (da muss man sich noch überlegen wie man sicherstellt, dass das zwischen unterer und oberer Grenze liegt, weil diese Forderung zur Normalverteilung streng genommen nicht passt) und als zweite Variable b wählt man die Summe aus a und einer weiteren normalverteilten Variable, die ich hier mal Epsilon genannt habe. Könnte dann im ersten Anlauf so aussehen:

Code: Alles auswählen

n <- 50
epsilon <- rnorm(n, sd = 1)

a <- rnorm(n = n, mean = 0, sd = 2)
b <- a + epsilon

plot(a, b)
cor(a, b)
Je nachdem, wie man die Standardabweichung von a wählt und wie man die Standardabweichung von epsilon wählt wird der Korrelationskoeffizient größer oder kleiner. Wenn Du einmal a und b brauchst, kann man das durch Herumprobieren anpassen, wenn das eine Funktion mit einem fest vorgegebenen Korrelationskoeffizienten werden soll, braucht man mehr Mathematik oder weitere Funktionen.

Ansonsten käme vielleicht das package mvnorm infrage, das es mit der Funktion rmvnorm erlaubt, Stichproben aus multivariaten Normalverteilungen mit beliebiger Kovarianzmatrix zu ziehen.

Ich rechne damit, dass von den anderen noch mehr Vorschläge kommen.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
schubbiaschwilli
Beiträge: 253
Registriert: Di Jun 27, 2017 12:09 pm

Re: Erstellung zweier korrelierter Zufallsvariablen

Beitrag von schubbiaschwilli »

Gude!

Du meinst eine Cholesky-Zerlegung (https://de.wikipedia.org/wiki/Cholesky-Zerlegung)?
Kann man selbst bauen, ich nutze sowas mit dem Paket MASS.

Code: Alles auswählen

require(MASS)
r <- 0.45678

out <- mvrnorm(n=5000, mu=c(0,0), Sigma=matrix(c(1,r,r,1), ncol=2), empirical=TRUE)

cor(out)
Dank&Gruß
Schubbiaschwilli
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Erstellung zweier korrelierter Zufallsvariablen

Beitrag von bigben »

Das war dann wohl die klar bessere Antwort :P
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
schubbiaschwilli
Beiträge: 253
Registriert: Di Jun 27, 2017 12:09 pm

Re: Erstellung zweier korrelierter Zufallsvariablen

Beitrag von schubbiaschwilli »

Noch nie von der Cholesky-Zerlegung gehört?
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Erstellung zweier korrelierter Zufallsvariablen

Beitrag von bigben »

Du bist mir nicht böse, wenn ich mit dem aktuellen xkcd-Comic antworte?

Bild
( https://xkcd.com/2501 )

GLG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Erstellung zweier korrelierter Zufallsvariablen

Beitrag von Athomas »

Im Interview mit der Zeit betonte der Erziehungswissenschaftler Elmar Tenorth von der Berliner Humboldt-Universität, dass Mathematik eine unverzichtbare Kulturtechnik sei. "Wenn man über die nicht verfügt, ist man wirklich kulturbehindert", sagte Tenorth. Dem wird aber gerade in Deutschland nur wenig Beachtung geschenkt. So ist es beispielsweise die Auffassung weit verbreitet, dass ein gebildeter Mensch in den Klassikern der Weltliteratur bewandert sein muss, während ein mangelndes Verständnis von Mathematik und den darauf aufbauenden Naturwissenschaften mit einem Scherz abgetan wird.
https://winfuture.de/news,76284.html

:D
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Erstellung zweier korrelierter Zufallsvariablen

Beitrag von bigben »

ebenda:
Laut einer repräsentativen Studie, die die Wochenzeitung Die Zeit (kommende Ausgabe) gemeinsam mit der Stiftung Rechnen in Auftrag gegeben hat, kann die Hälfte der Deutschen aber nicht einmal problemlos ausrechnen, wie viele Eimer Farbe sie zum Streichen eines vorgegebenen Kellerraums braucht.
So bin ich damals auf das Paket broom gekommen: Ich wolle mein Zimmer streichen und dachte, der Name sei eine Zusammenziehung von brush und room. Das Zimmer ist bis heute nicht gestrichen.
Da für die Rechenkompetenz maßgeblich der Mathematik-Unterricht verantwortlich ist, nehmen die Wissenschaftler, die die Untersuchung durchführten, in erster Linie die Schulen in die Pflicht
Im Abitur hatte ich damals 15 Punkte in Mathe, aber damals gab es weder tidyverse noch data.table. Wie hätten die Lehrer uns da Rechnen beibringen sollen? Also nehmt bitte Rücksicht auf mich und schreibt einfach etwas langsamer.

LG,
X
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
schubbiaschwilli
Beiträge: 253
Registriert: Di Jun 27, 2017 12:09 pm

Re: Erstellung zweier korrelierter Zufallsvariablen

Beitrag von schubbiaschwilli »

Gude!

War nicht despektierlich gemeint - ich glaube, du bist Arzt (oder?) und ich hätte bei deiner statischen (Aus)Bildung (also, was ich hier von dir lese) darauf gewettet, dass du die Cholesky-Zerlegung kennst - Ich meine, das Thema wurde in meinem Studium gefühlt in jeder 3. Vorlesung erwähnt - Obwohl wahrscheinlich nie jemand damit selbst gerechnet hat - Gibt halt Software.
bigben hat geschrieben: Fr Aug 13, 2021 12:57 pmIm Abitur hatte ich damals 15 Punkte in Mathe
Ich hab' mein schriftliches Mathe-Abi total versaut - Totaler Blackout, ich saß da, und wusste gar nichts - Ich hab' aber Wirtschaftsabi gemacht, und da war es..., naja, obwohl mir da schon klar war, dass ich dann Mathe studieren wollte (was ich dann auch gemacht habe) - Aber für Mathe gab's keinen NC, dass hat dann da auch keinen Interessiert. Das Wirtschaftsabi hat mir übrigens sehr viel gebracht: Ich wollte danach keine BWL, VWL oder so mehr studieren - Also alles richtig gemacht.

Gruß
Y
schubbiaschwilli
Beiträge: 253
Registriert: Di Jun 27, 2017 12:09 pm

Re: Erstellung zweier korrelierter Zufallsvariablen

Beitrag von schubbiaschwilli »

Gude!
Athomas hat geschrieben: Fr Aug 13, 2021 10:59 amhttps://winfuture.de/news,76284.html :D
Mathe-Kenntnisse sind in Deutschland katastrophal
Och, ich verdiene teilweise mein Geld damit - Wenn man einen einfachen Dreisatz oder Prozentrechnung als "Mathe-Kenntnisse" bezeichnen möchte (für mich ist das noch 'Rechnen' - Ohne das ich das jetzt lächerlich machen möchte) - Und das teilweise mal gar nicht wenig.

Deswegen: :D :D
Antworten