Die folgende Frage bezieht sich auf dieses Ergebnis einer Regressionsanalyse:
Call:
lm(formula = y ~ x, data = d)
Residuals:
Min 1Q Median 3Q Max
-1.95512 -0.66937 0.04638 0.57000 2.47071
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.08826 0.13368 -0.660 0.512
x -0.22014 0.13605 -1.618 0.112
Residual standard error: 0.9621 on 51 degrees of freedom
Multiple R-squared: 0.04883, Adjusted R-squared: 0.03018
F-statistic: 2.618 on 1 and 51 DF, p-value: 0.1118
Zusammengefasst sind die Koeffizienten (beta0 und beta1) also:
coef(m)
(Intercept) x
-0.08826225 -0.22013983
Welche der folgenden Aussagen ist korrekt?
Answerlist
Wenn x um 1 Einheit steigt, dann kann eine Veränderung um etwa -0.22 Einheiten in y erwartet werden.
Wenn x=0, dann ist ein Mittelwert von y in Höhe von etwa -0.31 zu erwarten.
Wenn x=1, dann ist ein Mittelwert von y in Höhe von ca. -0.09 zu erwarten.
Wenn x=2, dann ist ein Mittelwert von y in Höhe von ca. -0.31 zu erwarten.
Das (nicht-adjustierte) \(R^2\) liegt im Modell bei -0.22.
Lösung
Answerlist
Wahr
Falsch
Falsch
Falsch
Falsch
Categories:
regression
R
lm
schoice
Source Code
---extype: schoiceexname: regression1bexsolution: 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!} elseif(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)```Zusammengefasst sind die Koeffizienten (beta0 und beta1) also:```{r ech0=FALSE}coef(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