 |
Groupe des utilisateurs du logiciel R Un forum francophone d'échange autour du logiciel de calcul statistique R dans le domaine de la recherche agronomique tropicale
|
| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
Geissmann Gael
Inscrit le: 04 Avr 2007 Messages: 11 Localisation: FREJUS
|
Posté le: Mer Avr 04, 2007 1:59 pm Sujet du message: Regression Non parametrique |
|
|
Bonjour ,
Voila je viens de tomber sur ce forum et je le trouve fort sympatique .
Donc je vous explique un peu mon cas , je réalise actuellement un modèle sur "une regression non paramètrique" assez simple les données contiennent 3 colonnes
prélèvement du 1er juillet au 16 septembre de 00:15 a 23:15 toutes les 15 minutes et tous les jours date format jj/mm/aa heure : hh:mm
-1ere colonne dateJ = jour
-2eme colonne dateH =heure
-3eme colonne donne = données d ozone en (ug/m3)
Voila ce que je voudrai faire :
Je voudrai tracer 3 graphes celui du
-1er juillet en fonction de l' heure
-celui du mois de juillet en fonction jour et heure
-le général en fonction jour moi et heure
ensuite il faudrait que j applique la regression grace a la fonction loess et peut etre spline. pa dans R mais j avoue que j ai un peu de mal car je n ai pas l 'habitude , je ne travail pas sur ce langage .
Voila je mettrai en ligne les données demain ainsi que le début de mon programme .(car je ne suis aps sur mon pc)
Si certains d entre pourrai m aider je leur en serai très reconnaisant merci a demain :) |
|
| Revenir en haut de page |
|
 |
Geissmann Gael
Inscrit le: 04 Avr 2007 Messages: 11 Localisation: FREJUS
|
Posté le: Mer Avr 04, 2007 4:48 pm Sujet du message: |
|
|
| pas de réponse svp ? |
|
| Revenir en haut de page |
|
 |
Logez Maxime
Inscrit le: 26 Sep 2006 Messages: 1873 Localisation: Cemagref Aix en Provence
|
Posté le: Mer Avr 04, 2007 4:57 pm Sujet du message: |
|
|
Bonjour,
Une question concernant tes données comment les as-tu incoporés dans R, s'agit-il de nombre, de chaine de caractères ou encore de date au sens format date de R ?
Maxime |
|
| Revenir en haut de page |
|
 |
Geissmann Gael
Inscrit le: 04 Avr 2007 Messages: 11 Localisation: FREJUS
|
Posté le: Mer Avr 04, 2007 5:33 pm Sujet du message: |
|
|
| pour heure etn jour c est des date au format date de R pour la 3 eme colonne ozone c des nombres entre 5 et 500 |
|
| Revenir en haut de page |
|
 |
Logez Maxime
Inscrit le: 26 Sep 2006 Messages: 1873 Localisation: Cemagref Aix en Provence
|
Posté le: Mer Avr 04, 2007 6:27 pm Sujet du message: |
|
|
Re,
Peux tu juste mettre les 10 premières lignes de ton tableau par exemple. | Code: | # ne connaissant pas vraiment tes données je te propose ça
# pour le mois de juillet, data etant le tablmeau de données
plot(data$dateJ[format(data$dateJ,"%m")=="07"],data$donne[format(data$dateJ,"%m")=="07"])
# pour le premier Juillet
plot(data$dateH[format(data$dateJ,"%d/%m")=="01/07"], data$donne[format(data$dateJ,"%d/%m")=="01/07"])
# pour le complet
plot(data$dateH,data$donne)
|
En espérant t'avoir aidé un peu.
Maxime
Dernière édition par Logez Maxime le Mer Avr 04, 2007 6:37 pm; édité 1 fois |
|
| Revenir en haut de page |
|
 |
Geissmann Gael
Inscrit le: 04 Avr 2007 Messages: 11 Localisation: FREJUS
|
Posté le: Mer Avr 04, 2007 6:33 pm Sujet du message: |
|
|
| pas de problème , la actuellement je ne suis pas sur mon ordi je les mettrai demain a 10h |
|
| Revenir en haut de page |
|
 |
