IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

régression linéaire calcul


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2014
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2014
    Messages : 59
    Par défaut régression linéaire calcul
    Bonjour,

    J'ai crée un modèle de régression linéaire de température en fonction de l'altitude, ma variable contenant le modèle s'appelle "modele"

    J'ai crée ce modèle à partir d'une centaine de données.

    Maintenant j'ai une matrice contenant une quantité assez importante d'altitude. Je voudrais calculer les températures à partir du modèle de regression.

    Comment faire ? En sachant que je peux convertir ma matrice en autre structure, c'est pas très important pour le moment.

    En clair je veux ça :
    Données d'entrée:Altitude ----> mon modele -----> Données de sortie:température

    Quelqu'un sait comment faire ?

    Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur en études décisionnelles
    Inscrit en
    Février 2013
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur en études décisionnelles

    Informations forums :
    Inscription : Février 2013
    Messages : 134
    Par défaut
    Bonjour,

    Utilisez la fonction predict.lm. Pour obtenir de l'aide à ce sujet, tapez : ?predict.lm
    En lisant l'aide et en ajoutant bien le paramètre type="response", vous devriez arriver à faire ce que vous souhaitez.

    Bon courage

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2014
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2014
    Messages : 59
    Par défaut
    Je m'en sort pas, voici ce que je fais:

    j'ai 2 matrices: une "temp" avec 204 températures et beaucoup de valeurs manquantes
    Et une matrice "alt" de la même dimension de "temp" mais avec toutes les altitudes.

    En clair j'ai 204 points où j'ai mes températures, je veux faire un modèle de regression linéaire en fonction de mes altitudes pour pouvoir interpoler mes données sur toute la matrice.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    modele <- lm(temp[temp>0]~alt[temp>0], na.action=na.omit)  # je veux mes température en fonction de mes altitudes
    result <- predict.lm(modele,alt,type="response", na.action=na.omit) # j'ai essayé plusieurs commandes avec predict aussi (ici alt est transformé en data.frame)
    Mais dans chaque cas, j'ai l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Message d'avis :
    'newdata' had 29036739 rows but variables found have 204 rows
    Et ça me calcule seulement 204 valeurs.... alors que je rentre des millions d'altitude (je veux en sortie mes millions de températures, calculées en fonction de mes altitudes...)

    De plus, R m'oblige à convertir ma matrice alt en data.frame....

  4. #4
    Membre chevronné
    Inscrit en
    Mars 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 208
    Par défaut
    Tu peux nous montrer tes matrices? (au moins l'entête avec head) et si possible le résultat que tu souhaiterais obtenir sur les premières lignes par exemple?

    Quand je vois ton modèle sans en savoir plus sur la structure des données, je ne comprend pas ce que tu fais.

    D'autre part, s'il s'agit juste de faire une interpolation, tu peux directement utiliser une fonction comme approxfun().

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2014
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2014
    Messages : 59
    Par défaut
    En fait je cherche juste à utiliser le modèle de régression linéaire.

    Le modèle de régression c'est y = ax+b

    Dans le modèle, il y a les valeurs des coefficients a et b.

    Je veux savoir comment les utiliser.

    Imaginons que mon modèle soit fait à partir de 100 données.

    maintenant j'ai ceci par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    x <- c(2,451,256,21,45,87,35)
    Je veux calculer mes y.

    Comment faire ?

    Dans un premier temps j'ai fait ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    b <- modele$coefficients[1]
    a <- modele$coefficients[2]
    y <- (a*x + b)
    Mais il doit y avoir plus simple non ?

  6. #6
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Par défaut
    Bonjour,

    La réponse vous a déjà été donnée :

    Citation Envoyé par Emmanuel R Voir le message
    Utilisez la fonction predict.lm. Pour obtenir de l'aide à ce sujet, tapez : ?predict.lm
    En lisant l'aide et en ajoutant bien le paramètre type="response", vous devriez arriver à faire ce que vous souhaitez.
    Petite précision : l'élément à spécifier pour le paramètre "newdata" doit être de type "dataframe" (comme cela est indiqué dans la documentation de la fonction "predict.lm").

    Bonne continuation


    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/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

Discussions similaires

  1. Régression linéaire, loi F, t, normale et Khi-2
    Par philben dans le forum Contribuez
    Réponses: 3
    Dernier message: 20/08/2020, 14h22
  2. Calcul de régression linéaire en C#
    Par olibara dans le forum C#
    Réponses: 4
    Dernier message: 28/12/2010, 13h00
  3. calcul de pente de régression linéaire
    Par I.Z.M.M dans le forum SSAS
    Réponses: 0
    Dernier message: 23/03/2010, 13h23
  4. Module qui permet de faire des régression linéaire ?
    Par Anti-T dans le forum Calcul scientifique
    Réponses: 3
    Dernier message: 04/09/2009, 13h28
  5. [NaN] Calcul d'une régression linéaire
    Par GLDavid dans le forum Langage
    Réponses: 1
    Dernier message: 24/10/2006, 12h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo