[Courtesy of pxhere](https://pxhere.com/en/photo/734854) Courtesy of pxhere

Daten für die Übungen

Sitzung 1: Schuldaten

Wie verwenden erneut den Datensatz Schulleistungen.rda. Sie können den Datensatz “Schulleistungen.rda” hier herunterladen. Liegt der Datensatz bspw. auf dem Desktop, so müssen wir den Dateipfad dorthin legen und können dann den Datensatz laden (wir gehen hier davon aus, dass Ihr PC “Musterfrau” heißt)

load("C:/Users/Musterfrau/Desktop/Schulleistungen.rda")

Genauso sind Sie in der Lage, den Datensatz direkt aus dem Internet zu laden. Hierzu brauchen Sie nur die URL und müssen R sagen, dass es sich bei dieser um eine URL handelt, indem Sie die Funktion url auf den Link anwenden. Der funktionierende Befehl sieht so aus (wobei die URL in Anführungszeichen geschrieben werden muss):

load(url("https://pandar.netlify.app/daten/Schulleistungen.rda"))

Sitzung 2: Nerdiness Daten

Für die Übung der Sitzung 1 zur Regression, wollen wir einen Datensatz verwenden, der die Nerdiness einer Person erfasst.

Die “Nerdy Personality Attributes Scale” (NPAS) wurde entwickelt, um die “Nerdiness” einer Person zu quantifizieren. Die Daten liegen öffentlich zugänglich auf der Open Psychometrics Website, wo Sie selbstverständlich die Möglichkeit haben, den Fragebogen selbst auszufüllen. Die Daten werden auf einer 5-Punkte Likert Skala erhoben von 1=Disagree, 3=Neutral und 5=Agree. Sie haben die Möglichkeit, den fertigen, gekürzten Datensatz, den Sie für die Aufgaben brauchen, direkt von der hier von der Website herunterladen. Die Raw-Data Files aller Fragebogen auf der Open Psychometrics Website sind hier einzusehen. Diese Files bestehen aus einem “.zip"-File, welches nach dem Entpacken jeweils aus einem “.csv"-File mit den Daten und einem “.txt"-File mit Beschreibungen besteht. Das “.zip"-File zum NPAS können Sie hier herunterladen. Nach dem Entpacken haben Sie einen Ordner mit dem Namen NPAS-data-16December2018, welcher die Dateien data.csv und codebook.txt enthält. Die Variablen zur Nerdiness sind

LabelItemwortlaut
Q1I am interested in science.
Q2I was in advanced classes.
Q3I like to play RPGs. (Ex. D&D)
Q4My appearance is not as important as my intelligence.
Q5I collect books.
Q6I prefer academic success to social success.
Q7I watch science related shows.
Q8I spend recreational time researching topics others might find dry or overly rigorous.
Q9I like science fiction.
Q10I would rather read a book than go to a party.
Q11I am more comfortable with my hobbies than
Q12I spend more time at the library than any other public place.
Q13I would describe my smarts as bookish.
Q14I like to read technology news reports.
Q15I have started writing a novel.
Q16I gravitate towards introspection.
Q17I am more comfortable interacting online than in person.
Q18I love to read challenging material.
Q19I have played a lot of video games.
Q20I was a very odd child.
Q21I sometimes prefer fictional people to real ones.
Q22I enjoy learning more than I need to.
Q23I get excited about my ideas and research.
Q24I am a strange person.
Q25I care about super heroes.
Q26I can be socially awkward at times.

Außerdem gibt es noch zahlreiche weitere Items in diesem Fragebogen. Für uns sind noch die Persönlichkeitseigenschaften, gemessen durch den Ten Item Personality Inventory (TIPI) von Gosling, Rentfrow und Swann (2003) sowie das Item “Nerdy” von Relevanz. Der TIPI sowie das zusätzliche “Nerdy”-Item wurden folgendermaßen auf einer 7-Punkt-Likert Skala beantwortet:

“I see myself as:” _____

LabelItemwortlautZuordnung
TIPI1Extraverted, enthusiastic.Extraversion
TIPI2Critical, quarrelsome.Agreeableness*
TIPI3Dependable, self-disciplined.Conscientiousness
TIPI4Anxious, easily upset.Neuroticism
TIPI5Open to new experiences, complex.Openness
TIPI6Reserved, quiet.Extraversion*
TIPI7Sympathetic, warm.Agreeableness
TIPI8Disorganized, careless.Conscientiousness*
TIPI9Calm, emotionally stable.Neuroticism*
TIPI10Conventional, uncreative.Openness*
nerdyNerdy.Nerdiness

Das Sternchen (*) gibt jeweils an, dass es sich um invers kodierte Items handelt. Nach Herunterladen und Abspeichern auf dem Desktop, können wir das “.csv”-File wie folgt einladen und als NerdData_long (wir wollen den Datensatz nämlich kürzen) abspeichern:

NerdData_long <- read.csv(file = "C:/Users/Musterfrau/Desktop/NPAS-data-16December2018/data.csv", header = T, sep = "\t")
# oder über das Working Directory
setwd("C:/Users/Musterfrau/Desktop/NPAS-data-16December2018/")
NerdData_long <- read.csv(file = "data.csv", header = T, sep = "\t")

Der Funktion read.csv müssen wir als Argument file die Datei inklusive Endung (und ggf. dem Dateipfad dort hin) übergeben. Zusätzlich spezifizieren wir hier header = T, womit wir sagen, dass die Spaltenüberschriften als Variablennamen verwendet werden sollen. Außerdem geben wir mit sep = "\t" an, dass Einträge durch Tabstopp getrennt sind (also durch den Tabulator/ mehrere Leerzeichen). Nun wollen wir den Datensatz als “.rda”-File abspeichern - allerdings nur die ersten 300 Personen in den Datensatz mit aufnehmen:

setwd("C:/Users/Musterfrau/Desktop/NPAS-data-16December2018/") # Working Directory setzen (hier hin wird dann der Datensatz gespeichert)
NerdData <- NerdData_long[1:300,] # Kürzen
save(list = c("NerdData"), file = "NerdData.rda")

Der Funktion save übergeben wir hier dem Argument list das Objekt (oder die Objekte, deswegen auch “Liste”), welche wir abspeichern wollen. file müssen wir den Namen des Objekts sowie die Endung übergeben. In unserem Ordner “NPAS-data-16December2018” sollte sich jetzt die Datei “NerdData.rda” befinden. Diese können Sie ganz einfach über die Website herunterladen und anschließend laden.

load("C:/Users/Musterfrau/Desktop/NerdData.rda")

oder direkt über die Website in R laden:

load(url("https://pandar.netlify.app/daten/NerdData.rda"))

Sie werden die Daten etwas aufbereiten müssen: bspw. müssen Skalen gebildet und Items reskaliert werden.

Tipps

Als Tipp zur Reskalierung, können Sie sich Folgendes überlegen: wenn sie 1:3 in R eingeben so erhalten Sie:

1:3
## [1] 1 2 3

also einen Vektor von 1 bis 3. Dies kann als die Ausprägungen eines 3-stufigen Likert-Items angesehen werden. Sie können nun diese Skala “umdrehen”, indem Sie mit -1 multiplizieren:

-1*(1:3)
## [1] -1 -2 -3

Nun sind allerdings nur noch negative Ausprägungen möglich. Wir können diese “umgedrehte” Skala wieder in die ursprüngliche transformieren, indem wir 4 addieren:

-1*(1:3) + 4
## [1] 3 2 1

Sie sehen, dass sich dadurch die Skala umdrehen lässt:

cbind(1:3, -1*(1:3) + 4)
##      [,1] [,2]
## [1,]    1    3
## [2,]    2    2
## [3,]    3    1

Wenden Sie dieses Wissen auf die jeweiligen Skalen an, die reskaliert werden müssen.

Weitere Tipps zum Auswählen von Variablen aus einem Datensatz und zum Verarbeiten der Daten sind, dass Sie aus einem Datensatz via [, c("NameV1", "NameV2")] einen Subdatensatz ziehen können (hier nur die Variablen mit den Namen NameV1 und NameV2). Bspw. können Sie den Schulleistungen-Datensatz herunterbrechen und nur noch die Matheleistung und die Leseleistung betrachten, indem Sie Folgendes tippen (wir nennen den resultierenden Datensatz mal Schulleistungen_short):

Schulleistungen_short <- Schulleistungen[, c("math", "reading")]
head(Schulleistungen_short)
##       math  reading
## 1 451.9832 449.5884
## 2 589.6540 544.8495
## 3 509.3267 331.3466
## 4 560.4300 531.5384
## 5 659.4524 604.3759
## 6 602.8577 308.7457

Außerdem lassen sich Skalenwerte als Mittel über die Items mit rowMeans bestimmen.

Als Beispiel hier eine (denn es gibt viele verschiedene!) Lösung zur Berechnung der Nerd-Skala sowie der Extraversion:

NerdData$Nerdiness <- rowMeans(NerdData[,1:26])
NerdData$Extraversion <- rowMeans(cbind(NerdData$TIPI1, -1*NerdData$TIPI6+8))

cbind bindet die beiden Vektoren (erstes und zweites Item der Extraversion, wobei das zweite rekodiert wurde) zu einer 2-Spaltenmatrix, auf welche anschließend rowMeans angewandt werden kann, um die Skalenwerte pro Person zu erhalten. Anschließend können Sie dann die entsprechenden wichtigen Skalen in einen neuen Datensatz schreiben (hier besteht dieser biespielhaft aus der Nerdiness und der Extraversion):

NerdData_relevant <- NerdData[, c("Nerdiness", "Extraversion")]

Sitzung 3: Students in Classes

Wir wollen uns erneut das fiktive Datenbeispiel (Datensatz StudentsInClasses aus dem gleichnamigen .rda File StudentsInClasses.rda) mit Schüler/innen (Ebene 1) in Schulklassen (Eben 2) anschauen. Sie können den Datensatz “StudentsInClasses.rda” hier herunterladen und diesen anschließend mit load laden (bspw. auf dem Desktop von Frau “Musterfrau”).

load("C:/Users/Musterfrau/Desktop/StudentsInClasses.rda")

Genauso können Sie die Daten direkt von der Website laden:

load(url("https://pandar.netlify.app/daten/StudentsInClasses.rda"))

Sitzung 4:

Wir wollen uns ein simuliertes Datenbeispiel zu Einstellungsentscheidungen in jungen Start-Ups ansehen (Datensatz Assessment aus dem gleichnamigen .rda File Assessment.rda). Sie können den Datensatz “Assessment.rda” hier herunterladen und diesen anschließend mit load laden (bspw. auf dem Desktop von Frau “Musterfrau”).

load("C:/Users/Musterfrau/Desktop/Assessment.rda")

Genauso können Sie die Daten direkt von der Website laden:

load(url("https://pandar.netlify.app/daten/Assessment.rda"))

Der Datensatz enthält folgende Variablen:

HiredAgeExpertiseParty
1475right
1585right
1475right
1536right
0515right
0464left
0463left
0495right
0554Elected
0445right

Hired gibt an, ob die jeweilige Person eingestellt wurde. Age ist das Alter in Jahren. Expertise ist die Expertise der jeweiligen Person als Selbsteinschätzung beantwortet auf einer 7-stufigen Likert-Skala. Party gibt die politische Orientierung der Person an. Diese Variable hat 3 Abstufungen:

levels(Assessment$Party)
## [1] "Elected" "left"    "right"

Hierbei steht Elected für die in diesem Landkreis gewählte Regierungspartei - somit hat die betrachtete Person die gleiche politische Orientierung wie der Landkreis, während right und left angibt, dass die Person etwas stärker rechts bzw. etwas stärker links orientiert ist als die regierende Partei.


Zusatz-Übungsdaten

Zusatz-Sitzung: PCA

Bis zum 25.11.2020 konnten Studierende des Masterkurses zu folgenden Weihnachtssongs einschätzen, wie gut diese Ihnen gefallen sowie Auskunft darüber geben, welche Aspekte der Weihnachtszeit ihnen besonders am Herzen liegen:

LabelBeschreibungFrage
Song1“Oh Tannenbaum”Wie gut gefallen Ihnen folgende X-Mas Songs?
Song2“Jingle Bells”Wie gut gefallen Ihnen folgende X-Mas Songs?
Song3“Santa Baby” von z.B. Eartha KittWie gut gefallen Ihnen folgende X-Mas Songs?
Song4“Feliz Navidad” von José FelicianoWie gut gefallen Ihnen folgende X-Mas Songs?
Song5“Holz - Weihnachtslied” von 257ersWie gut gefallen Ihnen folgende X-Mas Songs?
Song6“White Christmas” von Elvis PresleyWie gut gefallen Ihnen folgende X-Mas Songs?
Song7“Let it Go” von Idina Menzel (Frozen Soundtrack)Wie gut gefallen Ihnen folgende X-Mas Songs?
Song8“Rudolf the red nosed reindeer”Wie gut gefallen Ihnen folgende X-Mas Songs?
Song9Last Christmas” von Wham!Wie gut gefallen Ihnen folgende X-Mas Songs?
Song10“Oh Du Fröhliche”Wie gut gefallen Ihnen folgende X-Mas Songs?
Song11“Schneeflöckchen, Weißröckchen”Wie gut gefallen Ihnen folgende X-Mas Songs?
Song12“Christmas is all around” aus dem Film “Love Actually - Tatsächlich Liebe”Wie gut gefallen Ihnen folgende X-Mas Songs?
Song13“Driving home for Christmas” von Chris ReaWie gut gefallen Ihnen folgende X-Mas Songs?
Song14“Lass jetzt los (Let it Go)” von Helene Fischer (Die Eiskönigin – Völlig unverfroren Soundtrack)Wie gut gefallen Ihnen folgende X-Mas Songs?
Y1WeihnachtsfeiertageWie sehr mögen Sie Weihnachten bzw. die Weihnachtszeit mit allem was dazugehört?
Y2gesamte WeihnachtszeitWie sehr mögen Sie Weihnachten bzw. die Weihnachtszeit mit allem was dazugehört?
Y3WeihnachtsferienWie sehr mögen Sie Weihnachten bzw. die Weihnachtszeit mit allem was dazugehört?
Y4WinterzeitWie sehr mögen Sie Weihnachten bzw. die Weihnachtszeit mit allem was dazugehört?

Wir wollen untersuchen, ob es in diesen Daten Regelmäßigkeiten gibt.

Sie können den Datensatz “Xmas.rda” hier herunterladen und diesen anschließend mit load laden (bspw. auf dem Desktop von Frau “Musterfrau”).

load("C:/Users/Musterfrau/Desktop/Xmas.rda")

Genauso können Sie die Daten direkt von der Website laden:

load(url("https://pandar.netlify.app/daten/Xmas.rda"))

Zusatz-Sitzung: MANOVA

Wir wollen uns Mittelwertsunterschiede der Big-5 eines entsprechenden Fragebogens ansehen. Der Originaldatensatz ist ein Onlinedatensatz, wird seit 2012 erfasst und ist auf openpsychometrics.org als .zip downloadbar. Bisher haben über 19700 Proband*innen aus der ganzen Welt teilgenommen. Zu jeder der fünf Facetten gibt es 10 Fragen. Der Fragebogen ist hier einzusehen und durchführbar. Im Datensatz Big5.rda befindet sich eine gekürzte Version des Fragebogen. Der Itemwortlaut der Persönlichkeitseigenschaften ist:

LabelItemwortlaut
E1I am the life of the party.
E2*I don’t talk a lot.
E3I feel comfortable around people.
E4*I keep in the background.
E5I start conversations.
E6*I have little to say.
E7I talk to a lot of different people at parties.
E8*I don’t like to draw attention to myself.
E9I don’t mind being the center of attention.
E10*I am quiet around strangers.
N1I get stressed out easily.
N2*I am relaxed most of the time.
N3I worry about things.
N4*I seldom feel blue.
N5I am easily disturbed.
N6I get upset easily.
N7I change my mood a lot.
N8I have frequent mood swings.
N9I get irritated easily.
N10I often feel blue.
A1*I feel little concern for others.
A2I am interested in people.
A3*I insult people.
A4I sympathize with others’ feelings.
A5*I am not interested in other people’s problems.
A6I have a soft heart.
A7*I am not really interested in others.
A8I take time out for others.
A9I feel others’ emotions.
A10I make people feel at ease.
C1I am always prepared.
C2*I leave my belongings around.
C3I pay attention to details.
C4*I make a mess of things.
C5I get chores done right away.
C6*I often forget to put things back in their proper place.
C7I like order.
C8*I shirk my duties.
C9I follow a schedule.
C10I am exacting in my work.
O1I have a rich vocabulary.
O2*I have difficulty understanding abstract ideas.
O3I have a vivid imagination.
O4*I am not interested in abstract ideas.
O5I have excellent ideas.
O6*I do not have a good imagination.
O7I am quick to understand things.
O8I use difficult words.
O9I spend time reflecting on things.
O10I am full of ideas.

Hierbei steht E für Extraversion, N für Neurotizismus, A für Agreeableness (Verträglichkeit), C für Conscientiousness (Gewissenhaftigkeit) und O für Offenheit für Erfahrung. Sie müssen zur Vorbereitung auf die Übungen Items invertieren (inverse Items sind mit “*” gekennzeichnet) und jeweils Skalenmittelwerte (z.B. geschickt mit colMeans) für jede Persönlichkeitsfacette bestimmen (wir nehmen hier der Einfachheit halber an, dass die Items $\tau$-äquivalent sind und somit gleiche wahre Anteile der dahinterliegenden latenten Variable messen - dazu mehr im nächsten Semester - in kurz: Sie dürfen einfach Items mitteln, um Skalenwerte zu erhalten).

Sie können den gekürzten Datensatz “Big5.rda” hier herunterladen und diesen anschließend mit load laden (bspw. auf dem Desktop von Frau “Musterfrau”).

load("C:/Users/Musterfrau/Desktop/Big5.rda")

Genauso können Sie die Daten direkt von der Website laden:

load(url("https://pandar.netlify.app/daten/Big5.rda"))

Außerdem können Sie den Datensatz selbst wie folgt kürzen. Dazu müssen Sie nur das .zip-File herunterladen und das Working Directory entsprechend legen, sodass Sie die Daten einlesen können. Wir verwenden nur Daten aus Deutschland, Frankreich und den Vereinigten Arabischen Emiraten.

data_full <- read.table("BIG5/data.csv", header = T, sep = "\t") # nach entpacken des .zip liegen die Daten in einem Ordner namens Big5

### Entferne leere Zeilen und Zeilen mit Missings aus dem Datensatz
ind <- apply(data_full, 1, FUN = function(x) any(is.na(x))) # erzeuge eine Variable, welche TRUE ist, wenn mindestens ein Eintrag pro Zeile fehlt und ansonsten FALSE anzeigt
data_full <- data_full[!ind, ] # Wähle nur diejenigen Zeilen, in denen unsere Indikatorvariable "ind" NICHT TRUE anzeigt, also wo alle Einträge vorhanden sind
# !ind (Ausrufezeichen vor ind) negiert die Einträge in ind (Prüfe bspw. !FALSE == TRUE, nicht false ist gleich true)

### Shorten Data Set
Big5 <- data_full[data_full$country %in% c("DE", "FR", "AE") , ]
# Verwende nur Daten aus den Ländern: Deutschland (DE), Frankreich (FR) und den Vereinigten Arabischen Emiraten (AE)
Big5 <- Big5[Big5$gender %in% c(1,2),] # verwende nur ausgefüllte Fälle
Big5$gender <- as.factor(Big5$gender)
Big5$country <- as.factor(Big5$country)
Big5 <- data.frame(Big5) # Schreibe Datensatz als data.frame
save(list = c("Big5"), file = "Big5.rda")
# Speichere gekürzten Datensatz in .rda file (dem R-internen Datenformat)
##  Das ist auch der Datensatz, den wir weiter verwendet haben!

Das Geschlecht hat nach der Datensatzkürzung nur zwei Ausprägungen: 1 = Männern und 2 = Frauen.

Julien P. Irmer
Julien P. Irmer
Teammitglied