Je suis en train de reproduire ce que la fonction dfbetas()
fait dans R .
dfbeta()
n'est pas un problème ... Voici un ensemble de vecteurs:
x <- c(0.512, 0.166, -0.142, -0.614, 12.72)
y <- c(0.545, -0.02, -0.137, -0.751, 1.344)
Si j'adapte deux modèles de régression comme suit:
fit1 <- lm(y ~ x)
fit2 <- lm(y[-5] ~ x[-5])
Je vois que l'élimination du dernier point entraîne une pente très différente (ligne bleue - plus raide):
Cela se reflète dans le changement de pente:
fit1$coeff[2] - fit2$coeff[2]
-0.9754245
qui coïncide avec dfbeta(fit1)
la cinquième valeur:
(Intercept) x
1 0.182291949 -0.011780253
2 0.020129324 -0.001482465
3 -0.006317008 0.000513419
4 -0.207849024 0.019182219
5 -0.032139356 -0.975424544
Maintenant, si je veux standardiser ce changement de pente (obtenir des dfbetas ) et je recourt à:
Williams, DA (1987) Diagnostic de modèle linéaire généralisé utilisant la déviance et les suppressions de cas unique. Statistiques appliquées 36, 181–191
qui je pense peut être une des références dans la documentation R sous le package {stats} . Là, la formule pour dfbetas est:
Cela pourrait être facilement calculé dans R:
(fit1$coef[2] - fit2$coef[2])/summary(fit2)$coef[4]
rendement: -6.79799
La question est pourquoi je n'obtiens pas la cinquième valeur pour la pente dans:
dfbetas(fit1)
(Intercept) x
1 1.06199661 -0.39123009
2 0.06925319 -0.02907481
3 -0.02165967 0.01003539
4 -1.24491242 0.65495527
5 -0.54223793 -93.81415653!
Quelle est la bonne équation pour passer de dfbeta à dfbetas ?