Plus tard
Une chose que je veux ajouter après avoir entendu que vous avez des modèles d'effets mixtes linéaires: A jeC, A ICc et B ICpeut encore être utilisé pour comparer les modèles. Voir cet article , par exemple. D'après d'autres questions similaires sur le site, il semble que ce document est crucial.
Réponse originale
Ce que vous voulez essentiellement, c'est comparer deux modèles non imbriqués. Burnham and Anderson Model selection and multimodel inference discuter this and recommend using theA jeC, A jeCc ou B ICetc., car le test traditionnel du rapport de vraisemblance ne s'applique qu'aux modèles imbriqués. Ils déclarent explicitement que les critères théoriques de l’information tels queAIC,AICc,BICetc. ne sont pas des tests et que le mot «significatif» doit être évité lors de la communication des résultats.
Sur la base de cela et de ces réponses, je recommande ces approches:
- Faire une matrice de nuages de points (de SPLOM) de votre ensemble de données , y compris lisseurs:
pairs(Y~X1+X2, panel = panel.smooth, lwd = 2, cex = 1.5, col = "steelblue", pch=16)
. Vérifiez si les lignes (les lissoirs) sont compatibles avec une relation linéaire. Affinez le modèle si nécessaire.
- Calculez les modèles
m1
et m2
. Faites quelques vérifications du modèle (résidus, etc.): plot(m1)
et plot(m2)
.
- Calculez le AICc (AIC corrigé pour les petits échantillons) pour les deux modèles et calculer la différence absolue entre les deux AICcs. Le
R
packagepscl
fournit la fonction AICc
pour cela: abs(AICc(m1)-AICc(m2))
. Si cette différence absolue est inférieure à 2, les deux modèles sont fondamentalement indiscernables. Sinon, préférez le modèle avec le plus basAICc.
- Calculer les tests de rapport de vraisemblance pour les modèles non imbriqués. Le
R
packagelmtest
a les fonctions coxtest
(test Cox), jtest
( test Davidson-MacKinnon J) et encomptest
(test englobant Davidson & MacKinnon).
Quelques réflexions: Si les deux mesures de la banane mesurent vraiment la même chose, elles peuvent toutes deux être également adaptées à la prédiction et il pourrait ne pas y avoir de "meilleur" modèle.
Ce document pourrait également être utile.
En voici un exemple R
:
#==============================================================================
# Generate correlated variables
#==============================================================================
set.seed(123)
R <- matrix(cbind(
1 , 0.8 , 0.2,
0.8 , 1 , 0.4,
0.2 , 0.4 , 1),nrow=3) # correlation matrix
U <- t(chol(R))
nvars <- dim(U)[1]
numobs <- 500
set.seed(1)
random.normal <- matrix(rnorm(nvars*numobs,0,1), nrow=nvars, ncol=numobs);
X <- U %*% random.normal
newX <- t(X)
raw <- as.data.frame(newX)
names(raw) <- c("response","predictor1","predictor2")
#==============================================================================
# Check the graphic
#==============================================================================
par(bg="white", cex=1.2)
pairs(response~predictor1+predictor2, data=raw, panel = panel.smooth,
lwd = 2, cex = 1.5, col = "steelblue", pch=16, las=1)
Les lissoirs confirment les relations linéaires. C'était prévu, bien sûr.
#==============================================================================
# Calculate the regression models and AICcs
#==============================================================================
library(pscl)
m1 <- lm(response~predictor1, data=raw)
m2 <- lm(response~predictor2, data=raw)
summary(m1)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.004332 0.027292 -0.159 0.874
predictor1 0.820150 0.026677 30.743 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.6102 on 498 degrees of freedom
Multiple R-squared: 0.6549, Adjusted R-squared: 0.6542
F-statistic: 945.2 on 1 and 498 DF, p-value: < 2.2e-16
summary(m2)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.01650 0.04567 -0.361 0.718
predictor2 0.18282 0.04406 4.150 3.91e-05 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 1.021 on 498 degrees of freedom
Multiple R-squared: 0.03342, Adjusted R-squared: 0.03148
F-statistic: 17.22 on 1 and 498 DF, p-value: 3.913e-05
AICc(m1)
[1] 928.9961
AICc(m2)
[1] 1443.994
abs(AICc(m1)-AICc(m2))
[1] 514.9977
#==============================================================================
# Calculate the Cox test and Davidson-MacKinnon J test
#==============================================================================
library(lmtest)
coxtest(m1, m2)
Cox test
Model 1: response ~ predictor1
Model 2: response ~ predictor2
Estimate Std. Error z value Pr(>|z|)
fitted(M1) ~ M2 17.102 4.1890 4.0826 4.454e-05 ***
fitted(M2) ~ M1 -264.753 1.4368 -184.2652 < 2.2e-16 ***
jtest(m1, m2)
J test
Model 1: response ~ predictor1
Model 2: response ~ predictor2
Estimate Std. Error t value Pr(>|t|)
M1 + fitted(M2) -0.8298 0.151702 -5.470 7.143e-08 ***
M2 + fitted(M1) 1.0723 0.034271 31.288 < 2.2e-16 ***
le AICcdu premier modèle m1
est nettement plus faible et laR2 est beaucoup plus élevé.
Important: dans les modèles linéaires de complexité égale et de distribution d'erreur gaussienne ,R2,AIC et BICdevrait donner les mêmes réponses (voir cet article ). Dans les modèles non linéaires , l'utilisation deR2pour les performances du modèle (qualité de l'ajustement) et la sélection du modèle doivent être évitées: voir cet article et ce document , par exemple.
X1
etX2
serait probablement corrélé, car les taches brunes augmentent probablement avec l'augmentation du temps allongé sur la table.