Multikollinearität

Alle Verfahren der Regressionanalyse.

Multikollinearität

Beitragvon mwp2022_ » Mo 13. Feb 2023, 21:37

Hallo Zusammen,

ich prüfe für meine Moderationsanalyse gerade die Multikollinearität mit R. Laut den Ergebnissen habe ich Multikollinearität vorliegen (ich kopiere die Outputs mal unten rein). Variablen raus lassen ist eigentlich keine Option.. kann ich auch mit Multikol. eine Moderationsanalyse durchführen und wenn ja, kann ich das mit Literatur begründen? Das Internet war bisher wenig hilfreich.
Danke!

Mein Modell ist folgendes: multikol <- lm(AOC~Stress+PSH+PSO+PSR+PSS+PsyCap, data = data_scp)
Jetzt soll man ja den VIF-Wert überprüfen. Allerdings kommt mit car::vif(multikol) ein error raus. Im Internet fand ich das: This tells us that two or more predictor variables in the model are perfectly correlated.
Alles klar, soweit kein Problem denke ich. Die Abhängigkeiten findet man wohl mit dem alias() Befehl. Allerdings kann ich mit dem Output nix anfangen.
alias(multikol)
Model :
AOC ~ Stress + PSH + PSO + PSR + PSS + PsyCap

Complete :
(Intercept) Stress PSH PSO PSR PSS
PsyCap 0 0 1/4 1/4 1/4 1/4

Wenn ich mir eine Korrelationsmatrix mit meinen UVs ausgeben lasse, kommt auch nirgendwo eine 1 (= perfekte Korrelation) raus, außer bei den Variablen mit sich selbst
> df <- data.frame(data_scp$Stress, data_scp$PSH, data_scp$PSO, data_scp$PSR, data_scp$PSS, data_scp$PsyCap, data_scp$AOC)
> #create correlation matrix for data frame
> cor(df)
data_scp.Stress data_scp.PSH data_scp.PSO data_scp.PSR data_scp.PSS
data_scp.Stress 1.0000000 -0.4501433 -0.4710102 -0.39574846 -0.3924508545
data_scp.PSH -0.4501433 1.0000000 0.5103071 0.40578721 0.4936621745
data_scp.PSO -0.4710102 0.5103071 1.0000000 0.48336763 0.4284938649
data_scp.PSR -0.3957485 0.4057872 0.4833676 1.00000000 0.5914500112
data_scp.PSS -0.3924509 0.4936622 0.4284939 0.59145001 1.0000000000
data_scp.PsyCap -0.5485984 0.7755293 0.7926277 0.77451512 0.7897559420
data_scp.AOC -0.2880023 0.2992661 0.2016998 0.08216383 0.0009156919
data_scp.PsyCap data_scp.AOC
data_scp.Stress -0.5485984 -0.2880022557
data_scp.PSH 0.7755293 0.2992661452
data_scp.PSO 0.7926277 0.2016998006
data_scp.PSR 0.7745151 0.0821638297
data_scp.PSS 0.7897559 0.0009156919
data_scp.PsyCap 1.0000000 0.1933219801
data_scp.AOC 0.1933220 1.0000000000
mwp2022_
Grünschnabel
Grünschnabel
 
Beiträge: 7
Registriert: Mi 7. Sep 2022, 16:23
Danke gegeben: 4
Danke bekommen: 0 mal in 0 Post

Re: Multikollinearität

Beitragvon bele » Mo 13. Feb 2023, 22:36

mwp2022_ hat geschrieben:Laut den Ergebnissen habe ich Multikollinearität vorliegen
#
Laut welchem Ergebnis?

Variablen raus lassen ist eigentlich keine Option.


Aha.

Allerdings kommt mit car::vif(multikol) ein error raus


Da ist es grundsätzlich sinnvoll, die Fehlermeldung vollständig zu posten. "Ein Error" ist keine Grundlage, Dir zu helfen.

Code: Alles auswählen
Complete :
       (Intercept) Stress PSH PSO PSR PSS
PsyCap   0           0    1/4 1/4 1/4 1/4


Wenn ich mir eine Korrelationsmatrix mit meinen UVs ausgeben lasse, kommt auch nirgendwo eine 1 (= perfekte Korrelation) raus,