Geissmann Gael
Inscrit le: 04 Avr 2007 Messages: 11 Localisation: FREJUS
|
Posté le: Jeu Avr 05, 2007 8:10 am Sujet du message: |
|
|
Voila le début de mon programme
#PROGRAMME : estimation d'un modèle de regressioin non paramétrique
#importation des données
#On copie et stocke les donées de ozone.txt dans l'objet "ozo"
ozo<-read.table("ozone.txt",header=TRUE,sep='')
datej<-ozo[,1]
dateh<-ozo[,2]
donne<-ozo[,3]
#L'étude se fait du 1er juillet au 16 Septembre avec 95 mesures/jour soit un total de 7392 mesures
#Etudions les graphiques d'un jour , mois et le total
#plot du 1er juillet (95 mesures)
plot(ozo[1:95,2],ozo[1:95,3],type="p",col="yellow",main="1er Juillet",xlab="Temps(heures)",ylab="ozone(ug/m3)")
#plot du mois de juillet (95 mesures *31jours soit =2945 mesures effectuées) FAUTE
plot(ozo[1:2975,2],ozo[1:2975,3],type="p",col="blue",main="Mois de Juillet",xlab="Temps(heures)",ylab="ozone(ug/m3)")
#plot du 1er Juillet au 16 septebre (7392 mesures)
# mais flou COMMENT AMELIORER ... ????
ozo$date <- as.Date(as.character(datej) , format = "%d/%m/%Y")
ozo$Heure <- format(dateh, format = "%H:%M")
time<-as.POSIXct(paste(ozo$date,ozo$Heure))
plot(time,donne,col="blue",main="1e juiller au 16 septembre",xlab="Temps(jours)",ylab="ozone(ug/m3)")
et les fichier ozone.txt est le suivant (les 15 premieres lignes
on voit bien que les graphes total et pour le mois de juillet ne sont pas clars
-------------------------
l erreur avec les commandes que tu ma donné sont celle la :
"error in xy.coords(x, y, xlabel, ylabel, log) :
x and y lengths differ"
JOUR HEURE Ozone(ug/m3)
01/07/03 00:15 79
01/07/03 00:30 77
01/07/03 00:45 77
01/07/03 01:00 77
01/07/03 01:15 77
01/07/03 01:30 76
01/07/03 01:45 75
01/07/03 02:00 77
01/07/03 02:15 75
01/07/03 02:30 71
01/07/03 02:45 73
01/07/03 03:00 69
01/07/03 03:15 3
01/07/03 03:30 40
01/07/03 03:45 13
01/07/03 04:00 17
01/07/03 04:15 73
01/07/03 04:30 71
01/07/03 04:45 69
01/07/03 05:00 63
01/07/03 05:15 66
01/07/03 05:30 67
Voila merci encore |
|
| Revenir en haut de page |
|
 |
Geissmann Gael
Inscrit le: 04 Avr 2007 Messages: 11 Localisation: FREJUS
|
Posté le: Sam Avr 07, 2007 12:53 pm Sujet du message: |
|
|
Quelques petit conseil ? ?? ?
merci :) |
|
| Revenir en haut de page |
|
 |
Renaud Lancelot
Inscrit le: 16 Déc 2004 Messages: 2317 Localisation: CIRAD, Montpellier
|
Posté le: Dim Avr 08, 2007 11:31 am Sujet du message: |
|
|
Voici un exemple en utilisant le modèle graphique Trellis (package lattice). Il y a une astuce pour calculer loess et splines: il faut centrer la variable Time (ou autre recodage) pour éviter les dépassements numériques (temps calculé en secondes depuis 1970 avec format POSIXct). Pour ajuster les réglages des splines ou loess, voir les fct s et lo dans le package gam.
Renaud
| Code: | ozone <- read.table("ozone.txt", header = TRUE, sep = " ")
ozone$Jour <- as.Date(as.character(ozone$JOUR) , format = "%d/%m/%y")
ozone$Heure <- format(ozone$HEURE, format = "%H:%M")
Time <-as.POSIXct(paste(ozone$Jour, ozone$Heure))
> ozone
JOUR HEURE Ozone Jour Heure
1 01/07/03 00:15 79 2003-07-01 00:15
2 01/07/03 00:30 77 2003-07-01 00:30
3 01/07/03 00:45 77 2003-07-01 00:45
4 01/07/03 01:00 77 2003-07-01 01:00
5 01/07/03 01:15 77 2003-07-01 01:15
6 01/07/03 01:30 76 2003-07-01 01:30
7 01/07/03 01:45 75 2003-07-01 01:45
8 01/07/03 02:00 77 2003-07-01 02:00
9 01/07/03 02:15 75 2003-07-01 02:15
10 01/07/03 02:30 71 2003-07-01 02:30
11 01/07/03 02:45 73 2003-07-01 02:45
12 01/07/03 03:00 69 2003-07-01 03:00
13 01/07/03 03:15 3 2003-07-01 03:15
14 01/07/03 03:30 40 2003-07-01 03:30
15 01/07/03 03:45 13 2003-07-01 03:45
16 01/07/03 04:00 17 2003-07-01 04:00
17 01/07/03 04:15 73 2003-07-01 04:15
18 01/07/03 04:30 71 2003-07-01 04:30
19 01/07/03 04:45 69 2003-07-01 04:45
20 01/07/03 05:00 63 2003-07-01 05:00
21 01/07/03 05:15 66 2003-07-01 05:15
22 01/07/03 05:30 67 2003-07-01 05:30
library(lattice)
library(gam)
xyplot(Ozone ~ Time, data = ozone, aspect = "xy",
panel = function(x, y){
# trace une grille
panel.grid()
# trace une ligne joignant les points
panel.xyplot(x, y, type = "l", lty = "dotdash")
# trace les points
panel.xyplot(x, y, cex = 1.2, pch = 21, fill = "light blue", col = "blue")
# lissage spline
m <- mean(x)
X <- x - m
fm1 <- gam(y ~ s(X))
llines(x, fitted(fm1), col = "red")
# lissage loess
fm2 <- gam(y ~ lo(X))
llines(x, fitted(fm2), col = "green")
},
key = list(space = "right",
text = list(c("data", "spline", "loess")),
lines = list(col = c("blue", "red", "green"),
lty = c("dotdash", "solid", "solid")))
)
|
|
|
| Revenir en haut de page |
|
 |
