mardi 5 avril 2011

Calculer les coefficients standardisés (beta) dans une régression multiple : la fonction lm.beta()

Quand on fait une régression multiple, on a parfois envie de comparer les variables prédictrices pour savoir laquelle est la plus importante. Or, on ne peut pas comparer directement les coefficients de régression des variables car ils dépendent de l’échelle de mesure des variables prédictrices et de la variable à expliquer. Une solution est de comparer les coefficients standardisés, aussi appelés les coefficients « beta ». Le problème, c’est que R ne les fournit pas par défaut. Mais en installant le package « QuantPsyc », on peut les obtenir facilement avec la fonction « lm.beta ». Voici un exemple :

On veut expliquer une variable y à l’aide de 2 prédicteurs (x1 et x2). On crée d’abord ces 3 variables :

>  y <- c(1,2,4,5,7,9,10) # création de la variable à expliquer
>  x1 <- c(3,5,5,9,14,13,17) # création de la première variable prédictrice
>  x2 <- c(175,190,210,240,265,302,341) # création de la seconde variable prédictrice

On lance ensuite la régression multiple :

>  summary(lm(y~x1+x2)) # résumé de l’analyse de régression multiple

Par défaut, R nous donne les coefficients de régression de chaque prédicteur (dans l’exemple, x1 et x2 ont tous les deux un coefficient d’environ 0.05, on les trouve dans la colonne « estimate »), mais on ne peut pas les comparer. Pour faire cela, on va installer le package (QuantPsyc) :

> install.packages("QuantPsyc") # installation du package
> library(QuantPsyc) # chargement du package

On utilise ensuite la fonction lm.beta :

> lm.beta(lm(y~x1+x2)) # on demande les coefficients standardisés

Ces 2 coefficients sont maintenant comparables (on voit d’ailleurs que x2 est bien plus important que x1). 

vendredi 25 mars 2011

Avoir un aperçu d'un objet : les fonctions head() et tail()

Il est parfois utile d'avoir un aperçu d'un objet (vecteur, matrice, tableau, etc...). Mais lorsque l'objet en question est très grand (des centaines ou des milliers de valeurs ou de lignes), il n'est pas pratique d'afficher l'objet en entier. Les fonctions head() et tail() permettent de résoudre ce problème en n'affichant qu'une petite partie de l'objet.
Pour illustrer, nous allons utiliser le fichier de données "Orange" qui est intégré à R par défaut.
Pour afficher l'objet Orange, il suffit d'écrire:

> Orange # affiche l'objet "Orange"

Ce tableau comprend 35 lignes et 3 colonnes. La fonction head() permet de n'afficher que les 6 premières lignes:

> head(Orange) # affiche les 6 premières lignes de l'objet "Orange"

Mais on peut afficher le nombre de lignes que l'on veut. Par exemple, si on veut afficher 3 lignes, il suffit d'écrire:

> head(Orange, 3) # affiche les 3 premières lignes de l'objet "Orange"

Si on met un nombre négatif, par exemple -10, on affichera toutes les lignes sauf les 10 dernières.

> head(Orange, -10) # affiche toutes les lignes sauf les 10 dernières

La fonction tail() permet de n'afficher que les 6 dernières lignes:

> tail(Orange) # affiche les 6 dernières lignes de l'objet "Orange"

La fonction tail() prend aussi les mêmes options que la fonctio head(), pour pouvoir afficher le nombre de lignes que l'on veut (avec un nombre positif ou négatif).

lundi 14 mars 2011

La fonction data()

La fonction data() permet d'obtenir une liste de fichiers de données prêts à l'emploi. Cela peut être utile quand on veut tester une fonction dans R mais que l'on n'a pas de données sous la main. Par exemple, imaginons que l'on veuille tester la fonction cor(). Il nous faut un fichier de données contenant 2 variables numériques. Pour trouver un tel fichier, il suffit d'écrire dans R:

data()

Cela va ouvrir une liste de fichiers déjà créés. Prenons par exemple le fichier "airquality". Pour savoir ce que représente ce fichier, il suffit d'écrire:

help(airquality)

L'aide nous indique qu'il s'agit de mesures de la qualité de l'air effectuées à New-York de mai à septembre 1973. On voit que ce fichier comprend plusieurs variables numériques, on peut donc l'utiliser pour tester la fonction cor. Par exemple, on peut calculer le coefficient de corrélation entre le vent (Wind) et la température (Temp) de la manière suivante :

cor(airquality$Wind, airquality$Temp)

mardi 8 mars 2011

RStudio : un très bon IDE pour R

RStudio est un nouvel environnement de développement pour R. Il présente de nombreux avantages :

  • il est gratuit
  • il est multi-plateforme (Windows, Mac OS X, Linux)
  • son interface est simple et intuitive
  • il permet d'afficher un graphique sans faire disparaître le précédent
  • il permet d'exporter un graphique très simplement
  • il propose une complétion automatique du code

Bref, je trouve que RStudio permet de travailler sous R d'une manière beaucoup plus agréable.
A essayer donc...

lundi 21 février 2011

Arrondir un nombre : quelques fonctions

Pour arrondir un nombre, j'utilise le plus souvent la fonction round(). Cette fonction prend 2 arguments : un vecteur numérique et un nombre indiquant le nombre de décimales à garder. Voici un exemple:
a <- 1.12345 # création d'un objet a contenant le nombre 1.12345
round(a, 2) # on arrondit le nombre en gardant 2 décimales donc 1.12

Il existe d'autres fonctions pour arrondir un nombre.
ceiling(a) # arrondit à l'entier supérieur donc 2
floor(a) # arrondit à l'entier inférieur donc 1
signif(a, 2) # arrondit le nombre en gardant 2 chiffres donc 1.1

lundi 14 février 2011

La fonction tapply()

La fonction tapply() permet d'appliquer une fonction à un vecteur selon les modalités d'un facteur.
Cette fonction prend 3 arguments. Le premier argument spécifie un vecteur numérique sur lequel on veut appliquer la fonction, le deuxième argument spécifie la façon dont ce vecteur sera divisé en groupes (la division se fait sur la base des niveaux du second argument), le troisième argument spécifie la fonction qui sera appliquée à ces groupes.

Voici un exemple:
# on a 2 variables concernant 4 personnes : l'âge et le genre 
Age <- c(12,15,23,29) # création de la variable Age
Genre <- c("homme", "homme", "femme", "femme") # création de la variable Genre
data <- data.frame(Age, Genre) # on met les 2 variables dans un tableau
# On souhaite connaître l'âge moyen selon le genre
tapply(data$Age, data$Genre, mean)

vendredi 11 février 2011

La fonction apply()

La fonction apply() permet d'appliquer une fonction (par exemple une moyenne, une somme) à chaque ligne ou chaque colonne d'un tableau de données. Cette fonction prend 3 arguments dans l'ordre suivant:

  • nom du tableau de données
  • un nombre pour dire si la fonction doit s'appliquer aux lignes (1), aux colonnes (2) ou aux deux (c(1,2))
  • le nom de la fonction à appliquer

Voici un exemple. L'objectif est de calculer la somme de chaque ligne ou de chaque colonne d'un tableau :
# On crée d'abord une matrice avec 2 lignes et 3 colonnes
data<-matrix(c(1,2,3,4,5,6), nrow=2)
# On donne un nom aux lignes et aux colonnes
colnames(data)=c("C1","C2","C3")
rownames(data)=c("L1","L2")
# On utilise la fonction apply() pour faire la somme de chaque ligne
apply(data, 1, sum)
# Pour faire la somme de chaque colonne, on remplace 1 par 2
apply(data, 2, sum)