--- title: "Einfache lineare Regression" author: "Übungsaufgabe zu Design, Analyse, Dokumentation SoSe 2023" bibliography: referenzen.bib lang: de format: pdf: include-in-header: text: | \usepackage[font=small,format=plain,labelfont=bf, labelsep=period,justification=justified,singlelinecheck=false]{caption} --- Grundlage dieser Übung ist die Studie von @stiles1994. Ziel ist es, die Prinzipien der Ausgleichsgerade und der einfache linearen Regression zu nutzen, um für einzelen Patient:innen zu quantifizieren, inwieweit sich ihr Gesundheitszustand im Rahmen iner Psychotherapie verändert hat. Zum Zwecke dieser Übung fokussieren wir dabei auf die Patient:innegrupe der Kognitiven Verhaltenstherapie Bedingung ($n = 21$) und den *Beck Depression Inventory (BDI)* Wert als primäres Ergebnismaß (*primary outcome measure*) der Studie von @stiles1994. ## Datensatz {-} Der Datensatz `1-Einfache-lineare-Regression.csv` enthält als Spalten simulierte BDI Scores zu den Erhebungszeitpunkten *Intake* (Beginn der Therapie), *Midtherapy* (Mitte der Therapie), *Termination* (Ende der Therapie) von $n = 21$ Patient:innen als Zeilen. @tbl-bdi zeigt exemplarisch die Daten der ersten zehn Patient:innen. ```{r, echo = F, warning = F} # Datensatzsimulation library(MASS) # Normalverteilungen set.seed(0) # Ergebnisreproduzierbarkeit np = 21 # Anzahl Patient:innen n = 3 # Anzahl Datenpunkte pro Patient:in p = 2 # Anzahl Regressionskoeffizienten beta_b = matrix(c(35,-3.7) , nrow = 2) # Between-Participants Betaparameter Sigma_b = matrix(c(3,0,0,4.2), nrow = 2) # Between-Participants Kovarianzmatrix x_w = seq(1,n,len = n) # Within-Participants Kontrollvariable X_w = matrix(c(rep(1,n), x_w), ncol = 2) # Within-Participants Designmatrix sigsqr_w = 1 # Within-Participants Varianzparameter Sigma_w = sigsqr_w*diag(n) # Within-Participants Kovarianzmatrixparameter Y = matrix(rep(NaN, np*n), nrow = np) # Gesamtdatensatzinitialisierung for(i in 1:np){ # Iteration über Patient:innen beta = as.matrix(mvrnorm(1,beta_b,Sigma_b)) # Patient:in-spezifische Regressionsparameter mu = X_w %*% beta # Patient:in-spezifische Regressionserwartungswertparameter Y[i,] = t(as.matrix(mvrnorm(1,mu,Sigma_w))) # Patient:in-spezifische Datenwerte } D = data.frame(Intake = Y[,1], # BDI Scores zu Therapiebeginng Midtherapy = Y[,2], # BDI Scores zu Therapiemitte Termination = Y[,3]) # BDI Scores zu Therapieende fname = file.path("1-Einfache-Lineare-Regression.csv") # Dateiname write.csv(D, file = fname, row.names = FALSE) # Speichern ``` ```{r, echo = F, warning = F} #| label: tbl-bdi #| tbl-cap : "BDI Scores" library(knitr) # knitr für Tabellen fname = "1-Einfache-Lineare-Regression.csv" # Dateiname D = read.table(file.path(fname), sep = ",", header = TRUE) # Laden des Datensatzes kable(head(D, n = 10L), digits = 2, align = "c") # Markdowntabellenoutput für head(D) ``` \newpage ## Programmieraufgaben {-} \noindent 1. Bestimmen Sie für jede:n Patient:in die Ausgleichsgeradenparameter basierend auf den drei patient:innenspezifischen BDI Scores *Intake*, *Midtherapy*, *Termination*. Nutzen Sie dazu beispielsweise eine `for` Schleife. Sollten Sie mit `for` Schleifen in **R** noch nicht vertraut sein, konsultieren Sie dazu bitte zum Beispiel die entsprechenden Abschnitte in den [Vorlesungsfolien](https://bit.ly/3Ke43Vy) bzw. dem [Vorlesungsvideo](https://youtu.be/xZlPlux54_g) zu diesem Thema aus dem Sommersemester 2021. Berechnen Sie das Stichprobenmittel und die Stichprobenstandardabweichung der Steigungsparameter. Sie sollten folgende Ergebnisse erhalten: ```{r, eval = T, echo = F} # Datenanalyse fname = "1-Einfache-Lineare-Regression.csv" # Dateiname D = read.table(file.path(fname), sep = ",", header = TRUE) # Laden des Datensatzes np = nrow(D) # Anzahl Patient:innen n = 3 # Datenpunkte pro Patient:in x = 1:n # Regressionsprädiktorwerte X = matrix(c(rep(1,n),x), nrow = n) # Designmatrix beta_hat_p = matrix(rep(NaN,np*2), nrow = 2) # Patient:innensteigungsparameter sp = rep(NaN,np) # Steigungsparameter for(i in 1:np){ # Iteration über Patient:innen beta_hat_p[,i] = solve(t(X)%*%X)%*%t(X)%*%t(D[i,])} # Ausgleichsgeradenparameterevaluation cat(" Mittelwert der Steigungsparameter :", mean(beta_hat_p[2,]), "\n Standardabweichung der Steigungsparameter :", sd(beta_hat_p[2,])) ``` \noindent 2. Visualisieren Sie die Daten und Ausgleichsgeraden der ersten vier Patient:innen in einer Abbildung. Die Abbildung sollte in etwa aussehen wie @fig-abbildung. ```{r echo = F, eval = F} # Datenanalysevisualisierung pdf( file = file.path("1-Einfache-Lineare-Regression-Abbildung.pdf"), width = 8, height = 8) library(latex2exp) par( family = "sans", mfcol = c(2,2), pty = "s", bty = "l", lwd = 1, las = 1, mgp = c(2,1,0), xaxs = "i", yaxs = "i", font.main = 1, cex = 1, cex.main = 1) # Patient:inneniterationen for(i in 1:4){ # Datenwerte plot( 1:3, D[i,], pch = 16, xlab = "Therapieverlauf", ylab = "BDI", xlim = c(.5,3.5), ylim = c(min(D)-2,max(D)+2), cex = 1.2, xaxt = "n", main = TeX(sprintf("Patient:in %.0f, Steigunsparameter = $ %.1f", i, beta_hat_p[2,i]))) axis(side = 1, at = c(1, 2, 3), labels = c("Int", "Mid", "Ter")) # Ausgleichsgerade abline( coef = c(beta_hat_p[1,i], beta_hat_p[2,i]), lty = 1, col = "gray") # Legende if(i == 1){ legend( "bottomleft", c("Messwerte", "Ausgleichsgerade"), lty = c(0,1), pch = c(16, NA), col = c("black", "gray"), bty = "n") } } dev.off() ``` ![Patient:innen-spezifische Ausgleichsgeraden (Int: Intake, Mid: Midtherapy, Ter: Termination)](1-Einfache-Lineare-Regression-Abbildung.pdf){#fig-abbildung fig-align="center" width=70%} \newpage ## Dokumentation Bitte beachten Sie bei der Erstellung Ihre Dokumentation folgende Vorgaben und orientieren Sie sich in der Darstellung Ihrer datenanalytischer Ergebnisse an den Empfehlungen des [APA Publication Manuals 7th Edition](https://apastyle.apa.org/products/publication-manual-7th-edition), insbesondere Kapitel 6. ### Einleitung {-} Stellen Sie die Ausgangsfrage von @stiles1994 dar und erläutern Sie die *Medikamentenmetapher (drug metaphor)*. Erläutern Sie weiterhin Sinn und Zweck des *Verbal Response Mode (VRM)* Kodiersystems. Konsultieren Sie dazu auch @stiles1986. ### Methoden {-} Erläutern Sie kurz die Idee der *Kognitiven Verhaltenstherapie (Cognitive Behavioral Therapy)* bei Depression sowie die Bestimmung des Depressionszustandes mithilfe des *Beck Depression Inventory*; konsultieren Sie dazu auch @beck1961. Beschreiben Sie die Patient:innen- und Therapeut:innengruppen. Beschreiben Sie, zu welchen Zeitpunkten über den Therapieverlauf die BDI Werte der Patient:innen erhoben wurden. Erläutern Sie Sinn und Zweck der Steigungsparameterbestimmung. Dokumentieren Sie ihre Datenanalyse in Form kommentierten **R** Codes zur Lösung von Programmieraufgabe 1. ### Resultate {-} Geben Sie den Mittelwert und die Standardabweichung der Steigungsparameter an und erläutern Sie ihre Bedeutung. Diskutieren Sie Ihre Resultate am Beispiel der Abbildungen der Ausgleichsgeraden der ersten vier Patient:innen aus Programmieraufgabe 2. ### Schlussfolgerung {-} Fassen Sie die von Ihnen erstellte Dokumentation in drei Sätzen zusammen. ## Referenzen \footnotesize