Comment lire la bonté de l'ajustement sur nls de R?

12

J'essaie d'interpréter la sortie de nls (). J'ai lu ce post mais je ne comprends toujours pas comment choisir le meilleur ajustement. De mes ajustements, j'ai deux sorties:

> summary(m)

  Formula: y ~ I(a * x^b)

  Parameters:
  Estimate Std. Error t value Pr(>|t|)    
  a 479.92903   62.96371   7.622 0.000618 ***
  b   0.27553    0.04534   6.077 0.001744 ** 
  ---
  Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

  Residual standard error: 120.1 on 5 degrees of freedom

  Number of iterations to convergence: 10 
  Achieved convergence tolerance: 6.315e-06 

et

> summary(m1)

  Formula: y ~ I(a * log(x))

  Parameters:
  Estimate Std. Error t value Pr(>|t|)    
  a   384.49      50.29   7.645 0.000261 ***
  ---
  Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

  Residual standard error: 297.4 on 6 degrees of freedom

  Number of iterations to convergence: 1 
  Achieved convergence tolerance: 1.280e-11

Le premier a deux paramètres et une erreur résiduelle plus petite. Le deuxième seul paramètre mais la pire erreur résiduelle. Quelle est la meilleure solution?

emanuele
la source
4
Il y a bien plus à évaluer un modèle qu'à regarder une ou deux statistiques sommaires. À quoi ressemblent les résidus? Certaines données présentent-elles un effet de levier trop important? Que disent les bienfaits des diagnostics d'ajustement? La théorie suggère-t-elle qu'un de ces modèles devrait être préféré? Pour quelles valeurs de ces ajustements diffèrent-ils considérablement et est-ce important? Etc.X
whuber
3
J'ai supprimé ma réponse, qui suggérait d'utiliser AIC, car un commentaire montrait de manière convaincante que l'AIC n'est généralement pas applicable pour la sélection des nlsajustements. J'essaierais toujours de choisir un modèle non linéaire basé sur des connaissances mécanistiques, en particulier si l'ensemble de données est aussi petit que le vôtre.
Roland
1
Hmmm. Le commentateur d'origine sur la réponse maintenant supprimée de @ Roland serait-il disposé à republier le commentaire? Il n'est pas immédiatement évident pour moi pourquoi l'AIC ne serait pas approprié ... (bien que stat.ethz.ch/pipermail/r-help/2010-August/250742.html donne quelques indices) - et comme note finale, si vous essayons d'identifier une transformation de puissance, vous pourriez essayer des transformations de Box-Cox ( boxcoxdans le MASSpaquet)
Ben Bolker
1
L'AIC pourrait être utilisé pour sélectionner des modèles.

Réponses:

2

Vous pouvez simplement utiliser le test F et anova pour les comparer. Voici quelques codes.

> x <- 1:10
> y <- 2*x + 3                            
> yeps <- y + rnorm(length(y), sd = 0.01)
> 
> 
> m1=nls(yeps ~ a + b*x, start = list(a = 0.12345, b = 0.54321))
> summary(m1)

Formula: yeps ~ a + b * x

Parameters:
   Estimate Std. Error t value Pr(>|t|)    
a 2.9965562  0.0052838   567.1   <2e-16 ***
b 2.0016282  0.0008516  2350.6   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

Residual standard error: 0.007735 on 8 degrees of freedom

Number of iterations to convergence: 2 
Achieved convergence tolerance: 3.386e-09 

> 
> 
> m2=nls(yeps ~ a + b*x+c*I(x^5), start = list(a = 0.12345, b = 0.54321,c=10))
> summary(m2)

Formula: yeps ~ a + b * x + c * I(x^5)

Parameters:
   Estimate Std. Error  t value Pr(>|t|)    
a 3.003e+00  5.820e-03  516.010   <2e-16 ***
b 1.999e+00  1.364e-03 1466.004   <2e-16 ***
c 2.332e-07  1.236e-07    1.886    0.101    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

Residual standard error: 0.006733 on 7 degrees of freedom

Number of iterations to convergence: 2 
Achieved convergence tolerance: 1.300e-06 

> 
> anova(m1,m2)
Analysis of Variance Table

Model 1: yeps ~ a + b * x
Model 2: yeps ~ a + b * x + c * I(x^5)
  Res.Df Res.Sum Sq Df     Sum Sq F value Pr(>F)
1      8 0.00047860                             
2      7 0.00031735  1 0.00016124  3.5567 0.1013
>
Stat
la source
5
Plus d'informations sur la façon d'interpréter les résultats?
skan
Veuillez développer. Avec mon jeu de données, je n'obtiens aucune sortie pour la valeur F et pour Pr (> F). Quel est l'intérêt de faire les analyses anova? Je ne connais que son utilisation pour comparer des catégories et non des modèles.
user3386170