courbe exponentielle

Questions sur les fonctions statistiques de R

Modérateur : Groupe des modérateurs

Etienne Taffoureau
Messages : 2
Enregistré le : 18 Aoû 2006, 07:42

courbe exponentielle

Messagepar Etienne Taffoureau » 29 Aoû 2006, 14:52

Bonjour,

je souhaite tracer une courbe de régression à partir d'un modèle non linéaire, en utilisant la fonction lines(x,valeur prédite) j'obtient un enchevêtrement de droites qui passe par tous les points au lieu d'avoir une belle courbe exponentielle...
quelqu'un a-t-il une idée du problème?

merci d'avance

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 29 Aoû 2006, 17:19

Soit tu ordonnes les valeurs ajustées par rapport au prédicteur, soit tu prédis de nouvelles valeurs selon des valeurs judicieusement choisies du prédicteur, et correctement ordonnées. La seconde solution est en général meilleure. Exemple:

Code : Tout sélectionner

DNase1 <- subset(DNase, Run == 1)
# on change l'ordre des observations
DNase1 <- DNase1[sample(seq(nrow(DNase1))), ]

## modèle
fm1 <- nls(density ~ SSlogis(log(conc), Asym, xmid, scal), DNase1)

## graphiques
par(mfrow= c(1, 3), pty = "s", las = 1)

## 1. plat de spaghettis
# points observés
with(DNase1, plot(log(conc), density))
# valeurs ajustées
with(DNase1, lines(log(conc), fitted(fm1), type = "l"))

## 2. c'est mieux en ordonnant
ord <- order(DNase1$conc)
# points observés
with(DNase1, plot(log(conc), density))
# valeurs ajustées et ordonnées
with(DNase1, lines(log(conc)[ord], fitted(fm1)[ord], type = "l"))

## 3. en passant par predict
New <- data.frame(conc = seq(min(DNase1$conc), max(DNase1$conc), length = 200))
# points observés
with(DNase1, plot(log(conc), density))
# courbe prédite
lines(log(New$conc), predict(fm1, newdata = New))


Renaud


Retourner vers « Archives : Fonctions statistiques »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

cron