1. Grâce à ce formulaire vous pouvez proposer une astuce ou un script sur R.
  2. Votre script doit pouvoir être lancé en l'état. Veuillez penser à :
    • inclure le chargement des "library" nécessaires
    • construire un petit jeu de données si besoin est.
    • commenter les lignes de codes pour en faciliter la compréhension.
  3. Le titre de votre script ou astuce doit être clair et explicite.
  4. Pensez à mettre votre code entre les balises [R] et [/R]; Pour cela, vous pouvez utiliser le bouton

Vous pouvez utiliser vos comptes Facebook, twitter ou google pour vous identifer (google est compatible yahoo, openID...)
L'ideal étant de vous connecter si vous avez un compte utilisateur, ou faire une demande de compte utilisateur si vous n'en avez pas encore.
Créer un compte va vous permettre de pouvoir éditer vos codes et de mettre en avant votre site internet.
Sinon vous pouvez soumettre anonymement en remplissant les champs ci-après.







Choisissez les catégories correspondantes à votre Code:

  • algorithmique
  • Analyse de survie
  • base indispensable
  • bayésien
  • configuration de R
  • exportation de données
  • fonctions utiles
  • graphique
  • importation de données
  • inférence
  • manipulation de données
  • message d'erreur
  • modélisation
  • Non classé
  • optimisation
  • planification
  • programmer avec R
  • regression linéaire
  • Test
  • Transformation de données


Les scripts R de Helene F

Comment faire une Analyse en Composantes Principale (ACP) sur R ? PCA, plot.PCA

0
dans fonctions utiles, manipulation de données
- ça ne sert à rien -- c\'est interessant - (score de +2 sur 4 votes)
Loading ... Loading ...

La fonction PCA() permet d’effectuer une ACP.

 
library(FactoMineR)
res_pca <- PCA (iris, quali.sup=5)
#On réalise une ACP sur les 4 variables quantitatives du jeu de données iris
#La 5<sup>ème</sup> variable qui correspond au nom de la variété est qualitative
#Nous plaçons cette variable en supplémentaire,
#cette variable ne participera donc pas à la construction de l’ACP,
#mais elle apportera de l’information supplémentaire
 
plot.PCA(res_pca,col.quali="blue", label="quali")
#La fonction plot.PCA contient de nombreux paramètres modulables
#ici nous choisissons la couleur de la variable qualitative
#et de cacher l’étiquette des individus grâce au paramètre « label »
 
 

Pour pouvoir décrire les résultats de cette analyse nous avons besoin d’étudier les coefficients de corrélation. On obtient ces coefficients grâce à la fonction dimdesc().

 
dimdesc(res_pca)
 
 

Proposé par Helene F.

Pas encore de commentaire, cliquez ici pour réagir.

Comment analyser les résidus d’une régression linéaire simple sur R ? rstudent

0
dans fonctions utiles
- ça ne sert à rien -- c\'est interessant - (score de +3 sur 3 votes)
Loading ... Loading ...

Contrairement à la fonction residuals(), la fonction rstudent() permet d’obtenir des résidus de même variance. Ce critère est nécessaire pour pouvoir étudier et comparer les résidus.

 
reg_simp <- lm(Sepal.Length~Petal.Length, data=iris)
#On réalise une régréssion linéaire
 
residus=rstudent(reg_simp)
#On calcule les residus
 
plot(residus, ylab="Résidus")
#On represente les résidus dans un graphique
 
abline(h=c(-2,0,2), lty=c(2,1,2))
#La fonction abline permet d'ajouter des droites d'ordonnées -2, 0 et 2
 

En théorie, 95% des résidus se trouvent dans l’intervalle [-2,2]. C’est le cas ici puisque seulement 4 individus sur 150 sont en dehors de cet intervalle. Les individus à l’extérieur de l’intervalle sont des individus extrêmes. 

 

Proposé par Helene F.

Pas encore de commentaire, cliquez ici pour réagir.

Comment effectuer une régression linéaire simple sur R ? lm

0
dans fonctions utiles
- ça ne sert à rien -- c\'est interessant - (score de +1 sur 3 votes)
Loading ... Loading ...

La régression linéaire simple permet de modéliser une relation linéaire entre deux variables quantitatives dans le but d’expliquer un phénomène ou de le prédire.

 
#On commence par représenter les données :
plot(Sepal.Length~Petal.Length, data=iris)
#On constate que la relation entre la largeur des sépales et celle des pétales semble être linéaire
 
#On estime les paramètres :
Reg.simp <- lm(Sepal.Length~Petal.Length, data=iris)
 
#Call:
#lm(formula = Sepal.Length ~ Petal.Length, data = iris)
 
#Residuals:
#     Min       1Q   Median       3Q      Max
#-1.24675 -0.29657 -0.01515  0.27676  1.00269
 
#Coefficients:
#             Estimate Std. Error t value Pr(>|t|)   
#(Intercept)   4.30660    0.07839   54.94   <2e-16 ***
#Petal.Length  0.40892    0.01889   21.65   <2e-16 ***
#---
#Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
 
