J'utilise la fonction Deming fournie par Terry T. sur ce fil de discussion r-help archivé . Je compare deux méthodes, j'ai donc des données qui ressemblent à ceci:
y x stdy stdx
1 1.2 0.23 0.67
2 1.8 0.05 0.89
4 7.5 1.13 0.44
... ... ... ...
J'ai effectué ma régression de Deming (également appelée "régression des moindres carrés totaux") et j'obtiens une pente et une interception. Je voudrais obtenir un coefficient de corrélation alors j'ai commencé à calculer le . J'ai saisi manuellement la formule:
R2 <- function(coef,i,x,y,sdty){
predy <- (coef*x)+i
stdyl <- sum((y-predy)^2) ### The calculated std like if it was a lm (SSres)
Reelstdy <- sum(stdy) ### the real stdy from the data (SSres real)
disty <- sum((y-mean(y))^2) ### SS tot
R2 <- 1-(stdyl/disty) ### R2 formula
R2avecstdyconnu <- 1-(Reelstdy/disty) ### R2 with the known stdy
return(data.frame(R2, R2avecstdyconnu, stdy, Reelstdy))
}
Cette formule fonctionne et me donne une sortie.
- Lequel des deux plus de sens? (Personnellement, je pense que les deux sont plutôt biaisés.)
- Existe-t-il un moyen d'obtenir un coefficient de corrélation à partir d'une régression totale au moins quadratique?
RÉSULTAT DE LA RÉGRESSION DE DEMING:
Call:
deming(x = Data$DS, y = Data$DM, xstd = Data$SES, ystd = Data$SEM, dfbeta = T)
Coef se(coef) z p
Intercept 0.3874572 0.2249302 3.1004680 2.806415e-10
Slope 1.2546922 0.1140142 0.8450883 4.549709e-02
Scale= 0.7906686
>
r
r-squared
deming-regression
total-least-squares
Nico Coallier
la source
la source
Réponses:
Pour développer la réponse de whuber ci-dessus - Pearson vous donnera ce que vous voulez. Il détermine dans quelle mesure y est corrélé avec x en utilisant une approche indépendante du modèle de régression :
gx.rma du paquetage rgr fera le total des moindres carrés et calculera Pearson pour vous (ou vous pouvez continuer avec Deming et le faire manuellement).
Donc, la réponse de base à votre question est, lorsque vous faites le moins de carrés au total, oubliez le R au carré et utilisez simplement Pearson. Vous pouvez toujours rectifier cela si vous voulez un résultat entre 0 et 1. Cela fera tout ce dont vous avez besoin.
Cela dit, je vais élaborer un peu, si je comprends bien, il semble que nous devrions être en mesure de calculer un équivalent R au carré.
Tout d'abord, essayons une régression de somme normale de carrés sur les données en utilisant lm. Notez qu'il donne le même coefficient de corrélation que Pearson (après enracinement carré et ne se souciant que de la magnitude, évidemment).
Ceci est calculé à partir du résultat du modèle lm en utilisant l'approche traditionnelle de la somme des carrés
Donc, à condition d'utiliser le modèle donné par lm, le carré (Pearson) et le carré R sont équivalents.
Cependant, si vous utilisez le modèle à partir de la somme de la régression totale des carrés et essayez d'utiliser la dernière équation, vous obtiendrez un résultat légèrement différent. C'est évident parce que les moindres carrés normaux et totaux utilisent différentes fonctions de minimisation, donc donnez des modèles avec des gradients et des interceptions légèrement différents. (N'oubliez pas que la première équation donnera toujours le même résultat qu'elle ne regarde que les données.)
C'est là que je suis raccroché. Si les deux équations donnent le même résultat lors de l'utilisation du modèle lm, alors il doit sûrement y avoir une formulation équivalente pour la dernière équation, mais lors de l'utilisation du modèle des moindres carrés totaux, qui donne également le même résultat?
J'ai joué rapidement avec différentes approches en utilisant la fonction de minimisation appropriée (comme l'affiche ici: Coefficient de détermination d'une régression orthogonale ), mais je ne peux pas trouver un moyen de le faire - s'il y en a un.
Peut-être que nous sommes tous les deux accrochés au fait que Pearson et R-carré donnent le même résultat lors de l'utilisation des moindres carrés normaux - et il n'y a tout simplement pas de moyen de faire R-carré sur le total des moindres carrés, ce qui donnera le même résultat comme Pearson. Mais je n'en sais pas assez pour dire pourquoi.
la source
Utilisation du package "mcr"
et en utilisant la fonction pour générer votre modèle de régression de deming
et produire un tracé en utilisant la fonction
Cela affiche la corrélation du moment de production de Pearson sur le graphique du modèle, qui vous indique la force et la direction de la relation linéaire entre vos deux variables x, y, mais ne donne pas la proportion de la variation qui est expliquée.
J'espère que cela pourra aider.
la source