Ich versuche, das Alter als Funktion einer Reihe von DNA-Methylierungsmarkern vorherzusagen. Diese Prädiktoren sind kontinuierlich zwischen 0 und 100. Wenn ich eine OLS-Regression durchführe, kann ich sehen, dass die Varianz mit dem Alter zunimmt.
Daher habe ich mich für ein gewichtetes Regressionsmodell entschieden. Ich habe jedoch Probleme bei der Entscheidung, wie die Gewichte für mein Modell definiert werden sollen. Ich habe die fGLS-Methode wie folgt verwendet:
OLSressq <- OLSres^2 # Square residuals
lnOLSressq <- log(OLSressq) # Take natural log of squared residuals
aux <- lm(lnOLSressq~X) # Run auxillary model
ghat <- fitted(aux) # Predict g^
hhat <- exp(ghat) # Create h^
fGLS <- lm(Y~X, weights = 1/hhat) # Weight is 1/h^
Und das waren meine Ergebnisse:
Call:
lm(formula = Y ~ X, weights = 1/hhat)
Weighted Residuals:
Min 1Q Median 3Q Max
-4.9288 -1.2491 -0.1325 1.2626 5.1452
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 23.1009494 5.2299867 4.417 1.64e-05 ***
XASPA -0.1441404 0.0474738 -3.036 0.00271 **
XPDE4C 0.6421385 0.0812891 7.899 1.83e-13 ***
XELOVL2 -0.2040382 0.0866564 -2.355 0.01951 *
XELOVL2sq 0.0088532 0.0009381 9.438 < 2e-16 ***
XEDARADD -0.1965472 0.0348989 -5.632 5.98e-08 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.762 on 200 degrees of freedom
Multiple R-squared: 0.9687, Adjusted R-squared: 0.9679
F-statistic: 1239 on 5 and 200 DF, p-value: < 2.2e-16
Bevor ich jedoch herausfand, wie man die fGLS-Methode durchführt, spielte ich mit verschiedenen Gewichten herum, nur um zu sehen, was passieren würde. Ich habe 1 / (quadratische Residuen des OLS-Modells) als Gewichte verwendet und am Ende Folgendes erhalten:
Call:
lm(formula = Y ~ X, weights = 1/OLSressq)
Weighted Residuals:
Min 1Q Median 3Q Max
-1.0893 -0.9916 -0.7855 0.9998 2.0238
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 30.8756737 1.1355861 27.19 <2e-16 ***
XASPA -0.1956188 0.0116329 -16.82 <2e-16 ***
XPDE4C 0.6168490 0.0102149 60.39 <2e-16 ***
XELOVL2 -0.1596969 0.0116723 -13.68 <2e-16 ***
XELOVL2sq 0.0078459 0.0001593 49.26 <2e-16 ***
XEDARADD -0.2492048 0.0068751 -36.25 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1 on 200 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: 1
F-statistic: 1.133e+06 on 5 and 200 DF, p-value: < 2.2e-16
Da der verbleibende Standardfehler kleiner ist, R² gleich 1 ist (ist das überhaupt möglich?) Und die F-Statistik viel höher ist, bin ich versucht anzunehmen, dass dieses Modell besser ist als das, was ich mit der fGLS-Methode erreicht habe. Es scheint mir jedoch, dass die zufällige Auswahl von Gewichten durch Versuch und Irrtum immer schlechtere Ergebnisse liefern sollte, als wenn Sie tatsächlich mathematisch versuchen, die richtigen Gewichte zu schätzen.
Kann mir jemand einen Rat geben, welche Gewichte ich für mein Modell verwenden soll? Ich habe auch hier und da gelesen, dass Sie R² nicht so interpretieren können, wie Sie es bei der Durchführung einer OLS-Regression tun würden. Aber wie sollte es dann interpretiert werden und kann ich es trotzdem verwenden, um mein WLS-Modell irgendwie mit meinem OLS-Modell zu vergleichen?
nlme::gls
Funktion angeben . Das nlme::corClasses
bietet eine Liste verschiedener Korrelationsstrukturen.
R-squared = 1
. Haben Sie eine Vorstellung davon, wie hoch die möglichen Gewichte sein sollten? Klingt wie1/(squared residuals of OLS model)
war nur eine Vermutung. Wenn Sie über die Gewichte im Dunkeln sind, empfehle ich die Verwendung von GLS oder iterativ gewichteten kleinsten Quadraten.