Datei > Neue Datei > R Markdown...
eine neue R Markdown Datei erstellen. Den Text unter dem Setup Chunk (ab Zeile 11) können Sie löschen. Unter diesem Link können Sie auch unsere Vorlage-Datei herunterladen.Da es sich um eine praktische Übung handelt, können wir Ihnen nicht alle neuen Befehle einzeln vorstellen. Stattdessen finden Sie hier Verweise auf sinnvolle Ressourcen, in denen Sie für die Bearbeitung unserer Aufgaben nachschlagen können.
Ressource | Beschreibung |
---|---|
Field, Kapitel 7 | Buchkapitel, das Schritt für Schritt erklärt, worum es geht, und wie man Regressionen in R durchführt. Große Empfehlung! |
Diese Woche gibt es zwei Tipps:
Mit der Tastenkombination strg
+ shift
+ c
(Windows), bzw. cmd
+ shift
+ c
(Mac) wird der gerade markierte Code auskommentiert. So können Sie beliebig viele Code-Zeilen innerhalb eines Chunks auf einmal auskommentieren.
Ihnen ist vielleicht aufgefallen, dass R automatisch zwei Anführungzeichen einfügt, wenn man "
drückt. Das ist oft praktisch, nervt aber, wenn man ein Wort, das schon im Code steht, in Anführungszeichen setzen will. Dann führt es häufig dazu, dass der Code so aussieht: "Text""
. Dafür gibt es einen Trick:
"
. Das Wort wird automatisch in Anführungszeichen gesetzt.Das gleiche funktioniert auch mit allen Arten von Klammern!
tidyverse
und fügen Sie eine entsprechende Code-Zeile an den Anfang ihrs .Rmd-Dokuments ein.child_aggression.csv
mit dem Befehl read_csv()
direkt aus der URL http://md.psych.bio.uni-goettingen.de/mv/data/div/child_aggression.csv
in R ein.write_csv()
, um den Datensatz in Ihrem Arbeitsverzeichnis in Ihrem Ordner für Daten abzuspeichern.Hier zunächst einmal eine Übersicht über die Variablen im Datensatz. Der Datensatz enthält Daten von 666 Kindern.
Variable | Bedeutung |
---|---|
aggression | Je höher, desto mehr Aggression zeigt das Kind. |
television | Je höher, desto mehr Zeit verbirngt das Kind vor dem Fernseher. |
computer_games | Je höher, desto mehr Zeit verbringt das Kind mit Computerspielen. |
sibling_aggression | Je höher, desto mehr Aggression zeigt der/die ältere Bruder/Schwester. |
diet | Je höher, desto gesünder ist die Ernährung des Kindes. |
parenting_style | Je höher, desto dysfunktionaler ist der Erziehungsstil der Eltern. |
Aufgrund vorheriger Forschung haben Sie die Hypothesen, dass der Erziehungsstil und die Aggresionswerte der Geschwister gute Prädiktoren für das Aggressionslevel von Kindern sind.
1
und die Geschwisteraggression den Wert 0.5
hat.lm.beta
und laden Sie es anschließend. Fügen Sie eine Code-Zeile zum Laden des Pakets an den Anfang ihrer .Rmd-Datei ein.lm.beta()
auf Ihr Regressionsmodell aus 1. an.1
?Der Datensatz enthält noch weitere Daten, die potentiell als Prädiktoren interessant sein könnten. Wir haben bei diesen Prädiktoren noch keine Hypothesen darüber, welchen Effekt sie haben, und möchten erst einmal schauen, ob wir ein Muster finden können.
anova()
, um einen \(R^2\)-Differenzentest zum Vergleich der beiden Modelle durchzuführen.anova()
. Was können Sie daraus schließen?summary()
anzeigen. Welche Prädiktoren tragen signifikant zur Varianzaufklärung bei?vif()
aus dem Paket car
auf das Regressionsmodell an, um die Prädiktoren des Modells auf Multikollinearität zu überprüfen, indem Sie sich den Variance Inflation Factor für jeden Prädiktor ausgeben lassen. Besteht Anlass zur Sorge? (Hinweis: Vergessen Sie nicht, das Paket ggf. zu installieren und zu laden.)plot()
, um sich die vier bekannten diagnostischen Plots zu Ihrem Regressionsmodell anzeigen zu lassen. Besteht Anlass zur Sorge?Der Zusammenhang zwischen Wassertemperatur und Genuss beim Duschen soll untersucht werden. Die Rohdaten finden Sie hier: http://md.psych.bio.uni-goettingen.de/mv/data/div/dusch_data.csv Sie sind ChefIn der Forschungsabteilung, und Ihre MitarbeiterInnen legen Ihnen die folgende Auswertung vor:
temp_model <- lm(genuss ~ temperatur)
summary(temp_model)
##
## Call:
## lm(formula = genuss ~ temperatur)
##
## Residuals:
## Min 1Q Median 3Q Max
## -143.811 -7.291 7.326 19.296 45.700
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -4.7374 2.4260 -1.953 0.0523 .
## temperatur 5.7487 0.6235 9.220 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 28.85 on 198 degrees of freedom
## Multiple R-squared: 0.3004, Adjusted R-squared: 0.2968
## F-statistic: 85 on 1 and 198 DF, p-value: < 2.2e-16
Kommentar der Mitarbeiter:
Die Analyse ergibt eindeutig, dass der Genuss beim Duschen linear mit der Wassertemperatur ansteigt. Wir haben eine Varianzaufklärung von 30%, das Modell passt hochsignifikant auf die Daten mit \(R^2\) = .30, F(1, 198) = 91.26 und p < .001 und der Regressionskoeffizient für Temperatur ist hochsignifikant mit t(198) = 5.98; p < .001. Wir schlagen eine Pressemitteilung vor, in der wir den Menschen empfehlen, immer so heiß wie irgend möglich zu duschen, um Ihren Genuss zu maximieren.
Sie sind interessiert, denn die Ergebnisse überraschen Sie. Zur Sicherheit fordern Sie diagnostische Plots an:
par(mfrow = c(2,2)) # Diese Zeile sorgt für die kompakte Darstellung
plot(temp_model)
Anmerkung: Diese Übungszettel basieren zum Teil auf Aufgaben aus dem Lehrbuch Dicovering Statistics Using R (Field, Miles & Field, 2012). Sie wurden für den Zweck dieser Übung modifiziert, und der verwendete R-Code wurde aktualisiert.
Field, A., Miles, J., & Field, Z. (2012). Discovering Statistics Using R. London: SAGE Publications Ltd.
Please give your answers in a .Rmd file. You may generate one from scratch using the file menu: ‘File > new file > R Markdown …’ Delete the text below Setup Chunk (starting from line 11). Alternatively you may use this sample Rmd by donloading it.
You may find the informations useful that you can find on the start page of this course.
Don’t hesitate to google for solutions. Effective web searches to find solutions for R-problems is a very useful ability, professionals to that too … A really good starting point might be the R area of the programmers platform Stackoverflow
You can find very useful cheat sheets for various R-related topics. A good starting point is the Base R Cheat Sheet.
This is a hands on course. We cannot present you all the useful commands in detail. Instead we give you links to useful ressources, where you might find hints to help you with the exercises.
Ressource | Description |
---|---|
Field, Chapter 7 | Book chapter with a step for step introduction to regression, what that is all about and, how to do it in R. Recommendation! |
Peters Multiple Regression Pages | Peters unit on multiple regression. A resource to find running examples. |
This week, we have two tips:
The shortcut strg
+ shift
+ c
(Windows) or. cmd
+ shift
+ c
(Mac) comments out the currently marked code lines. That way you can comment out several lines at a time inside a chunk.
You may have noticed already, that R inserts automatically two quote charaters if we press "
. This is sometimes cool, but sometimes not, f. e. if we want to quote a word already in the source code. We find us frequently in a situation, where we have too much quote characters, like: "Text""
. But there is a trick:
"
. The word will be correctly quoted automatically.The same works for all types of brackets!
tidyverse
are loaded. Insert a code line for that in the beginning of your Rmd-file.child_aggression.csv
directly from URL http://md.psych.bio.uni-goettingen.de/mv/data/div/child_aggression.csv
using the command read_csv()
.write_csv()
to store this datafile in your current working directory in your subdirectory for data.An overview of the variables in the data that were collected from 666 children.
Variable | Meaning |
---|---|
aggression | The higher the value, the more aggression is shown by the child. |
television | The higher the value, the more time the child spents in front of the TV. |
computer_games | Higher values indicate more time spnt playing computer games. |
sibling_aggression | Higher values indicate higher aggression shown by older siblings. |
diet | High values indicate more salutable nutrition of the child. |
parenting_style | Higher values indicate more dysfunctional education style of the parents. |
Based on previous research you have the hypothesis, that educational style and aggressivity values of the siblings are good predictors for the aggression level of children.
1
and siblings aggression of 0.5
.lm.beta()
if it isn’t installed already. Insert a code line in your .Rmd that assures, that lm.beta()
is loaded.lm.beta
to the regression model from exercise 1.We have more variables in our dataset that could serve as predictors. But we don’t have any hypotheses about theyr effect on the outcome. So we only want to see, if we can detect some hint of an influence.
anova()
to do a \(R^2\) difference test to compare the two models.anova()
. What can we conclude?summary()
of the better model of exercise 3. Which predictors contribute significantly to the explanation of variance in the outcome?vif()
of package car
to check multicollinearity of the predictors of our model. Inspect the Variance Inflation Factor for each predictor. Should we be preoccupied about vif? (Hint: Don’t forget to eventually install or load the package).plot()
to get the well known diagnostic plots for our regression model. Any hint for problems?Read chapter 7.6.4 (Methods of regression) in Discovering Statistics Using R (Field, Miles & Field, 2012).
What is the regression method we used in exercise 3?
Imagine we want to find out the relation between water temperature and enjoyment while taking a shower. You can find the raw data at: https://http://md.psych.bio.uni-goettingen.de/mv/data/div/dusch_data.csv You are chief of the research department and your employees bring you the following calculation:
temp_model <- lm(enjoyment ~ temperature)
summary(temp_model)
##
## Call:
## lm(formula = enjoyment ~ temperature)
##
## Residuals:
## Min 1Q Median 3Q Max
## -143.811 -7.291 7.326 19.296 45.700
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -4.7374 2.4260 -1.953 0.0523 .
## temperature 5.7487 0.6235 9.220 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 28.85 on 198 degrees of freedom
## Multiple R-squared: 0.3004, Adjusted R-squared: 0.2968
## F-statistic: 85 on 1 and 198 DF, p-value: < 2.2e-16
Comment of an employee:
The results of the analysis show clear evidence, that enjoyment has a linear relation to water temperature. The model can explain 30% of the variance of enjoyment and the model fits the data highly significant with \(R^2\) = .30, F(1, 198) = 91.26 und p < .001 and the regression coefficient is also highly significabt with t(198) = 5.98; p < .001. We propose a press anouncement in which we recommend people to take a shower as hot as possible to maximize their enjoyment.
You are interested, because the results are surprising for you. To get more into detail, you ask for the diagnostic plots.
par(mfrow = c(2,2)) # This line results in a compacter presentation
plot(temp_model)
Annotation: This exercise sheet bases in part on exercises, that you can find in the textbook Dicovering Statistics Using R (Field, Miles & Field, 2012). They were modified for the purpose of this sheet and the R-code was actualized.
Field, A., Miles, J., & Field, Z. (2012). Discovering Statistics Using R. London: SAGE Publications Ltd.