Im Hinblick auf die lineare Regression: Welche der folgenden Aussage passt am besten?
Welche Aussage zur multiplen Regression ist korrekt?
Keine der genannten. In der multiplen Regression sind jegliche Skalenniveaus bei den Prädiktoren möglich. “Hinter den Kulissen” werden aber nominale Prädiktoren in metrische umgewandelt.
Wir betrachten einen Datensatz, der Kredite analysiert. Hier ist ein Auszug:
library(openintro)
data("loans_full_schema")
Rows: 1,292
Columns: 10
$ emp_title <chr> "security supervisor "…
$ emp_length <dbl> 10, 10, 1, 9, 10, 10, …
$ state <fct> CA, MI, NV, AR, NJ, GA…
$ homeownership <fct> RENT, MORTGAGE, MORTGA…
$ annual_income <dbl> 35000, 35000, 42000, 5…
$ verified_income <fct> Verified, Source Verif…
$ debt_to_income <dbl> 57.96, 23.66, 32.00, 3…
$ annual_income_joint <dbl> 57000, 155000, 95000, …
$ verification_income_joint <fct> Verified, Not Verified…
$ debt_to_income_joint <dbl> 37.66, 13.12, 16.12, 2…
Eine Analystin möchte den Zinssatz (interest_rate
) auf
Basis dieses Datensatzes vorhersagen.
Welche der oben gezeigten Variablen muss in der Regression nicht in Indikatorvariablen umgewandelt werden?
emp_title
state
annual_income
verified_income
verification_income_joint
annual_income
muss nicht in eine Indikatorvariable
umgewandelt werden, da es eine numerische Variable ist.
Wir betrachten einen Datensatz, der Kredite analysiert:
library(openintro)
data("loans_full_schema")
Eine Analystin möchte den Zinssatz (interest_rate
) auf
Basis dieses Datensatzes vorhersagen.
Welche der Variablen vom Typ factor
im Datensatz hat
genau zwei Stufen (d.h. verschiedene Werte)?
state
homeownership
loan_purpose
application_type
loan_status
application_type
Hier ist eine Auflistung der Anzahl der Stufen aller Faktor-Variablen des Datensatzes:
## $state
## [1] 50
##
## $homeownership
## [1] 3
##
## $verified_income
## [1] 3
##
## $verification_income_joint
## [1] 4
##
## $loan_purpose
## [1] 12
##
## $application_type
## [1] 2
##
## $grade
## [1] 7
##
## $sub_grade
## [1] 32
##
## $issue_month
## [1] 3
##
## $loan_status
## [1] 6
##
## $initial_listing_status
## [1] 2
##
## $disbursement_method
## [1] 2
Wir betrachten einen Datensatz, der Kredite analysiert:
library(openintro)
data("loans_full_schema")
Eine Analystin möchte den Zinssatz (interest_rate
) auf
Basis dieses Datensatzes vorhersagen.
Sie berechnet folgendes Regressionsmodell:
Hier steht
für interest_rate
,
für annual_income
und
für application_type
.
Wie lautet der R-Befehl, um diese Regression zu berechnen?
lm(interest_rate ~ annual_income + application_type)
lm(interest_rate ~ annual_income + application_type, data = loans_full_schema)
lm(R ~ I + T, data = loans_full_schema)
lm(interest_rate ~ beta0 + beta1 * annual_income + beta2* application_type, data = loans_full_schema)
lm(interest_rate ~ beta0 + beta1 * I + beta2* T, data = loans_full_schema)
Der korrekte R-Befehl lautet:
lm(interest_rate ~ annual_income + application_type, data = loans_full_schema)
Wir betrachten einen Datensatz, der Kredite analysiert:
library(openintro)
data("loans_full_schema")
Hier ist ein Überblick über den Datensatz:
## tibble [10,000 × 3] (S3: tbl_df/tbl/data.frame)
## $ interest_rate : num [1:10000] 14.07 12.61 17.09 6.72 14.07 ...
## $ annual_income : num [1:10000] 90000 40000 40000 30000 35000 34000 35000 110000 65000 30000 ...
## $ application_type: Factor w/ 2 levels "individual","joint": 1 1 1 1 2 1 2 1 1 1 ...
Eine Analystin möchte den Zinssatz (interest_rate
) auf
Basis dieses Datensatzes vorhersagen.
Sie berechnet folgendes Regressionsmodell:
lm1 <- lm(interest_rate ~ annual_income + application_type, data = loans_full_schema)
Folgende Ergebnisse bekommt Sie zurück geliefert:
term | estimate | std_error |
---|---|---|
intercept | 12.90 | 0.083 |
annual_income | 0.00 | 0.000 |
application_type: joint | 0.71 | 0.140 |
Welche Aussage ist korrekt?
Estimate
liefert eine Schätzung zur Modellgüte.
application_typejoint
ist kleiner als 1.
application_typejoint
hat
neben joint
noch eine weitere Stufe
(individual
), diese ist aber nicht aufgeführt.
Intercept
gibt den Wert der abhängigen
Variable an, bei Fällen mit dem Wert individual
bei
application_type
und ohne Jahreseinkommen.
Intercept
gibt den Wert der abhängigen
Variable an, bei Fällen mit dem Wert joint
bei
application_type
und ohne Jahreseinkommen.
Der Wert bei Intercept
gibt den Wert der abhängigen
Variable an, bei Fällen mit dem Wert individual
bei
application_type
und ohne Jahreseinkommen.
predict(lm1, newdata = data.frame(annual_income = 0,
application_type = "individual"))
## 1
## 13
Wir betrachten einen Datensatz, der Kredite analysiert:
library(openintro)
data("loans_full_schema")
Eine Analystin möchte den Zinssatz (interest_rate
) auf
Basis dieses Datensatzes vorhersagen.
Sie berechnet folgendes Regressionsmodell (auf einem Teil des Datensatzes):
lm1 <- lm(interest_rate ~ annual_income + application_type, data = loans_full_schema)
Grafisch aufbereitet, sieht ihr Ergebnis so aus:
Welche Aussage ist korrekt?
application_type
(individual
und joint
) ist die Steigung der
Regressionsgerade (annähernd) gleich.
application_type individual
und
application_type joint
.
Für beide Gruppen von application_type
(individual
und joint
) ist die Steigung der
Regressionsgerade (annähernd) gleich.
Das Diagramm wurde mit dieser Syntax erzeugt:
library(tidyverse)
library(moderndive)
library(mosaic)
data("loans_full_schema")
set.seed(42)
loans_full_schema %>%
sample_n(1000) %>%
filter(annual_income > 10) %>%
mutate(income_log = log(annual_income)) %>%
ggplot() +
aes(x = income_log, y = interest_rate,
color = application_type) +
geom_point(alpha = .3) +
geom_parallel_slopes()
Wählen Sie das Diagramm, in dem kein Interaktionseffekt (in der Population) vorhanden ist (bzw. wählen Sie Diagramm, dass dies am ehesten darstellt).
Das Streudiagramm Diagramm E
zeigt keinen
Interaktionseffekt.
Die Korrelation prüft, ob zwei Merkmale linear zusammenhängen.
Wie viele andere Verfahren kann die Korrelation als ein Spezialfall der Regression bzw. des linearen Modells betrachtet werden.
Als ein spezielles Beispiel betrachten wir die Frage, ob das Gewicht
eines Diamanten (carat
) mit dem Preis (price
)
zusammenhängt (Datensatz diamonds
).
Den Datensatz können Sie so laden:
library(tidyverse)
data(diamonds)
Geben Sie das Skalenniveau beider Variablen an!
Betrachten Sie die Ausgabe von R:
lm1 <- lm(price ~ carat, data = diamonds)
summary(lm1)
##
## Call:
## lm(formula = price ~ carat, data = diamonds)
##
## Residuals:
## Min 1Q Median 3Q Max
## -18585 -805 -19 537 12732
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -2256.4 13.1 -173 <2e-16 ***
## carat 7756.4 14.1 551 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1550 on 53938 degrees of freedom
## Multiple R-squared: 0.849, Adjusted R-squared: 0.849
## F-statistic: 3.04e+05 on 1 and 53938 DF, p-value: <2e-16
Wie (bzw. wo) ist aus dieser Ausgabe die Korrelation herauszulesen?
Macht es einen Unterschied, ob man Preis mit Karat bzw. Karat mit Preis korreliert?
In der klassischen Inferenzstatistik ist der -Wert eine zentrale Größe; ist er klein () so nennt man die zugehörige Statistik signifikant und verwirft die getestete Hypothese.
Im Folgenden sehen Sie einen Korrelationstest auf statistische Signifikanz, mit R durchgeführt. Zeigt der Test ein (statistisch) signifikantes Ergebnis? Wie groß ist der “Unsicherheitskorridor”, um den Korrelationswert (zugleich Punktschätzer für den Populationswert)?
library(rstatix)
diamonds %>%
sample_n(30) %>%
select(price, carat) %>%
rstatix::cor_test() %>%
gt()
var1 | var2 | cor | statistic | p | conf.low | conf.high | method |
---|---|---|---|---|---|---|---|
price | carat | 0.84 | 8.3 | 5.6e-09 | 0.69 | 0.92 | Pearson |
carat
ist metrisch (verhältnisskaliert) und
price
ist metrisch (verhältnisskaliert)
kann bei einer einfachen (univariaten) Regression als das Quadrat von berechnet werden. Daher .
sqrt(0.8493)
## [1] 0.92
Zum Vergleich
diamonds %>%
summarise(r = cor(price, carat))
r |
---|
0.92 |
Man kann den Wert der Korrelation auch noch anderweitig berechnen ( umrechnen in ).
Nein. Die Korrelation ist eine symmetrische Relation.
Ja; die Zahl “3.81e-14” bezeichnet eine positive Zahl kleiner eins mit 13 Nullern vor der ersten Ziffer, die nicht Null ist (3.81 in diesem Fall). Der “Unsicherheitskorridor” reicht von etwa 0.87 bis 0.97.
Laden Sie den Datensatz mtcars
aus dieser
Quelle.
Berechnen Sie eine Regression mit mpg
als
Ausgabevariable und hp
aus Eingabevariable!
Welche Aussage ist für diese Analyse richtig?
mpg
und hp
sind positiv korreliert laut dem
Modell.
hp
liegt bei
30.099
.
hp
liegt bei
-0.068
.
Das geschätzte Betagewicht für hp
liegt bei
-0.068
.
Die Analyse könnte so aussehen:
library(tidyverse)
library(moderndive)
mtcars <- read_csv("https://vincentarelbundock.github.io/Rdatasets/csv/datasets/mtcars.csv")
## New names:
## Rows: 32 Columns: 12
## ── Column specification
## ──────────────────────────────────────────────────────── Delimiter: "," chr
## (1): ...1 dbl (11): mpg, cyl, disp, hp, drat, wt, qsec, vs, am, gear, carb
## ℹ Use `spec()` to retrieve the full column specification for this data. ℹ
## Specify the column types or set `show_col_types = FALSE` to quiet this message.
## • `` -> `...1`
lm1 <- lm (mpg ~ hp, data = mtcars)
get_regression_table(lm1)
term | estimate | std_error | statistic | p_value | lower_ci | upper_ci |
---|---|---|---|---|---|---|
intercept | 30.10 | 1.63 | 18.4 | 0 | 26.76 | 33.44 |
hp | -0.07 | 0.01 | -6.7 | 0 | -0.09 | -0.05 |
Ist es möglich, kategorial skalierte Prädiktoren in eine Regressionsanalyse (lineare Modell) aufzunehmen?
Ja; diese werden aber in Dummy-Variablen umgerechnet (also in
zweistufige Variablen mit den Stufen 0
und 1
),
bevor die Regression berechnet wird.
Betrachten wir folgende Regressionsmodell:
Geben Sie eine mathematische Formel an zur Zentrierung der Prädiktoren bzw. des Prädiktors!
Hinweise: - Geben Sie nur eine Formel ein, keinen Text,
keine Leerzeichen und keine Sonderzeichen. - Verwenden Sie das Suffix
“_c”, um eine zentrierte Variable zu benennen. - Auf Funktionen wie den
Mittelwert dürfen Sie zurückgreifen. Um den Mittelwert der Variablen
var
zu spezifizieren, kennzeichnen Sie dies mit
mw(var)
. - Verzichten Sie auf ein Malzeichen bei
Multiplikationen. - Beispiel: “y_c = 2 mw(x) - 1”.
x_c=x-mw(x)
Zwei Modelle, m1
und m2
produzieren jeweils
die gleiche Vorhersage (den gleichen Punktschätzer).
m1
:
##
## Call:
## lm(formula = y ~ x)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.2124 -0.0581 -0.0011 0.0651 0.3414
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.000201 0.009498 0.02 0.98
## x 0.994614 0.009127 108.97 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.093 on 98 degrees of freedom
## Multiple R-squared: 0.992, Adjusted R-squared: 0.992
## F-statistic: 1.19e+04 on 1 and 98 DF, p-value: <2e-16
m2
:
##
## Call:
## lm(formula = y ~ x)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.506 -0.687 0.002 0.716 2.632
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.0283 0.1060 0.27 0.79
## x 0.8585 0.0990 8.67 9.1e-14 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.1 on 98 degrees of freedom
## Multiple R-squared: 0.434, Adjusted R-squared: 0.429
## F-statistic: 75.2 on 1 and 98 DF, p-value: 9.07e-14
Die Modelle unterscheiden sich aber in ihrer Ungewissheit bezüglich
,
wie in der Spalte Std. Error
ausgedrückt.
Welches der beiden Modelle ist zu bevorzugen? Begründen Sie.
Modell m1
hat eine kleinere Ungewissheit im
Hinblick auf die Modellkoeffizienten
und ist daher gegenüber m2
zu bevorzugen.
Ein Streudiagramm von
und
ergibt folgende Abbildung; dabei wird noch die Gruppierungsvariable
(mit den Stufen 0
und 1
) berücksichtigt (vgl.
Farbe und Form der Punkte). Zur besseren Orientierung ist die
Regressionsgerade pro Gruppe eingezeichnet.
Wählen Sie das (für die Population) am besten passende Modell aus der Liste aus!
Hinweis: Ein Interaktionseffekt der Variablen und ist mit gekennzeichnet.
Das dargestellte Modell lautet . Der Modellfehler hat den Anteil im Vergleich zur Streuung von .
Berechnen Sie für das unten ausgegeben Modell!
Nutzen Sie dafür folgende Werte:
term | estimate | std_error | statistic | p_value | lower_ci | upper_ci |
---|---|---|---|---|---|---|
intercept | -34.5 | 4.76 | -7.2 | 0 | -44.0 | -25 |
x | 10.6 | 0.88 | 12.1 | 0 | 8.9 | 12 |
g | -35.4 | 6.60 | -5.4 | 0 | -48.6 | -22 |
x:g | 8.9 | 1.16 | 7.6 | 0 | 6.5 | 11 |
Hinweis: Ein Interaktionseffekt der Variablen
und
ist mit x:g
gekennzeichnet. Runden Sie zur nächsten ganzen
Zahl.
beträgt im Fall der vorliegenden Parameter und dem vorliegenden Modell .
Gegeben sei ein Datensatz mit fünf Prädiktoren, wobei Studierende die Beobachtungseinheit darstellen:
Die vorherzusagende Variable (; Kriterium) ist Gehalt nach Studienabschluss.
Wie lautet das Kriterium für eine Person mit folgenden Werten:
Berechnen Sie dazu ein Regressionsmodell (Least Squares) anhand folgender Modellparameter:
Geben Sie als Antwort den vorhergesagten -Wert an!
Hinweis: Runden Sie auf zwei Dezimalstellen.
Die Antwort lautet 52.98.
Die beiden folgenden Abbildungen zeigen zwei lineare Regressionen.
Welche Aussage stimmt?
Je enger die Punkte um die Gerade streuen, desto größer ist .