Geissmann Gael
Inscrit le: 04 Avr 2007 Messages: 11 Localisation: FREJUS
|
Posté le: Dim Avr 08, 2007 1:43 pm Sujet du message: |
|
|
Merci ,
jsute une petite erreur
"Time <-as.POSIXct(paste(ozone$Jour, ozone$Heure))
Erreur dans fromchar(unclass(x)) : la chaîne de caractères n'est pas dans un format standard non ambigu
" |
|
| Revenir en haut de page |
|
 |
Renaud Lancelot
Inscrit le: 16 Déc 2004 Messages: 2317 Localisation: CIRAD, Montpellier
|
Posté le: Lun Avr 09, 2007 10:08 am Sujet du message: |
|
|
L'exemple que j'ai donné fonctionne de mon côté. Je suis parti du fichier tel que vous l'avez envoyé (copié dans le presse-papier, importé dans R avec read.table(file = "clipboard") puis sauvegardé au format ASCII dans mon répertoire de travail). Il faut adapter ce code au format de votre jeu de données. L'essentiel de l'exemple répond à votre question initiale:
| Citation: | | ensuite il faudrait que j applique la regression grace a la fonction loess et peut etre spline. pa dans R mais j avoue que j ai un peu de mal car je n ai pas l 'habitude , je ne travail pas sur ce langage . |
Le code que vous utilisez est assez avancé. Si c'est vous qui l'avez écrit, vous devriez trouver facilement la source des erreurs que vous mentionnez. Sinon, vous ne pourrez pas faire l'économie de passer qques jours ou semaines à étudier les manuels de base sur R (nombreuses ressources gratuites, y compris dans l'installation de base de R ou sur le site CRAN). C'est un investissement utile. Nous ne pouvons pas le faire à votre place ;-)
Renaud |
|
| Revenir en haut de page |
|
 |
Geissmann Gael
Inscrit le: 04 Avr 2007 Messages: 11 Localisation: FREJUS
|
Posté le: Jeu Avr 12, 2007 2:58 pm Sujet du message: |
|
|
Merci pour ces réponse Juste quelque petites questions :
-pouvait vous me donner une url du package pour R et windows
-Y a t il uine autre solution pour réaliser cette regression non para. sans package ?
Merci beacoup |
|
| Revenir en haut de page |
|
 |
Renaud Lancelot
Inscrit le: 16 Déc 2004 Messages: 2317 Localisation: CIRAD, Montpellier
|
Posté le: Ven Avr 13, 2007 1:30 pm Sujet du message: |
|
|
| Geissmann Gael a écrit: | Merci pour ces réponse Juste quelque petites questions :
-pouvait vous me donner une url du package pour R et windows |
gam est sur le site CRAN, directement accessible depuis R (RGui pour Windows) par le menu "Packages", option "Installer le(s) package(s)".
| Citation: | -Y a t il uine autre solution pour réaliser cette regression non para. sans package ?
Merci beacoup |
Toutes les fonctions, y compris les plus communes, sont dans des packages !
Si vous voulez dire "un package se trouvant dans l'installation de base de R", voir les packages splines et mgcv, mais l'interface (fcts permettant de faire les calculs) est plus complexe.
Renaud |
|
| Revenir en haut de page |
|
 |
Geissmann Gael
Inscrit le: 04 Avr 2007 Messages: 11 Localisation: FREJUS
|
Posté le: Dim Avr 15, 2007 2:09 pm Sujet du message: |
|
|
xyplot(Ozone ~ Time, data = ozone, aspect = "xy",
panel = function(x, y){
aparemment il ya une erreur sur cett ligne je n arrive pas a la trouvé
l erreur est : Erreur dans `[.data.frame`(y, id) : colonnes non définies sélectionnées |
|
| Revenir en haut de page |
|
 |
Renaud Lancelot
Inscrit le: 16 Déc 2004 Messages: 2317 Localisation: CIRAD, Montpellier
|
Posté le: Dim Avr 15, 2007 3:36 pm Sujet du message: |
|
|
Vérifier les noms des variables dans la formule et le data.frame.
Renaud |
|
| Revenir en haut de page |
|
 |
|
|
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous pouvez éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum
|
 Inscriptions bloqués / messages: 47296 / 587
|