|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2012 Messages : 44 ![]() |
Bonjour,
Je dispose d'un jeu de données de température (fichier en pièce jointe) avec un pas de temps que je souhaiterais plus fin. C-à-d que je voudrais, à partir des données dont je dispose, générer des points intermédiaires, calculés. Auriez-vous une idée de la manière dont je pourrais procéder par le biais d'une régression, ou autre? J'imaginais pouvoir appliquer une régression linéaire entre chaque couple de points. Il s'agit de la température de l'air et celle-ci ne présente pas de variabilité "inattendue", elle évolue assez linéairement. Comment puis-je procéder pour faire cela en routine sur R? C-a-d pour appliquer une régression linéaire entre chaque couple de point, du 1er jusqu'au dernier. Merci d'avance pour votre aide! |
|
|
00
|
|
|
#2 | ||
![]() ![]() |
Bonjour,
Pour la régression linéaire, vous avez la fonction : lm, et vous pouvez utiliser la fonction predict pour utiliser les coefficients estimés lors de la régression afin de déterminer des valeurs en de nouveaux points. Cependant, attention à vos remarques : la température n'est pas linéaire dans le temps. Voir : Code :
Cordialement, A.D.
__________________
Forum R Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur. Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/ . Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante. |
||
|
00
|
|
|
#3 | ||||
|
Invité de passage
![]() Inscription : mars 2012 Messages : 44 ![]() |
Bonjour,
Je reviens vers vous concernant le même problème qui je pense peut être résolu par la fonction "approx". En effet, comme vous le dites, la température n'est pas linéaire dans le temps. Cependant, une interpolation linéaire peut permettre une bonne estimation de la température entre 2 points qui ne sont pas trop éloignés dans le temps. Je souhaiterais donc procéder, entre chaque point de donnée, à une interpolation linéaire pour générer de nouveau points et ainsi augmenter ma précision/diminuer mon pas de temps. Je dispose du jeu de données en pièce jointe. Il s'agit de données de température, avec un pas de temps d'1h. Je souhaiterais procéder à une interpolation linéaire entre chaque point pour aboutir à un pas de temps de 10min. Je dispose du code suivant: Code :
Lorsque je lance la fonction, j'obtiens l'erreur suivante: Code :
Merci! |
||||
|
|
00
|
|
|
#4 | ||||
|
Invité de passage
![]() Inscription : mars 2012 Messages : 44 ![]() |
Bonjour,
J'ai résolu un premier problème du au format de mon fichier de données en utilisant ce code: Code :
T2=approx(as.numeric(T[-1, 2]),as.numeric(T[-1, 3]), method="linear", n=144) En effet, j'ai rentré dans la fonction "x=HrMn" qui correspond à l'heure de la journée et "y=Temp" qui correspond à mes valeurs de température. Dans mon fichier brut, j'ai une valeur de température toutes les heures et je souhaite en sortie en avoir une toutes les 10min. Or, je ne comprends pas très bien le fichier de sortie. Je m'attendais, pour une seule journée (de 0 à 2300 dans mon fichier brut) à obtenir quelque chose du type (avec n le nombre de valeurs de température): Code :
Code :
Auriez-vous une idée quant à la manière d'atteindre mon objectif? Comment par exemple coupler l'heure et la date (dans le fichier, heure=HrMn; date=Date) pour que l'interpolation se fasse dans le temps et non pas seulement en considérant les valeurs extrêmes du vecteur x. Merci. |
||||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com