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