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. LG
Korrelation Pearson
Moderator: jogo
Re: Korrelation Pearson
Verständlich ausgedrückt hast Du Dich schon. Nur leider existiert das gewünschte nicht.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.
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
- nach ordinal zu überführen Uni besser Lehre besser Matura oder
- 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.
Re: Korrelation Pearson
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
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
Re: Korrelation Pearson
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.
Danke mal für deine Hilfe Consuli. Es werden im Laufe der Zeit bestimmt noch Fragen auftauchen.
Re: Korrelation Pearson
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")
Irmgard.
Re: Korrelation Pearson
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:
Sollte dann circa so aussehen:
Freundliche Grüße und danke vorab.
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:
Sollte dann circa so aussehen:
Freundliche Grüße und danke vorab.