Korrelation Pearson

Alles zum Thema der beschreibenden Statistik

Moderator: jogo

Antworten
M_Hanko

Korrelation Pearson

Beitrag von M_Hanko »

Hallo, ich möchte mich mal kurz vorstellen, da ich neu hier bin.

Ich schreibe gerade meine Masterarbeit über das Thema "assortative mating" in Österreich und arbeite dabei mit EU-SILC Daten. Leider habe ich im Studium keine R Erfahrungen machen können, nichts desto trotz hab ich es durch die vielen Tutorials im Netz jetzt mal geschafft meine Daten soweit aufzubereiten. Jetzt häng ich allerdings bei der Korrelation ein Bisschen und hoffe hier Hilfe zu finden.

Also folgendes:

Ich möchte die Korrelation zwischen Paaren und deren Bildung berechnen.

Mein Dataframe sind derzeit so aus:

Haushaltsnummer Personenidentifikationsnummer Bildungsgrad
1 101 Uni
1 102 Uni
2 201 Lehre
2 202 Matura
3 301 Matura
3 302 Matura
4 401 Lehre
4 402 Lehre

Die Haushaltsnummer bezieht sich auf die Paare, das bedeute, dass 1 (101) und 1 (102) ein Paar sind.

Meine Überlegung ist, die Zeilen nach der Haushaltsnummer zusammenzufügen, sodass ich mal die Indiviuen zu Paaren zusammengefügt habe und daraus dann die Korrelation für die Bildung berechnen kann.

Das neue Dataframe sollte dann so aussehen:

Haushaltsnummer Personenidentifikationsnummer1 Bildungsgrad1 Personenidentifikationsnummer2 Bildungsgrad2
1 101 Uni 102 Uni
2 201 Lehre 202 Maura
........

Kann mir da vielleicht jemand die Befehle sagen?
Ich hoffe ich habe mich verständlich ausgedrückt. :roll: LG
consuli
Beiträge: 479
Registriert: Mo Okt 10, 2016 8:18 pm

Re: Korrelation Pearson

Beitrag von consuli »

M_Hanko hat geschrieben: Sa Jul 07, 2018 11:05 am Meine Überlegung ist, die Zeilen nach der Haushaltsnummer zusammenzufügen, sodass ich mal die Indiviuen zu Paaren zusammengefügt habe und daraus dann die (Pearson-)Korrelation für die Bildung berechnen kann.

Ich hoffe ich habe mich verständlich ausgedrückt.
Verständlich ausgedrückt hast Du Dich schon. Nur leider existiert das gewünschte nicht.

Deine Variable Bildung (Matura, Lehre, Uni) ist natürlicher Weise nominal skaliert. D.h. es ist zunächst einmal einfach nur eine ranglose Kategorisierung wie die Farben blau, grün, rot.

Für nominal skalierte Variablen gibt es keine Korrelation sondern Kreuztabellen basierte Zusammenhangmaße. Das am häufigsten verwendete ist Cramer's V. Wenn Du Cramer's V rechnen willst, dann musst Du die Daten so anliefern wie die korrespondierende R-Funktion sie angeliefert haben will.

Eine andere Möglichkeit besteht darin, die originär nominal skalierte Variable nachzudefinieren, und zwar
  1. nach ordinal zu überführen Uni besser Lehre besser Matura oder
  2. nach pseudo-intervallskaliert bzw. pseudo-metrisch zu überführen (Uni= 1, Lehre= 0,7, Matura= 0,4)


Auf den ordinalen oder pseudometrischen Daten könntest Du dann Deine Korrelation rechnen. Auch hier müsstest Du die Daten wieder so anliefern, wie die R-Funktion cor() sie angeliefert haben will (als zwei Vektoren).

Consuli
Irmgard.
M_Hanko

Re: Korrelation Pearson

Beitrag von M_Hanko »

Hallo, danke für die Antwort.
Dann werd ich sie vmtl. Reihen oder Kontingenztabellen erstellen.

Aber mal viel wichtiger, gibt es eine Antwort zur ursprünglich gestellten Frage mit den Zeilen zusammenfügen?

LG
M_Hanko

Re: Korrelation Pearson

Beitrag von M_Hanko »

Danke, ich hab das jetzt so hinbekommen, dass ich zunächst die Daten aufgeteilt habe in Persoenendaten1 und Personendaten2 und das ganze dann nach Haushaltsnummer gemerged habe.

Danke mal für deine Hilfe Consuli. Es werden im Laufe der Zeit bestimmt noch Fragen auftauchen.
consuli
Beiträge: 479
Registriert: Mo Okt 10, 2016 8:18 pm

Re: Korrelation Pearson

Beitrag von consuli »

M_Hanko hat geschrieben: So Jul 08, 2018 9:31 am Aber mal viel wichtiger, gibt es eine Antwort zur ursprünglich gestellten Frage mit den Zeilen zusammenfügen?
Du meinst die Umwandlung der Variable Bildung vom Longformat in separate Spalten?

Code: Alles auswählen

reshape(dataframe, timevar = "Personenidentifikationsnummer", idvar = "Haushaltsnummer", direction = "wide")
oder 
reshape(dataframe, timevar = "Haushaltsnummer", idvar = "Personenidentifikationsnummer", direction = "wide")
Consuli
Irmgard.
M_Hanko

Re: Korrelation Pearson

Beitrag von M_Hanko »

Genau das meinte ich. Danke Consuli.


Ich bin jetzt beim letzten Schritt von meinen Berechnungen und zwar dem Randomisieren.
Gibt es eine Möglichkeit eine Variable (Income.y) unter der Bedingung zu randomisieren, dass die Differenz von zwei anderen Variablen (age.x - age.y) kleiner 11 Jahren ist?

Es soll also das Einkommen.y randomisiert werden, aber der Altersunterschied bei der Zuordnung soll nicht mehr als 10 Jahre sein.

Zudem würde ich gerne eine 3. Variable (occupation.y) bei der Randomisierung "mitnehmen".

Beispiel:

Bild

Sollte dann circa so aussehen:

Bild

Freundliche Grüße und danke vorab.
Antworten