Frage:
Lineare Regression mit kleiner Stichprobe: Wo soll ich anfangen?
Brandon Bertelsen
2010-11-11 10:33:28 UTC
view on stackexchange narkive permalink

VOLLSTÄNDIGE OFFENLEGUNG: Dies sind Hausaufgaben.

Ich habe einen kleinen Datensatz erhalten (n = 21). Die Daten sind unordentlich. Wenn ich sie in einer Streudiagramm-Matrix betrachte, habe ich wenig bis gar keinen Einblick . Ich habe 8 Variablen erhalten, die Metriken sind, die aus einer Längsschnittstudie (BI, CONS, CL, CR, ..., VOBI) erstellt wurden. Die anderen Messungen beziehen sich auf Verkäufe von Investmentfonds, Renditen, Aktiva, Marktanteil, Umsatzanteil und Verhältnis von Verkäufen zu Vermögenswerten.

alt text

Korrelationen sind überall.

  BI CONS CL CR QT COM CONV VOBI sra ms ss Aktie share2BI 1,0000000 0,7620445 0,639830594 0,70384322 0,7741463 0,8451500 0,84704440 0,85003686 0,2106773 -0,238431047 0,36184548 0,40007830 0,4076563 0,31643802 -0.28283564CONS 0,7620445 1,0000000 0,933595967 0,96979599 0,9892533 0,9069803 0,96781703 0,93416972 0,2316209 -0,074351798 0,31952292 0,40259511 0,4442877 0,24783884 -0.14788906CL 0,6398306 0,9335960 1,000000000 0,88297431 0,8993748 0,8133169 0,89922684 0,81132166 0,1200420 -0,001107093 0,22132116 0,26729067 0,3033221 0,07650924 -0.25595278CR 0,7038432 0,9697960 0,882974312 1,00000000 0,9788150 0,8965754 0,92335363 0,90848199 0,2934774 -0,119340914 0,35973640 0,46409570 0,5012178 0,32832247 -0.09005985QT 0,7741463 0,9892533 0,899374782 0,97881497 1,0000000 0,9216887 0.95458369 0.94848419 0.2826278 -0,108430256 0,35520090 0,43290221 0,4823314 0,31761015 -0.12903075COM 0,8451500 0,9069803 0,813316918 0,89657544 0,9216887 1,0000000 0,90302002 0,89682825 0,4305866 -0,255581594 0,50724121 0,55718441 0,5773171 0,40378679 -0.12085524CONV 0,8470444 0,9678170 0,899226843 0,92335363 0,9545837 0,9030200 1,00000000 0,96097892 0,1993837 -0,065237725 0,32010735 0,41843335 0,4531298 0,28873934 -0,19668858
Ich 0.8500369 0.9341697 0,811321664 0,90848199 0,9484842 0,8968283 0,96097892 1,00000000 0,2424889 -0,087126942 0,30390489 0,40390750 0,4845432 0,36588655 -0.07137107s 0,2106773 0,2316209 0,120041993 0,29347742 0,2826278 0,4305866 0,19938371 0,24248894 1,0000000 -0,173034217 0,91766914 0,84673519 0,8596887 0,61299987 0.32072790r -,2384310 -,0743518 -,001107093 -,11934091 -,1084303 -,2555816 -,06523773 -0,08712694 -0,1730342 1,000000000 -0,22512978 -0,18337773 -0,1030943 -0,17650579 0.51768144a 0,3618455 0,3195229 0,221321163 0,35973640 0,3552009 0,5072412 0,32010735 0,30390489 0,9176691 -0,225129778 1,00000000 0,92445370 0,8656139 0,63049461 0.03876774ms 0,4000783 0,4025951 0,267290668 0,46409570 0,4329022 0,5571844 0,41843335 0,40390750 0,8467352 -0,183377734 0,92445370 1,00000000 0,9572730 0,77582501 0,4076563 0.08435813ss 0,4442877 0,303322147 0,50121775 0,4823314 0,5773171 0,45312978 0 0.86561394 0.95727301 0.83931302 1.0000000 0.8596887 .48454322 0,24371447 Aktien -0,103094325 0,3164380 0,2478388 0,076509240 0,32832247 0,3176102 0,4037868 0,28873934 0,36588655 0,6129999 -0,176505786 0,63049461 0,77582501 0,8393130 1,00000000 0.20313930share2 -0,2828356 -0,1478891 -0,255952782 -0,09005985 -0,1290307 -0,1208552 -0,19668858 -0,07137107 0,3207279 0,517681444 0,03876774 0,08435813 0,2437145 0,20313930 1.00000000  

Nun habe ich versucht, eine Reihe von "Tests" auszuführen, zum Beispiel:

  summary.lm (share2 ~ bi + ... )  

Keiner von ihnen liefert jedoch ein vernünftiges Ergebnis (meistens negativ angepasstes R ^ 2).

Ich frage mich, ob Sie angegeben haben, wo es aussieht, als gäbe es keine Beziehung (zumindest linear).

