Interpretation von lm.beta für ein glm.nb modell

Modelle zur Korrelations- und Regressionsanalyse

Moderator: EDi

Antworten
Kah
Beiträge: 10
Registriert: Mi Mai 24, 2023 4:50 pm

Interpretation von lm.beta für ein glm.nb modell

Beitrag von Kah »

Hellohello, ich habe folgenede Fragen zur Interpretation von standardisierten Regressionskoeffizienten mit lm.beta:

Ich habe ein Regressionsmodell erstellt mit glm.nb, bin mir aber nicht sicher, ob die Estimates die Richtung des Einflusses korrekt angben, weil es evtl eine Krümmung im Modell gibt. Sprich, ich habe bei manchen Variablen negative Werte, wo ich einen positiven Einfluss erwarte und andersherum. Bei den meisten passt es aber.
Nun habe ich mir mit der Funktion lm.beta aus dem package lm.beta die standardisierten Regressionskoeffizienten ausgeben lassen und bin nicht sicher, wie ich diese interpretieren kann. Müssten die Vorzeichen nun die Richtung des Einflusses korrekt wiedergeben? Und: Ist der Unterschied zu den Estimates aus der Model-summary, dass sie nun vergleichbar, weil standardisiert sind?

Und noch eine grundlegendere Frage: darf ich lm.beta überhaupt anwenden auf eine negative Binominalverteilung?

Dankedanke!
Kah
Beiträge: 10
Registriert: Mi Mai 24, 2023 4:50 pm

Re: Interpretation von lm.beta für ein glm.nb modell

Beitrag von Kah »

Weiß das tatsächlich niemand oder habe ich die Frage besonders doof formuliert? :?
bigben
Beiträge: 2814
Registriert: Mi Okt 12, 2016 9:09 am

Re: Interpretation von lm.beta für ein glm.nb modell

Beitrag von bigben »

Hallo Kah,

wahrscheinlich sind da mehrere Sachen zusammen gekommen. Die Aktivität im Forum ist insgesamt rückläufig, nicht jeder ist mit jedem Paket vertraut und manchmal versuche beispielsweise ich auch, später einen Thread zu beantworten und vergesse das dann.

Dazu kommt folgendes Problem:

Code: Alles auswählen

> help("lm.beta")
No documentation for ‘lm.beta’ in specified packages and libraries:
you could try ‘??lm.beta’
> lm.beta()
Error in lm.beta() : could not find function "lm.beta"
Es gibt ein Zusatzpaket "lm.beta" dessen Funktionsbeschreibung zur Funktion lm.beta::lm.beta besagt:
Adds standardized regression coefficients to objects created by lm.
Das spricht in der Tat nicht dafür, dass man es mit irgendwas anderem als den von lm erstellten Objekten verwenden sollte.

Ich verstehe nicht, wie das Problem mit einer "Krümmung im Modell" (?) oder mit falschen Vorzeichen von Koeffizienten lösen soll (was vielleicht auch ein Grund war, Dir nicht gleich zu antworten), aber wenn Du eine Regression mit standardisierten Prädiktoren haben willst, dann standardisiere die doch einfach selbst. Die Funktion scale() ist Dein Freund.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Kah
Beiträge: 10
Registriert: Mi Mai 24, 2023 4:50 pm

Re: Interpretation von lm.beta für ein glm.nb modell

Beitrag von Kah »

Danke Bernhard!

Scheinbar lagen die falschen Vorzeichen in meinem Fall daran, dass Variablen untereinander stark korrelieren. Um solche Variablen zu identifizieren kann man zB eine Korrelationsmatrix erstellen und sich die Variance Inflation Factors (VIF) ansehen und dann entscheiden, ob man evtl eine Variable rauslassen sollte.
Ist hier gut erklärt: https://www.statology.org/variance-inflation-factor-r/

Grüße!
bigben
Beiträge: 2814
Registriert: Mi Okt 12, 2016 9:09 am

Re: Interpretation von lm.beta für ein glm.nb modell

Beitrag von bigben »

Hallo Kah,

Multikollinearität führt primär nicht zu falschen Vorzeichen sondern zu viel zu hohen Standardfehlern. Das System kann sich dann beliebig aussuchen, ob es die einen oder die anderen Variable stark machen will und im Rahmen der großen Schwankung durch den enormen Standardfehler kann man sich dann auch das Vorzeichen beliebig aussuchen. Umgekehrt führen die großen Standardfehler zu großen p-Werten.

Das VIF ist ein gutes Maß für Kollinearität aber dann gibt es immer wieder so Vorschläge, dass man ab einem VIF von fünf oder zehn Variablen herausschmeißen sollte und das scheint mir Unsinn zu sein. Die Korrelationsmatrix nützt weniger, denn sie zeigt zwar an, wenn zwei Variablen das gleiche anzeigen aber nicht, wenn drei Variablen gemeinsam das gleiche anzeigen wie die vierte. Sie erkennt also nur Teile des Problems.

Eine Alternative zum Rauslassen von Variablen wäre sonst noch, dass man Variablen die das gleiche vorhersagen auch einen etwa gleichen Koeffizienten in der Regression zuweist. Das geht mit der RIDGE-Regression (beispielsweise mit dem Paket glmnet).

Wie hast Du Dein Problem jetzt gelöst? Durch Weglassen von Prädiktoren?

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten