Les posteurs les plus actifs de la semaine
Aucun utilisateur |
Sujets les plus vus
syntaxe_nombreuses variables à expliquer_LM
2 participants
Page 1 sur 1
syntaxe_nombreuses variables à expliquer_LM
Bonjour,
Je souhaiterais savoir comment intégrer facilement de nombreuses variables à expliquer dans la formule d'une régression linéaire.
Je dispose d'un tableau de données avec 680 variables à expliquer et 3 variables explicatives. Je souhaite tout traiter d'un seul coup car toutes mes variables à expliquer sont corrélées, il s'agit d'une même mesure effectuée à chaque fois sur une longueur d'onde différente. Je ne peux donc pas les considérer séparément (impossible à interpréter ensuite).
Je souhaite procéder à une analyse canonique discriminante et j'ai pour cela besoin de créer en premier lieu un modèle linéaire. Je dois intégrer dans ce modèle les 3 première colonne de mon tableau comme variables explicatives catégorielles et les 680 autres colonnes comme variables à expliquer. Je voudrais pouvoir intégrer les 680 colonnes sans avoir à toutes les noter. Sauriez-vous comment faire?
Merci d'avance!
Je souhaiterais savoir comment intégrer facilement de nombreuses variables à expliquer dans la formule d'une régression linéaire.
Je dispose d'un tableau de données avec 680 variables à expliquer et 3 variables explicatives. Je souhaite tout traiter d'un seul coup car toutes mes variables à expliquer sont corrélées, il s'agit d'une même mesure effectuée à chaque fois sur une longueur d'onde différente. Je ne peux donc pas les considérer séparément (impossible à interpréter ensuite).
Je souhaite procéder à une analyse canonique discriminante et j'ai pour cela besoin de créer en premier lieu un modèle linéaire. Je dois intégrer dans ce modèle les 3 première colonne de mon tableau comme variables explicatives catégorielles et les 680 autres colonnes comme variables à expliquer. Je voudrais pouvoir intégrer les 680 colonnes sans avoir à toutes les noter. Sauriez-vous comment faire?
Merci d'avance!
CupOfAppleTea- Nombre de messages : 28
Date d'inscription : 14/12/2012
Re: syntaxe_nombreuses variables à expliquer_LM
...alors là tu m'as perdu au bout du 2e paragraphe.
Nik- Nombre de messages : 1606
Date d'inscription : 23/05/2008
Re: syntaxe_nombreuses variables à expliquer_LM
Mon objectif est de procéder à une analyse canonique discriminante.
Pour faire simple, je dispose du jeu de données suivant:
_Un tableau de 680 colonnes.
_ la première colonne identifie les individus sur lesquelles j'ai mesuré chacune des variables.
_ les colonne 2, 3 et 4 contiennent des variables explicatives de type facteur.
_ les colonnes 5 à 680 contiennent les variables à expliquer.
Je dois d'abord faire un modèle linéaire que je rentrerai ensuite dans la formule de l'analyse canonique discriminante.
Je dois donc dans mon modèle linéaire considérer mes 3 variables explicatives ainsi que mes 676 variables à expliquer.
La formule du modèle linéaire étant du type : y~x je dois rentrer 676 variables dans y. Ce que je cherche, c'est une formule me permettant de ne pas avoir à spécifier mes 676 variables une par une. Je voudrais pouvoir les rentrer en une seule fois. Un truc du type:
(avec "a" mon tableau de données)
Seulement, "a[,5:680]" ne fonctionne pas. J'obtiens le message d'erreur suivant:
Est-ce plus clair?
Pour faire simple, je dispose du jeu de données suivant:
_Un tableau de 680 colonnes.
_ la première colonne identifie les individus sur lesquelles j'ai mesuré chacune des variables.
_ les colonne 2, 3 et 4 contiennent des variables explicatives de type facteur.
_ les colonnes 5 à 680 contiennent les variables à expliquer.
Je dois d'abord faire un modèle linéaire que je rentrerai ensuite dans la formule de l'analyse canonique discriminante.
Je dois donc dans mon modèle linéaire considérer mes 3 variables explicatives ainsi que mes 676 variables à expliquer.
La formule du modèle linéaire étant du type : y~x je dois rentrer 676 variables dans y. Ce que je cherche, c'est une formule me permettant de ne pas avoir à spécifier mes 676 variables une par une. Je voudrais pouvoir les rentrer en une seule fois. Un truc du type:
(avec "a" mon tableau de données)
- Code:
mod=lm(a[,5:680]~a$Var1*a$Var2*a$Var3)
Seulement, "a[,5:680]" ne fonctionne pas. J'obtiens le message d'erreur suivant:
- Code:
Error in model.frame.default(formula = a[, 5:680] ~ flatitude * ftype * :
invalid type (list) for variable 'a[, 5:680]'
Est-ce plus clair?
CupOfAppleTea- Nombre de messages : 28
Date d'inscription : 14/12/2012
Re: syntaxe_nombreuses variables à expliquer_LM
Je ne sais pas si on parle de la même chose mais une analyse discriminante ne sait pas gérer une réponse multiple. En plus, avec plus de 600 variables on est vraiment dans un degré élevé de multivarié où il est extrêmement peu probable que les réponses soient indépendantes.
Une analyse discriminante cherche à maximiser une inertie inter-classe dans un tableau de données quand on connait déjà les dites classes. Ce qui est expliqué c'est donc le facteur de différenciation en classe. Les descripteurs des individus servent à caractériser également les groupes.
A la lmite tu es plutôt dans le champs de la MANOVA mais ça me parait là aussi peu réalisable. Peut être devrais tu mieux exposer ton questionnement avant de te lancer dans des choses abracadabrantesques.
Une analyse discriminante cherche à maximiser une inertie inter-classe dans un tableau de données quand on connait déjà les dites classes. Ce qui est expliqué c'est donc le facteur de différenciation en classe. Les descripteurs des individus servent à caractériser également les groupes.
A la lmite tu es plutôt dans le champs de la MANOVA mais ça me parait là aussi peu réalisable. Peut être devrais tu mieux exposer ton questionnement avant de te lancer dans des choses abracadabrantesques.
Nik- Nombre de messages : 1606
Date d'inscription : 23/05/2008
Re: syntaxe_nombreuses variables à expliquer_LM
Voici un lien pour le package que je souhaite utiliser:
http://cran.r-project.org/web/packages/candisc/candisc.pdf
Comme vous pourrez le lire dans la partie "description" dans la page 1 du .pdf, ce package généralise l'analyse canonique discriminante, limitée à une one-way MANOVA, à une multi-way MANOVA.
Cette méthode permet donc de gérer une réponse multiple puisqu'elle permet de décrire les relations linéaires qui existent entre 2 ensembles de variables mesurées sur les mêmes individus.
Comme vous le faites remarquer, les variables de réponse ne sont en effet pas indépendantes puisque chaque variable correspond dans mon cas à une même mesure effectuée sur une longueur d'onde différente (mesure d'absorbance) : var1 = mesure sur longueur d'onde 1; var2 = mesure effectuée sur longueur d'onde 2; etc.
Enfin, pour en revenir à mon problème de départ, j'ai donc effectué une mesure d'absorbance sur des longueurs d'onde allant de 350 à 1000 nanomètres. J'obtiens donc pour chaque individu (ici une feuille) une courbe d'absorbance sur l'ensemble du spectre mesuré. Afin de traiter ces données, je considère chaque longueur d'onde comme une variable de réponse. Je me retrouve donc avec autant de variable que de longueur d'onde.
J'ai repéré dans un article que cette méthode était utilisée pour traiter ce type de données, c'est pourquoi je m'y intéresse.
http://cran.r-project.org/web/packages/candisc/candisc.pdf
Comme vous pourrez le lire dans la partie "description" dans la page 1 du .pdf, ce package généralise l'analyse canonique discriminante, limitée à une one-way MANOVA, à une multi-way MANOVA.
Cette méthode permet donc de gérer une réponse multiple puisqu'elle permet de décrire les relations linéaires qui existent entre 2 ensembles de variables mesurées sur les mêmes individus.
Comme vous le faites remarquer, les variables de réponse ne sont en effet pas indépendantes puisque chaque variable correspond dans mon cas à une même mesure effectuée sur une longueur d'onde différente (mesure d'absorbance) : var1 = mesure sur longueur d'onde 1; var2 = mesure effectuée sur longueur d'onde 2; etc.
Enfin, pour en revenir à mon problème de départ, j'ai donc effectué une mesure d'absorbance sur des longueurs d'onde allant de 350 à 1000 nanomètres. J'obtiens donc pour chaque individu (ici une feuille) une courbe d'absorbance sur l'ensemble du spectre mesuré. Afin de traiter ces données, je considère chaque longueur d'onde comme une variable de réponse. Je me retrouve donc avec autant de variable que de longueur d'onde.
J'ai repéré dans un article que cette méthode était utilisée pour traiter ce type de données, c'est pourquoi je m'y intéresse.
CupOfAppleTea- Nombre de messages : 28
Date d'inscription : 14/12/2012
Re: syntaxe_nombreuses variables à expliquer_LM
Une MANOVA suppose que les variables prédites sont indépendantes. Si ce n'est pas le cas alors les résultats sont incertains. Il existe des tentatives pour remédier à ce problème comme la 50-50 MANOVA. Il n'en reste pas moins que plus de 600 variables à expliquer ça reste du domaine de l'utopie à mon avis.
Nik- Nombre de messages : 1606
Date d'inscription : 23/05/2008
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum