Qualité de l'ajustement pour le modèle non linéaire


8

Nous avons ajusté une fonction non linéaire aux données observées. La prochaine étape devrait être l'évaluation de la qualité de l'ajustement de cette fonction (comme pour les modèles linéaires).R2

Quels sont les moyens habituels de mesurer cela?

Modifier 1:

Le montage a été réalisé comme suit:

  1. Effectuer une régression linéaire avec des variables indépendantes A et B .
  2. Calculez les paramètres de distribution à partir des paramètres de régression. (La distribution est non linéaire et a la variable C en entrée.)
  3. Évaluer la qualité de l'ajustement de la distribution non linéaire en comparant les données estimées aux données observées.

Modifier 2:

Exemples pour les étapes mentionnées ci-dessus:

  1. Modèle de régression: log(y)=β0+β1log(a)+β2log(b)
  2. ρ=β0β1 et θ=β2 pour la distribution non linéaire suivante: f(a)=ρaθ
  3. Évaluer la qualité de l'ajustement de f(a) avec un ensemble donné d' observations (a,f(a)) .

5
La "qualité de l'ajustement" dépend de la façon dont l'ajustement a été effectué. Par exemple, la mesure du GoF appropriée pour un estimateur du maximum de vraisemblance devrait différer de la mesure du GoF pour un estimateur des moindres carrés lorsque la composante aléatoire n'est pas une variable normale additive. Si vous avez un problème spécifique à l'esprit, vous pouvez donc indiquer comment vous avez effectué l'ajustement.
whuber

2
Vous pourriez être intéressé par: Magee, L. (1990). mesures basées sur Wald et les tests de signification conjointe du rapport de vraisemblance. The American Statistician , 44 (3): 250–253, et Pesaran, MH et Smith, RJ (1994). Un critère généralisé pour les modèles de régression estimés par la méthode des variables instrumentales. Econometrica , 62 (3): 705–710. R2R2
Alexis

1
@whuber J'ai ajouté la description des étapes effectuées dans les questions ci-dessus.
Marco

@Alexis Merci pour les références, je vais les consulter.
Marco

1
@whuber Serait-ce un moyen réalisable de calculer la corrélation entre et les observations données pour évaluer la qualité de l'ajustement? f(a)
Marco

Réponses:


2

Il y a peut-être plus, mais il me semble que vous voulez juste déterminer la qualité d'ajustement (GoF) pour une fonction f (a), adaptée à un ensemble de données particulier (a, f (a)). Donc, ce qui suit ne répond qu'à votre troisième sous-question (je ne pense pas que la première et la seconde soient directement pertinentes pour la troisième).

Habituellement, le GoF peut être déterminé de façon paramétrique (si vous connaissez les paramètres de la fonction de la distribution) ou non paramétrique (si vous ne les connaissez pas). Bien que vous puissiez être en mesure de comprendre les paramètres de la fonction, car elle semble être exponentielle ou gamma / Weibull (en supposant que les données sont continues). Néanmoins, je vais continuer, comme si vous ne connaissiez pas les paramètres. Dans ce cas, il s'agit d'un processus en deux étapes . Tout d'abord, vous devez déterminer les paramètres de distribution de votre ensemble de données. Deuxièmement, vous effectuez un test GoF pour la distribution définie. Pour éviter de me répéter, je vous renvoie à ce stade à ma réponse précédenteà une question connexe, qui contient des détails utiles. De toute évidence, cette réponse peut facilement être appliquée à des distributions, autres que celle mentionnée à l'intérieur.

En plus des tests GoF, mentionnés ici, vous pouvez envisager un autre test - le test GoF chi carré . Contrairement KS et AD tests, qui sont applicables uniquement aux distributions continues, test de chi-carré GoF est applicable à la fois discrets et continus petits. Le test GoF du chi carré peut être effectué dans R en utilisant l'un des packages suivants: statspackage intégré (fonction chisq.test()) et vcdpackage (fonction goodfit()- pour les données discrètes uniquement). Plus de détails sont disponibles dans ce document .


1
Le lien vers "ma réponse précédente" ne fonctionne plus, car la question a probablement été supprimée.
Amonet

1
@Amonet Merci de me le faire savoir. J'ai pu accéder aux Q&R supprimées et les récupérer en tant que Gist public. Veuillez consulter gist.github.com/ablekh/… . J'espère que cela t'aides.
Aleksandr Blekh

0

Eh bien, dans l'apprentissage automatique, la chose appelée validation croisée est effectuée assez souvent à des fins de test de modèle (testez si ce type de modèle avec ces hyper-paramètres - comme le nombre de degrés de liberté ou autre - correspond à votre problème) - vous divisez votre plusieurs fois dans les ensembles de données d'entraînement et de test, puis exécutez l'optimisation sur l'ensemble de formation et calculez la qualité sur les données de test. Le moyen le plus confidentiel consiste à exécuter ce que l'on appelle la "validation croisée QxT-fold". Le pseudocode pourrait aimer:

cv_values = []
for t in range(T):
    split = randomsplit(data, number_of_parst = Q)
    for test_id in range(Q):
        model.fit(split[:test_id] + split[test_id + 1:] # test on everything excepting test_id
        cv_values.append(model.test(split[test_id]))

cv_values.mean() # whatever

Merci pour votre réponse. Alors, à quoi ressemble votre fonction model.test (...) ?
Marco
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.