Multiple Korrelation bedeutet ja auch nicht einfache Korrelation. Wenn jetzt beispielsweise PsyCap einfach die Summe aus PSH + PSO + PSR + PSS sein sollte, dann würden diese vier das PsyCap auch perfekt vorhersagen, ohne dass deshalb eine paarweise Korrelation eins sein müsste.

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5774
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 15
Danke bekommen: 1356 mal in 1343 Posts

folgende User möchten sich bei bele bedanken:
mwp2022_

Re: Multikollinearität

Beitragvon mwp2022_ » Mi 15. Feb 2023, 19:58

Hallo Bernhard,

mit Ergebnis meine ich den Error, der ja lt. Internet der Beweis für Multikollinearität sein soll.
Error ist folgender:
> car::vif(multikol)
Error in vif.default(multikol) :
there are aliased coefficients in the model

Mittlerweile hat mir jemand netterweise in SPSS die VIF-Werte mal ausgerechnet (ich muss leider R benutzen). Hier kommen VIF-Werte raus, die auch ziemlich hoch sind. Overfitting liegt laut dem SPSS-Output auch vor, weil sich die Vorzeichen umkehren bei der Interaktion.

Ich würde mir jetzt einfach eine Korrelationstabelle ausgeben lassen und in meiner Diskussion sagen, dass das Modell halt nicht klug gewählt ist, weil die Unterausprägungen logischerweise das Gesamtkonstrukt PsyCap vorhersagen und deshalb Multikol. vorliegt. Ist das wohl die richtige Vorgehensweise?

Meine Ergebnisse der Moderationsanalyse am Ende sind eh allesamt nicht signifikant, von daher ist das auch egal. Ich muss es nur erklären können, denke ich..
mwp2022_
Grünschnabel
Grünschnabel
 
Beiträge: 7
Registriert: Mi 7. Sep 2022, 16:23
Danke gegeben: 4
Danke bekommen: 0 mal in 0 Post

Re: Multikollinearität

Beitragvon PonderStibbons » Mi 15. Feb 2023, 20:20

Ich würde mir jetzt einfach eine Korrelationstabelle ausgeben lassen und in meiner Diskussion sagen, dass das Modell halt nicht klug gewählt ist, weil die Unterausprägungen logischerweise das Gesamtkonstrukt PsyCap vorhersagen und deshalb Multikol. vorliegt. Ist das wohl die richtige Vorgehensweise?

Das ist keine unkluge Wahl, sondern inhaltlich und sowieso statistisch ein krachender Fehler.
Wer Dich da nicht auffordert, die Analyse nochmal zu machen, hat keine Ahnung. Es könnte
in der Regel also durchkommen.

Mit freundlichen Grüßen

PonderStibbons
PonderStibbons
Foren-Unterstützer
Foren-Unterstützer
 
Beiträge: 11258
Registriert: Sa 4. Jun 2011, 15:04
Wohnort: Ruhrgebiet
Danke gegeben: 50
Danke bekommen: 2473 mal in 2457 Posts

folgende User möchten sich bei PonderStibbons bedanken:
mwp2022_

Re: Multikollinearität

Beitragvon mwp2022_ » Mi 15. Feb 2023, 20:54

ach du Alarm. Das war mir ehrlich gesagt vorher nicht klar, als ich meine Hypothesen etc. formuliert habe. Hätte meine Professorin, die meine Masterarbeit betreut, mich da nicht drauf hinweisen müssen, dass mein Modell keinen Sinn macht? Na hoffentlich falle ich damit nicht durch. Eine neue Analyse kriege ich nicht, das Abgabedatum rückt näher. Das wird spannend.
mwp2022_
Grünschnabel
Grünschnabel
 
Beiträge: 7
Registriert: Mi 7. Sep 2022, 16:23
Danke gegeben: 4
Danke bekommen: 0 mal in 0 Post

Re: Multikollinearität

Beitragvon bele » Mi 15. Feb 2023, 21:39

Leider musst Du R verwenden, nachdem R Dich zielgenau auf das Problem gestoßen hat.

Kannst Du nicht einfach so ein Modell ohne PsyCap rechnen?
Code: Alles auswählen
lm(AOC ~ Stress + PSH + PSO + PSR + PSS, data = data_scp)
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5774
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 15
Danke bekommen: 1356 mal in 1343 Posts