#Residual standard error: 0.4071 on 148 degrees of freedom
#Multiple R-squared:   0.76,     Adjusted R-squared:  0.7583
#F-statistic: 468.6 on 1 and 148 DF,  p-value: < 2.2e-16
 
 

On obtient une matrice “Coefficients” qui contient pour chaque paramètre son estimation, son écart-type estimé et la p-value. Si la p-value est inférieure à 0.05 cela signifie que la relation entre les deux variables est significative.

Proposé par Helene F.

Pas encore de commentaire, cliquez ici pour réagir.

Comment calculer la puissance d’un test d’égalité des moyennes de deux populations sur R ? power.t.test

0
dans Test
- ça ne sert à rien -- c\'est interessant - (score de +1 sur 1 votes)
Loading ... Loading ...

Le test d’égalité teste l’hypothèse H0 : µ1 = µ2. La puissance d’un test est la probabilité de rejeter l’hypothèse H0 sans commettre une erreur, c’est-à-dire lorsque µ1 est effectivement  différente de µ2.

 

Nous voulons donc calculer la puissance du test avec un nombre n d’individus grâce à la fonction power.t.test().

 

Exemple : dans une expérience nous avons un écart type de 1.7, une moyenne de 1 et on prend le seuil classique α=5%. On calcule la puissance du test avec 15 individus par groupe.

 
power.t.test(n=15, delta=1, sd=1.7, sig.level=0.05)$power
[1] 0.3430475
 
   

Si l’on décide de n’utiliser que 15 individus dans l’expérimentation, alors on aura 34% de chances de détecter une différence entre les moyennes des différents groupes, ce qui est peu.

Proposé par Helene F.

Pas encore de commentaire, cliquez ici pour réagir.

Comment faire une boucle repeat avec R ? repeat

0
dans fonctions utiles
- ça ne sert à rien -- c\'est interessant - (pas encore de vote)
Loading ... Loading ...

 
 
i <- 0
repeat {
     i <- i + 1;
     print(i);
     if (i >= 10) break;
}
 