Was wäre Ihr nächster Schritt?

P.S: Ich habe eine Reihe von Modellformeln ausprobiert, die Interaktionseffekte enthielten und viel bessere Ergebnisse erzielten (R ^ 2 Ra ^ 2> 80% und signifikante f-Tests), aber nicht alle Interaktionseffekte waren signifikant.

Was ist das Ziel Ihrer Analysen?
Ja, das habe ich ausgelassen, nicht ich. Das Ziel ist es, aus den bereitgestellten Variablen eine Vorhersagegleichung für share2 zu finden.
Vier antworten:
#1
+6
Gavin Simpson
2010-11-11 15:20:18 UTC
view on stackexchange narkive permalink

Ich würde mir wahrscheinlich eine Gratregression oder besser das Lasso ansehen. Diese Techniken werden häufig bei Multikollinearität angewendet. In R gibt es dafür mehrere Möglichkeiten: Weitere Informationen finden Sie im Abschnitt Regularisierte Methoden und Schrumpfungsmethoden in der Taskansicht Maschinelles Lernen & Statistisches Lernen in CRAN.

Sie haben nicht genügend Daten um über einige der Techniken nachzudenken, die in anderen Abschnitten dieser Aufgabenansicht aufgeführt sind.

Mit 21 Probanden und 8 Variablen und ohne eine festgelegte Frage, Hypothese oder ein Modell ... Welche Frage würde die Ridge-Regression beantworten?
@Harvey - Brandon erklärte in einem Kommentar zu seinem Q, dass er ein Modell für Vorhersagezwecke haben wolle.
#2
+6
Harvey Motulsky
2010-11-12 00:07:37 UTC
view on stackexchange narkive permalink

Es scheint mir, dass das einzige, was es wert ist, hier getan zu werden, eine sehr fokussierte Hypothese zu testen, wenn Sie eine haben. Aber es scheint so, als ob du es nicht tust.

Bei so wenigen Fällen und so vielen Variablen wäre alles andere (meiner Meinung nach) eine Angelexpedition. Das könnte vielleicht ein bisschen nützlich sein, um eine Hypothese zum Testen mit neuen Daten zu generieren. Die Ergebnisse einer multivariaten, nicht fokussierten Analyse dieser Daten sind jedoch wahrscheinlich ein falsch positiver zufälliger Befund, der mit neuen Daten wahrscheinlich nicht mithalten kann.

#3
+5
chl
2010-11-11 16:40:29 UTC
view on stackexchange narkive permalink

Ich finde die Idee von @ ucfagls hier am besten geeignet, da Sie nur sehr wenige Beobachtungen und viele Variablen haben. Die Ridge-Regression sollte ihre Aufgabe zu Vorhersagezwecken erfüllen.

Eine andere Möglichkeit zur Analyse der Daten besteht darin, sich auf die PLS-Regression (in diesem Fall PLS1) zu stützen, die eine gewisse Idee hat Regression der PCA-Werte, scheint aber in Ihrem Fall interessanter zu sein. Da Multikollinearität dort möglicherweise ein Problem darstellt, können Sie sich die sparse -Lösung ansehen (siehe z. B. die Pakete spls oder mixOmics R).

#4
+2
Steven Noble
2010-11-11 11:35:52 UTC
view on stackexchange narkive permalink

Wenn Sie mit zu vielen Korrelationen frustriert sind und Ihre Kovarianzmatrix bereits (fast) bereits vorhanden ist, können Sie eine Hauptkomponentenanalyse durchführen. Sie werden weniger Dimensionen haben, was angesichts Ihrer Datensatzgröße wahrscheinlich in Ordnung ist, und was Sie am Ende haben, wird nicht mehr miteinander korreliert.

Hrmmm, prcomp liefert lächerliche Ergebnisse. PC1 macht 100% der Varianz mit einer SD von 20800 aus! Keine Rotation wohlgemerkt. Lassen Sie mich das noch einmal versuchen
Eh? PCA ** ist ** eine Rotation.
Ein Problem mit PCA ist die Interpretation des endgültigen Modells. Angenommen, PC1 und PC2 sind wichtige Begriffe im Modell. Um die Beziehung zwischen share2 und den Originaldaten zu erläutern, müssen Sie die Ladungen der Variablen auf PC1 und PC2 auseinander nehmen. Dies wird wahrscheinlich nicht allzu wichtig sein, aber die Vorhersage ist alles, woran Brandon interessiert ist.
Ich kann diesen Kommentar jetzt nicht bearbeiten, aber ich meinte Skalierung, nicht Rotation.
@Brandon - das war also mein anderer Kommentar zu der PCA, die Sie gemacht haben - ich denke, Sie sollten standardisieren (`scale = TRUE`), wenn sich die Variablen in verschiedenen Einheiten befinden oder unterschiedliche Bereiche annehmen.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 2.0-Lizenz, unter der er vertrieben wird.
Loading...