Qualité des fonctions d'ajustement en R
quelles fonctions utilisez-vous dans R pour ajuster une courbe à vos données et tester comment cette courbe s'adapte? Quels sont les résultats considérés comme bons?
6 réponses
juste la première partie de cette question peut remplir des livres entiers. Juste quelques choix rapides:
lm()
pour les modèles linéaires standardglm()
pour les modèles linéaires généralisés (par exemple pour la régression logistique)rlm()
à partir de paquet de MASSE pour des modèles linéaireslmrob()
à partir de package robustbase robuste des modèles linéairesloess()
pour les modèles non linéaires / non paramétriques
alors il y a les modèles spécifiques à un domaine comme les séries chronologiques, la micro-économétrie, les effets mixtes et bien plus encore. Plusieurs des tâches sont vues comme par exemple Économétrie discuter plus en détail. Quant à la bonté de l'ajustement, c'est aussi quelque chose que l'on peut passer facilement un livre entier discuter.
les organes de travail de la courbe canonique dans R sont lm()
,glm()
et nls()
. Pour moi, la qualité de l'ajustement est un sous-problème dans le problème plus vaste de la sélection des modèles. Infact, en utilisant la qualité de l'ajustement incorrectement (par exemple, via la régression pas à pas) peut donner lieu à un modèle sérieusement mal spécifié (voir le livre de Harrell sur "les stratégies de modélisation de régression"). Plutôt que de discuter de la question à partir de zéro, je recommande le livre de Harrell pour lm
et glm
. La bible de Venables et Ripley est laconique, mais vaut la peine d'une lecture. "Étendre le modèle linéaire avec R" par Faraway est complet et lisible. le nls n'est pas couvert par ces sources, mais la "régression non linéaire avec R" de Ritz & Streibig comble le vide et est très pratique.
nls()
fonction (http://sekhon.berkeley.edu/stats/html/nls.html) est assez standard pour l'ajustement non linéaire de la courbe des moindres carrés. Chi carré (la somme des résidus carrés) est la métrique qui est optimisée dans ce cas, mais il n'est pas normalisé de sorte que vous ne pouvez pas facilement l'utiliser pour déterminer la qualité de l'ajustement est. La principale chose que vous devez vous assurer que votre résidus sont normalement distribués. Malheureusement, je ne suis pas sûr d'une façon automatisée de le faire.
le site de Quick R présente un bon résumé des fonctions de base utilisées pour ajuster les modèles et tester les ajustements, ainsi qu'un exemple de code R:
La principale chose que vous devez vous assurer est que vos résidus sont normalement distribué. Malheureusement, je ne suis pas sûr d'une façon automatisée de le faire.
qqnorm()
pourrait probablement être modifié pour trouver la corrélation entre les quantiles de l'échantillon et les quantiles théoriques. Essentiellement, il s'agirait simplement d'une interprétation numérique de la courbe de quantile normale. Peut-être en fournissant plusieurs valeurs du coefficient de corrélation pour différentes gammes de quantiles pourrait être utile. Par exemple, si le coefficient de corrélation est proche de 1 pour le milieu de 97% des données et beaucoup plus bas aux queues, cela nous indique que la distribution des résidus est approximativement normale, avec une certaine amusement en cours dans les queues.
mieux vaut rester simple, et voir si les méthodes linéaires fonctionnent "bien enuff". Vous pouvez juger de votre qualité d'ajustement en général en regardant la statistique R carré et F, ensemble, jamais séparer. Ajouter des variables à votre modèle qui n'ont aucune incidence sur votre variable dépendante peut augmenter R2, donc vous devez également considérer la statistique F.
vous devriez aussi comparer votre modèle à d'autres modèles emboîtés, ou plus simples. Faites ceci en utilisant le test du rapport de liklihood logarithmique, tant que les variables dépendantes sont la même.
le test de Jarque-Bera est bon pour tester la normalité de la distribution résiduelle.