folgende User möchten sich bei bele bedanken:
mwp2022_

Re: Multikollinearität

Beitragvon mwp2022_ » Do 16. Feb 2023, 12:03

das habe ich mal gemacht:
> multiohnepsycap <- lm(AOC ~ Stress + PSH + PSO + PSR + PSS, data = data_scp)
> vif(multiohnepsycap)
Stress PSH PSO PSR PSS
1.444898 1.618846 1.646814 1.733886 1.770225
> 1/vif(multiohnepsycap)
Stress PSH PSO PSR PSS
0.6920906 0.6177240 0.6072330 0.5767391 0.5648998

die VIF-Werte sind alle unter 10 und die Toleranzwerte alle über 0,1. Das heißt, hier liegt keine Multikol. vor, richtig?
Und das bedeutet wiederum, dass ich meine Moderationsanalysen mit PSH, PSO, PSR, PSS ohne Probleme machen kann. Die Moderationsanalyse mit PsyCap macht aber keinen Sinn, weil sie keinen Mehrwert liefert. Habe ich das richtig verstanden?

Könnte ich in der Diskussion auch aufführen, wie viel Erklärungsbeitrag die 4 Variablen leisten und diese dann vergleichen mit dem Erklärungsbeitrag des PsyCap als Moderator (auch wenn das eigentlich nicht geht und dann die Gründe hierfür aufzählen)? Damit würde ich ja dann mein vorheriges Modell aufgreifen, aber meine Fehler bei der Konzeption des Modells nennen und was für statistische Probleme ich habe.
mwp2022_
Grünschnabel
Grünschnabel
 
Beiträge: 7
Registriert: Mi 7. Sep 2022, 16:23
Danke gegeben: 4
Danke bekommen: 0 mal in 0 Post

Re: Multikollinearität

Beitragvon bele » Do 16. Feb 2023, 14:00

mwp2022_ hat geschrieben:Die Moderationsanalyse mit PsyCap macht aber keinen Sinn, weil sie keinen Mehrwert liefert. Habe ich das richtig verstanden?


Was Sinn macht und was nicht ergibt sich aus den Zweck der Analyse, der genauen Fragestellung und der Art der Datenerhebung und so weiter - das wissen wir alles nicht und können deshalb auch nicht sagen, was Sinn macht.
Wenn die Fragestellung lauten sollte, ob Stress den Zusammenhang zwischen AOC und PsyCap moderiert, dann würde nur das hier Sinn machen:

Code: Alles auswählen
lm( AOC ~ Stress * PsyCap, data =  data_scp )


Da der Zweck der Studie und die präzise Fragestellung unbekannt sind können wir das aber nicht beurteilen.

LG,
Bernhard
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5774
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 15
Danke bekommen: 1356 mal in 1343 Posts

folgende User möchten sich bei bele bedanken:
mwp2022_

Re: Multikollinearität

Beitragvon mwp2022_ » Fr 17. Feb 2023, 20:26

deine vermutete Fragestellung ist fast richtig: Inwiefern moderiert PsyCap (und seine Unterausprägungen) die Beziehung zwischen Stressempfinden und AOC?
Grundlage ist der negative Einfluss von Stress auf AOC, das konnte ich in den Ergebnissen der Studie auch replizieren.
mwp2022_
Grünschnabel
Grünschnabel
 
Beiträge: 7
Registriert: Mi 7. Sep 2022, 16:23
Danke gegeben: 4
Danke bekommen: 0 mal in 0 Post

Re: Multikollinearität

Beitragvon bele » Sa 18. Feb 2023, 00:08

PsyCap und seine Unterausprägungen in einem geht nicht. Dann macht halt PsyCap und Unterausprägungen in getrennte Analysen.
----
`Oh, you can't help that,' said the Cat: `we're all mad here. I'm mad. You're mad.'
`How do you know I'm mad?' said Alice.
`You must be,' said the Cat, `or you wouldn't have come here.'
(Lewis Carol, Alice in Wonderland)
bele
Schlaflos in Seattle
Schlaflos in Seattle
 
Beiträge: 5774
Registriert: Do 2. Jun 2011, 23:16
Danke gegeben: 15
Danke bekommen: 1356 mal in 1343 Posts


Zurück zu Regressionanalyse

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste

cron