R-squared valeur dans Excel avec le " addtrendline fonction?
J'ai été en difficulté un certain temps sur ce;
En bref, je ne peux pas trouver les équations Excel utilise pour R2.
-
Voici mes données :
x: 1 2 3 4 5 6 7 8 9 10
y: 4 9 1 2 1 1 8 5 5 1 -
Je tracer les données, l'ajustement d'une loi de puissance de la fonction ("ajouter une courbe de tendance") et d'utiliser la fonction 'ajouter une courbe de tendance > options > Affichage de la valeur R carré sur un tableau
Valeur affichée :
R2 = 0.03008.
Problème 1
Si je fais le calcul dans excel à l'aide de 'RSQ ()" fonction (en prenant les valeurs des paramètres Excel a trouvé pour le montage de la fonction), ou à la main en utilisant la définition (wikipédia)...
R2 = 0.0272
Problème 2
Dans Matlab, en utilisant le 'fit' fonction, les paramètres pour le réglage de la fonction (et puis, bien sûr, le R2) ne sont pas ceux que EXCEL a trouvé.
Questions:
Donc, voici ma question principale: le
Comment Excel calcule la R2 dans le "ajouter une courbe de tendance" la fonction, car il n'est évidemment pas celui de la définition (wikipédia)?
et la question bonus:
Pourquoi Excel et Matlab ne finissent pas avec les mêmes paramètres d'appareillage?
merci beaucoup!
%%%%%% MODIFIER CI-DESSOUS! %%%%
Comme une réponse à un commentaire;
Voici le code Matlab-je utiliser:
%% R-squared with the fit function
% use the fit function in Matlab, yobs being the data
[param, results] = fit(x,yobs,'power1');
% R-squared from the fit function :
r_sq_from_fit = results.rsquare;
%% here I calculate "by hand" the R-squared, from the general definition (wikipedia!)
% calculates the fitting data yfit
yfit = (p_powerlaw.a).*x.^p_powerlaw.b;
% mean of the yobs, total sum of squares, and residual sum of squares
yobs_mean = mean(yobs);
SStot = sum((yobs-yobs_mean).^2);
SSres = sum((yobs-yfit).^2);
r_sq_hand = 1-SSres/SStot;
- Je trouver les mêmes valeurs que j'obtiens R-carré de la fit
fonction dans Matlab ou je le calculer "à la main". Matlab semble être cohérente et, apparemment, utilise la stricte définition de la R-squared dans sa fonction...
Cependant; quand je compare:
- le R-carré de la valeur donnée par Excel à partir de
RSQ()
fonction - et la valeur que j'ai obtenu par le calcul à la main R-carré à partir de la définition (en prenant bien sûr le yfit valeurs Excel retourné moi, et non pas celui de Matlab renvoie, comme Excel et Matlab ne sont pas d'accord sur les paramètres d'appareillage!)
...Je obtenir des valeurs différentes! Excel : 0.027, comme je l'ai dit avant, et calculé à la main : -0.1109 (!)
- Comment en êtes-vous à 0.0272 exactement?
- Je prends les paramètres Excel trouvé pour le montage (3.6153 et -0.217), calculer les valeurs ajustées (appelons-les yfit) et calculer la fonction de la fonction RSQ avec les arguments les données (y) et les valeurs ajustées (yfit).
Vous devez vous connecter pour publier un commentaire.
RSQ ne pas retour le r-carré de la valeur pour un puissance courbe de tendance, c'est plutôt elle renvoie le r-carré pour une courbe de tendance linéaire. L'aide d'Excel lit "Pour logarithmique, puissance et exponentielle des courbes de tendances, Excel utilise la transformation du modèle de régression", mais je ne suis pas en mesure de trouver ce modèle.
Voir aussi Comment Mesurer la bonté d'un ajustement d'une courbe d'ajustement à une loi de puissance
Cette question (comment le "ajouter une courbe de tendance" dans Excel fonctionne vraiment?) aussi me laisse perplexe pour un temps plus long, parce que dans une recherche que j'ai besoin d'être sûr de l'origine de mes numéros. Parce que je n'ai pas trouvé trop à ce sujet sur internet, j'ai donc essayé plusieurs vays de manuel de R^2 (coefficient de détermination) l'évaluation afin d'obtenir les mêmes résultats que Excel.
J'ai fait la même observation, comme il a été mentionné dans la question. Lorsque l'on utilise "ajouter une courbe de tendance" pour linéaire (et aussi logaritmic) la fonction de montage, le résultant R^2 et regresion paramètres sont identiques manuellement les paramètres calculés. Mais lorsque l'on utilise "ajouter une courbe de tendance" pour les autres non-linéaire de la fonction de montage (par exemple exponentielle), le résultant R^2 et regresion paramètres diffère de manuellement des paramètres calculés.
La solution de ce problème a déjà été partiellement mentionné dans la discussion ici. Il semble que dans le but d'ajustement non linéaire de la tendance dans les données, Excel primaire linéariser le problème. Ainsi, par exemple, à l'ajustement de la fonction exponentielle y=a* exp(b * x) elle est principalement transforme en fonction de ln(y)=ln(a)+b*x. Ensuite, la relation entre ln(y) et x est linéaire. Ensuite, le linéarisé de la fonction est intégrée dans les données transformées à l'aide de stratégie habituelle de la minimisation de la somme des carrés des résidus. Ainsi, le regresion paramètres ln(a) et de b sont obtenus. Aussi R^2 est calculée à partir de linéarisé forme. Parce que c'est la relation de dépendance linéaire, la fonction RSQ() la fonction peut être utilisée par Excel pour le calcul de R^2.
Lorsque l'on suit cette procédure manuellement, alors la résultante regresion paramètres et R^2 valeurs sont identiques à ceux fournis par Excel "ajouter une courbe de tendance".
Si généralement le regresion paramètres et R^2 valeurs fournies par Excel "ajouter une courbe de tendance" en cas de non-linéaires regresion ne sont pas vrai non linéaire mais plus probablement obtenus après linéarisation du problème. En conséquence, ces paramètres légèrement différents de ceux calculés directement sans transformation.
Remarque au sujet de la R^2: Comme je le comprends maintenant, le R^2 pour le cas linéaire (mieux notée par une lettre minuscule: r^2) est calculé comme un carré de corelation coefficient. (RSQ()=CORREL()^2=PEARSON()^2). En raison de ce rapport, les valeurs de r^2 peut varier qu'entre 0 et 1. Un ensemble d'entrée de personnes connues peuvent être modifiés par les intercepter et/ou de la pente, sans changement de r^2 de la valeur. D'autre part, la R^2 pour un cas non linéaire (mieux notée par le capital leter) est défini d'une manière différente (voir Wikipedia). C'est les valeurs ne sont pas en bas limitée à la valeur 0, mais au maximum de la valeur 1 indiquent toujours le meilleur ajustement. La modification d'un ensemble d'entrée appelés par d'intercepter et/ou les changements de pente de la R^2 de la valeur. R^2 fonctionne même bien également dans le cas linéaire.
C'est parce que vous demandez pour la R2 de côté d'une fonction de puissance dans ce type de représentation graphique (c'est à dire y = a(x)b), alors que la
RQS
fonction dans Excel vous donne la R2 pour un ajustement linéaire (c'est à dire y = a(x) + b). Je soupçonne que vous avez un problème similaire dans Matlab. Vous devez poster votre code en Matlab bien, sinon nous;d tout juste deviner.