[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
 

Proposé par Helene F.

Pas encore de commentaire, cliquez ici pour réagir.

Comment appliquer des conditions sur R ? if, else, elseif

0
dans fonctions utiles, Test
- ça ne sert à rien -- c\'est interessant - (score de +10 sur 12 votes)
Loading ... Loading ...

Les conditions permettent d’exécuter une commande en fonction d’une ou plusieurs conditions. La forme la plus simple s’écrit :

 

> if (condition){

+    commande1

+    commande2

+    …

+}

 

Exemple :

 
B<-TRUE
x<-2
 
if (B==TRUE){
     x<-x+1
     y<-10
}
 
x
[1] 3
y
[1] 10
 
 

Dans ce cas là si B est différent de TRUE rien n’est effectué. Pour ajouter une des commandes lorsque que la première condition n’est pas vérifiée on utilise else :

 

> if (condition){

+    commande1

+    commande2

+    …

} else (condition){

+    commande1

+    commande2

+    …

+}

 

Exemple :

 
B<-FALSE
x<-2
 
if (B==TRUE){
     x<-x+1
     y<-10
}else{
     x<-x-1
     y<-5
}
 
x
[1] 1
y
[1] 5
 
   

Dans ce cas-là il n’y a qu’une condition et son contraire. Si on désire ajouter une condition nous pouvons utiliser else if :

 

> if (condition){

+    commande1

+    commande2

+    …

} else if(condition){

+    commande1

+    commande2

+    …

+} else(condition){

+    commande1

+    commande2

+    …

+}

 

Exemple :

 
t<-7
x<-2
 
if (t>10){
     x<-x+2
     y<-10
} else if (5<=t & t<10){
     x<-x+1
     y<-5
 }else {
     x<-x-1
     y<-3
}
 
x
[1] 3
y
[1] 5
 
 

Proposé par Helene F.

Pas encore de commentaire, cliquez ici pour réagir.

Comment utiliser la Lois Gamma sur R ?

0
dans fonctions utiles
- ça ne sert à rien -- c\'est interessant - (pas encore de vote)
Loading ... Loading ...

La loi Gamma ou d’Euler est une loi très utiles pour les propriétés de décroissance rapide. La loi Gamma peut décrire des phénomènes de durée de vie, pour l’étude du temps écoulé entre deux faits.

 

Sur R, les options shape et scale correspondent respectivement α et β.

Nous pouvons calculer la densité de probabilité de la loi G(1,3) pour la valeur x=2 grâce à la fonction dgamma() :

 
X<-2
alpha<-1
beta<-3
dgamma(x,shape=alpha,scale=beta)
 
  

Nous pouvons calculer la probabilité que x soit inférieur ou égal à 2 sur la loi G(1,3), c’est-à-dire calculer la fonction de répartition F(2) grâce à la fonction pgamma() :

 
X<-2
alpha<-1
beta<-3
pgamma(x,shape=alpha,scale=beta)
 
   

Nous pouvons également calculer la probabilité que x soit supérieur à 2 sur la loi G(1,3) :

 
X<-2
alpha<-1
beta<-3
pgamma(x,shape=alpha,scale=beta, lower.tail=FALSE)
 
   

Nous pouvons calculer le seuil de x correspondant aux 2.5% plus hautes valeurs de x, c’est-à-dire F(xi) = 0.025. Pour cela nous utilisons la fonction qgamma() :

 
X<-2
alpha<-1
beta<-3
qgamma(x,shape=alpha,scale=beta, lower.tail=FALSE)
 
  

Il est possible de réaliser des simulations d’une loi Gamma grâce à la fonction rgamma().

Proposé par Helene F.

Pas encore de commentaire, cliquez ici pour réagir.

Comment faire un test du chi-deux sur R ? chisq.test

1
dans Test
- ça ne sert à rien -- c\'est interessant - (score de +1 sur 1 votes)
Loading ... Loading ...

Le test du khi2 permet de tester l’indépendance de deux variables pour cela nous calculons la valeur de la statistique  ainsi que la probabilité critique.

 

Pour pouvoir réaliser ce test il est nécessaire d’avoir un échantillonnage aléatoire dans chaque échantillon et que chaque effectif théorique soit supérieur ou égal à 5.

 

Pour effectuer ce test nous utilisons la fonction chisq.test().

 

Exemple :

Nous nous demandons si nombre de fumeurs dépend de l’âge ou non, c’est-à-dire : l’âge influence t’il la propension à fumer?

 
mat<-matrix(c(15,10,15,20,10,10),3)
dimnames(mat) <- list(c("15-30","31-45","46-70") ,c("oui","non"))
 
mat
      oui non
15-30  15  20
31-45  10  10
46-70  15  10
 
chisq.test(mat)
 
#        Pearson's Chi-squared test
 
#data:  mat
#X-squared = 1.7143, df = 2, p-value = 0.4244
 

La p-value est supérieure à 0.05, nous ne pouvons donc pas considérer que les variables sont liées.

Proposé par Helene F.

1 commentaire. Cliquez ici pour réagir.

Comment comparer deux proportions appariées sur R ? mcnemar.test

0
dans Test
- ça ne sert à rien -- c\'est interessant - (score de +2 sur 2 votes)
Loading ... Loading ...

Le test de Mac Nemar Permet de savoir si deux proportions appariées mesurées sont identiques ou non.

 

Pour pouvoir réaliser ce test il est nécessaire d’avoir un échantillonnage aléatoire dans chaque échantillon, que chaque effectif soit supérieur ou égal à 5 et que tous les individus passent d’un état à l’autre.

 

Pour appliquer le test de Mac Nemar nous utilisons la fonction mcnemar.test().

 

Exemple :

Nous nous demandons si la proportion de fumeur  a varié  dans le temps ?

 
mat<-matrix(c(20,2,10,28),2)
dimnames(mat) <- list("avant" = c("fumeur", "non    fumeur"),"apres" = c("fumeur", "non fumeur"))
 
mat
            apres
avant        fumeur non fumeur
  fumeur         20         10
  non fumeur      2         28
 
mcnemar.test(mat)
 
#        McNemar's Chi-squared test with continuity correction
 
#data:  mat
#McNemar's chi-squared = 4.0833, df = 1, p-value = 0.04331
 
 

La p-value est inférieure à 0.05, nous considérons donc que les proportions sont significativement différentes : nous constatons que la proportion de fumeur  a donc varié  dans le temps, nous pouvons ajouter que celle-ci a tendance à diminuer.

Proposé par Helene F.

Pas encore de commentaire, cliquez ici pour réagir.

Comment comparer deux proportions indépendantes ? prop.test

0
dans Test
- ça ne sert à rien -- c\'est interessant - (score de +4 sur 4 votes)
Loading ... Loading ...

La fonction prop.test() permet de savoir si deux proportions mesurées sont identiques ou non.

 

Pour réaliser ce test il est nécessaire d’avoir un échantillonnage aléatoire dans chaque échantillon, que chaque effectif soit supérieur ou égal à 5 et que tous les échantillons soient indépendants.

 

Exemple : On se demande si la proportion de fumeuses est différente de celle des fumeurs

 
mat<-matrix(c(15,10,15,20),2)
dimnames(mat) <- list(c("homme","femme") ,c("oui","non"))
 
> mat
      oui non
homme  15  15
femme  10  20
 
#On obtient une matrice avec 4 effectifs suppérieurs à 5
 
prop.test(mat)
 
#        2-sample test for equality of proportions with continuity
#        correction
 
#data:  mat
#X-squared = 1.0971, df = 1, p-value = 0.2949
#alternative hypothesis: two.sided
#95 percent confidence interval:
# -0.1125679  0.4459012
#sample estimates:
#   prop 1    prop 2
#0.5000000 0.3333333
 
 

La p-value est supérieure à 0.05, nous considérons donc que les proportions ne sont pas significativement différentes : la proportion de fumeuses n’est pas significativement différente de celle des fumeurs.

Proposé par Helene F.

Pas encore de commentaire, cliquez ici pour réagir.
Formation logiciel R