Die folgende Frage bezieht sich auf dieses Ergebnis einer Regressionsanalyse:
Call:
lm(formula = y ~ x, data = d)
Residuals:
Min 1Q Median 3Q Max
-1.06052 -0.31526 -0.02412 0.28884 1.05826
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.08282 0.04901 -1.69 0.0947 .
x 0.66228 0.04540 14.59 <2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.4559 on 85 degrees of freedom
Multiple R-squared: 0.7146, Adjusted R-squared: 0.7112
F-statistic: 212.8 on 1 and 85 DF, p-value: < 2.2e-16
Welche der folgenden Aussagen ist korrekt?
Answerlist
Wenn x=2, dann ist ein Mittelwert von y in Höhe von ca. 1.24 zu erwarten.
Der Mittelwert der abhängigen Variaben y sinkt mit zunehmenden x.
Wenn x um 1 Einheit steigt, dann kann eine Veränderung um etwa -0.08 Einheiten in y erwartet werden.
Wenn x=1, dann ist ein Mittelwert von y in Höhe von ca. -0.08 zu erwarten.
Das (nicht-adjustierte) \(R^2\) liegt im Modell bei 0.66.
Lösung
Answerlist
Wahr
Falsch
Falsch
Falsch
Falsch
Categories:
regression
R
lm
schoice
Source Code
---extype: schoiceexname: regression1aexsolution: r mchoice2string(questions_sample$is_correct, single = TRUE)exshuffle: noexpoints: 1categories:- regression- R- lm- schoicedate: '2023-05-08'slug: regression1btitle: regression1b---<!-- This question is based on `essayreg.Rmd`, provided by the r-exams team. --><!-- In this variant of the exercise, no log-log-regression is featured. -->```{r include = FALSE, message=FALSE}library(glue)library(tidyverse)library(testthat)library(mosaic)library(exams)``````{r data generation, echo = FALSE, results = "hide"}## regression parametersn <- sample(40:90, 1)b <- sample(c(-1, 1), 1) * runif(1, 1, 2) * sample(c(0.1, 0.5, 1), 1)s <- sample(c(0.5, 1, 2), 1)## data and regressiond <- data.frame( x = rnorm(n), err = rnorm(n, sd = s))d$y <- 0 + b * d$x + d$err## different typestype_set <- c("lineare", "y-logarithmisierte", "y-logarithmisierte")# type <- sample(type_set, 1)type <- "lineare"type_wrong <- sample(setdiff(type_set, type), 1)expect(type != type_wrong, failure_message = "Correct and incorrect answer to type of regression must differ!")if(type == "lineare") { m <- lm(y ~ x, data = d) # regression model xunit <- "Einheit" yunit <- "Einheiten" eff <- round(coef(m)[2], digits = 2) eff_wrong <- round(coef(m)[1], digits = 2) # wrong!} else if(type == "y-logarithmisierte") { d$y <- exp(d$y) m <- lm(log(y) ~ x, data = d) # regression model xunit <- "Einheit" yunit <- "Prozent" eff <- round(100 * exp(coef(m)[2]) - 100, digits = 2) eff_wrong <- round(100 * exp(coef(m)[1]) - 100, digits = 2) # wrong!}## summariesdirect <- if(coef(m)[2] > 0) "steigt" else "sinkt"direct_wrong <- if(coef(m)[2] < 0) "steigt" else "sinkt" # wrong!if(summary(m)$coefficients[2, 4] < 0.05) { sign1 <- "Auch" sign2 <- ""} else { sign1 <- "Aber" sign2 <- "_nicht_"}y_at_x1 <- round(predict(m, newdata = data.frame(x = 1)), 2)y_at_x1_wrong <- round(predict(m, newdata = data.frame(x = 0)), 2)y_at_x2 <- round(predict(m, newdata = data.frame(x = 2)), 2)y_at_x2_wrong <- round(predict(m, newdata = data.frame(x = 1)), 2)y_at_x0 <- round(predict(m, newdata = data.frame(x = 0)), 2) # intercepty_at_x0_wrong <- round(predict(m, newdata = data.frame(x = 1)) , 2) # interceptr2 <- round(rsquared(m), 2)``````{r item-generation, echo = FALSE, results = "hide"}# first one is CORRECT, second is FALSEtype_regression_items <- c(glue("Es handelt sich um eine {type} Regression."), glue("Es handelt sich um eine {type_wrong} Regression."))effect_direction_items <- c(glue("Der Mittelwert der abhängigen Variaben `y` {direct} mit zunehmenden `x`."), glue("Der Mittelwert der abhängigen Variaben `y` {direct_wrong} mit zunehmenden `x`."))effect_items <- c(glue("Wenn `x` um 1 {xunit} steigt, dann kann eine Veränderung um etwa {eff} {yunit} in `y` erwartet werden."), glue("Wenn `x` um 1 {xunit} steigt, dann kann eine Veränderung um etwa {eff_wrong} {yunit} in `y` erwartet werden."))y_at_x0_items <- c(glue("Wenn `x=0`, dann ist ein Mittelwert von `y` in Höhe von etwa {y_at_x0} zu erwarten."), glue("Wenn `x=0`, dann ist ein Mittelwert von `y` in Höhe von etwa {y_at_x0_wrong} zu erwarten."))y_at_x1_items <- c(glue("Wenn `x=1`, dann ist ein Mittelwert von `y` in Höhe von ca. {y_at_x1} zu erwarten."), glue("Wenn `x=1`, dann ist ein Mittelwert von `y` in Höhe von ca. {y_at_x1_wrong} zu erwarten."))y_at_x2_items <- c(glue("Wenn `x=2`, dann ist ein Mittelwert von `y` in Höhe von ca. {y_at_x2} zu erwarten."), glue("Wenn `x=2`, dann ist ein Mittelwert von `y` in Höhe von ca. {y_at_x2_wrong} zu erwarten."))r2_items <- c(glue("Das (nicht-adjustierte) $R^2$ liegt im Modell bei {r2}."), glue("Das (nicht-adjustierte) $R^2$ liegt im Modell bei {eff}."))questions <- bind_cols(#data.frame(type_regression_items), data.frame(effect_direction_items), data.frame(effect_items), data.frame(y_at_x0_items), data.frame(y_at_x1_items), data.frame(y_at_x2_items), data.frame(r2_items) ) %>% mutate(is_correct = c(TRUE, FALSE))questions_long <- questions %>% pivot_longer(-c(is_correct), names_to = "question_content", values_to = "item")# Draw 1 correct and 4 incorrect questions (items):to_be_presented_as_correct <- sample(questions_long$question_content, 1)to_be_presented_as_INcorrect <- setdiff(questions_long$question_content, to_be_presented_as_correct) %>% sample(size = 4)questions_sample <- questions_long %>% filter((is_correct == TRUE & question_content == to_be_presented_as_correct) | (is_correct == FALSE & question_content %in% to_be_presented_as_INcorrect))```# AufgabeDie folgende Frage bezieht sich auf dieses Ergebnis einer Regressionsanalyse:```{r lm output, echo = FALSE, comment = NA}summary(m)```Welche der folgenden Aussagen ist korrekt?```{r questionlist, echo = FALSE, results = "asis"}answerlist(questions_sample$item, markup = "markdown")```</br></br></br></br></br></br></br></br></br></br># Lösung```{r solutionlist, echo = FALSE, results = "asis"}answerlist(ifelse(questions_sample$is_correct, "Wahr", "Falsch"), markup = "markdown")```---Categories: - regression- R- lm- schoice