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
  • sig - cartographie
  • Test
  • tidyverse
  • Transformation de données


Test

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 +2 sur 2 votes)
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 appliquer des conditions sur R ? if, else, elseif

0
dans fonctions utiles, Test
- ça ne sert à rien -- c\'est interessant - (score de +17 sur 19 votes)
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 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...

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

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

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.

Comment comparer une proportion à une valeur théorique ? binom.test

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

La fonction binom.test() réalise un test de conformité d’une proportion mesurée dans un échantillon et permet de savoir si cette proportion est différente d’une valeur cible. Pour cela on compare Pobs à Pthéo, dans un échantillon de n individus.

 

Pour réaliser ce test il est nécessaire d’avoir un échantillonnage aléatoire et que la condition suivante soit respecter :

n Pobs  ≥ 5  et n (1-Pobs ) ≥ 5

 

On utilise la fonction binom.test(x, n, p) où :

                               x : nombre de succès

                               n : nombre d’essais

                               p : probabilité théorique

 

Exemple :

              
# 92 « oui » sur 100 répondant est-ce différent de 80% ?
# L’hypothèse H0 : la proportion est égale à 80%
binom.test(92,100,0.8)
 
#        Exact binomial test
 
#data:  92 and 100
#number of successes = 92, number of trials = 100, p-value = 0.001592
#alternative hypothesis: true probability of success is not equal to 0.8
#95 percent confidence interval:
# 0.8484424 0.9648284
#sample estimates:
#probability of success
#                  0.92
 
 

La probabilité critique étant très inférieure à 0.05 nous rejetons l’hypothèse que la proportion est égale à 80%.

Proposé par Helene F.

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

Comment tester la significativité du coefficient de corrélation associé à deux variables ? cor.test

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

Le coefficient de corrélation, mesuré par la fonction cor(), permet de savoir à quel point deux variables quantitatives sont corrélées. Il existe 3 méthodes pour tester la significativité de ce coefficient : la méthode de « Pearson », de « Kendall », et de « Spearman ».

 

Pour réaliser ce test il est nécessaire d’avoir un échantillonnage aléatoire et qu’il n’y ait pas de données manquantes. Si les deux variables suivent une loi Normale et que leur relation est supposée linéaire on utilise la méthode de « Pearson ». Si la relation entre les deux variables est supposée monotone on utilise la méthode de « Kendall » ou de « Spearman ».


Nous utilisons les fonctions suivantes :

Soit x la première variable et y la deuxième variable.

 

Pour la méthode de « Pearson », cor.test(x,y,method= « pearson »)

Pour la méthode de « Kendall », cor.test(x,y,method= « kendall »)

Pour la méthode de « Spearman », cor.test(x,y,method= « spearm »)                                     

               

Exemple :

 
x <- c(44.4, 45.9, 41.9, 53.3, 44.7, 44.1, 50.7, 45.2, 60.1)
y <- c( 2.63.12.55.03.64.05.22.83.8)
 
cor.test(x, y, method = "kendall")
#        Kendall's rank correlation tau
 
#data:  x and y
#T = 26, p-value = 0.1194
#alternative hypothesis: true tau is not equal to 0
#sample estimates:
#      tau
#0.4444444
# tau est le coefficient de corrélation de Kendall
 
 
 
cor.test(x, y, method = "spearm")
#        Spearman's rank correlation rho
 
#data:  x and y
#S = 48, p-value = 0.0968
#alternative hypothesis: true rho is not equal to 0
#sample estimates:
#rho
#0.6
# rho est le coefficient de corrélation de Spearman
 
 
cor.test(x, y, method = "pearson")
#        Pearson's product-moment correlation
 
#data:  x and y
#t = 1.8411, df = 7, p-value = 0.1082
#alternative hypothesis: true correlation is not equal to 0
#95 percent confidence interval:
# -0.1497426  0.8955795
#sample estimates:
#      cor
#0.5711816
# cor est le coefficient de corrélation de Pearson
 
 

Proposé par Helene F.

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

Comment comparer deux moyennes sur R lorsque les données ne suivent pas une loi Normale ? wilcox.test

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

Le test non-paramétrique de Wilcoxon permet de tester l’égalité de deux moyennes lorsque l’hypothèse de normalité n’est pas validée. L’hypothèse H0 est « les moyennes sont égales » ou « la moyenne vaut une valeur x ».

Pour réaliser ce test il est nécessaire d’avoir un échantillonnage aléatoire et que les lois suivies par les deux variables étudiées soient les mêmes. Pour tester l’hypothèse H0 on utilise la fonction wilcox.test().

 
A<-subset(iris,Species=="setosa")[,4]
#échantillonnage de la largeur des pétales chez l’espèce Setosa.
 
B<-subset(iris,Species=="versicolor")[,4]
#échantillonnage de la largeur des pétales chez l’espèce Versicolor.
    
#On test si la moyenne de la largeur des pétales de l'espèce Setosa vaut 0.5 :
wilcox.test(A,0.5)
 
        Wilcoxon rank sum test with continuity correction
 
data:  A and 0.5
W = 1.5, p-value = 0.08259
alternative hypothesis: true location shift is not equal to 0 
 

La p-value vaut 0.08 ce qui est supérieure à 0.05. Cela signifie que la moyenne de la largeur des pétales pour l’espèce setosa n’est pas significativement différente de 0.5.

 

On test si la moyenne de la largeur des pétales de l’espèce Setosa et celle de Versicolor sont égales ou non :

 
wilcox.test(A,B)
 
        Wilcoxon rank sum test with continuity correction
 
data:  A and B
W = 0, p-value < 2.2e-16
alternative hypothesis: true location shift is not equal to 0
 
 

La p-value est inférieure à 0.05. Cela signifie que la moyenne de la largeur des pétales pour l’espèce setosa est significativement différente de celle de l’espèce Versicolor.

Proposé par Helene F.

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

Comment comparer deux moyennes avec R grâce au test de Student ? t.test

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

Le test de Student permet de tester l’égalité de deux moyennes. L’hypothèse H0 est « les moyennes sont égales » ou « la moyenne vaut une valeur x ».

Pour réaliser ce test il est nécessaire d’avoir un échantillonnage aléatoire de chaque individu et que les ces deux échantillons suivent une loi Normale. Pour tester l’hypothèse H0 on utilise la fonction t.test().

 
data(iris)
A<-subset(iris,Species=="setosa")[,2]
#On isole la 2ème colonne : la largeur des sépales
 
 

On commence par tester la normalité de cette variable grâce au test de Shapiro :

 
shapiro.test(A)
 
        Shapiro-Wilk normality test
 
data:  A
W = 0.9717, p-value = 0.2715
 
 

La p-value est supérieur à 0.05 on accepte donc l’hypothèse de normalité : la variable correspondant à la largeur des sépales suit donc une loi Normale.

On compare la moyenne de la variable et la valeur de 0.5cm :

 
t.test(x=A,mu=0.5)
 
        One Sample t-test
 
data:  A
t = 54.6189, df = 49, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 0.5
95 percent confidence interval:
 3.320271 3.535729
sample estimates:
mean of x
    3.428
 

Nous constatons que la p-value est bien supérieure à 0.05, nous rejetons donc l’hypothèse H0 : moy(Sepal.Width) = 0.05, la moyenne de cette variable est donc significativement différente de 0.05.

Nous comparons la moyenne de la longueur des sépales des espèces setosa et versicolor :

 
#On isole les 100 premières lignes qui correspondent aux données des espèces Setosa et Versicolor.
t.test(Sepal.Length~Species, data=iris[1:100,])
 
        Welch Two Sample t-test
 
data:  Sepal.Length by Species
t = -10.521, df = 86.538, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -1.1057074 -0.7542926
sample estimates:
    mean in group setosa mean in group versicolor
                   5.006                    5.936
 
 
La probabilité critique est inférieure à 0.05 (< 2.2e-16). Nous rejetons donc l’hypothèse H0 : moy(Sepal.Width)setosa = moy(Sepal.Width)versicolor. Cela signifie qu’en moyenne, la longueur des sépales est significativement différente d’une espèce à l’autre. La longueur des sépales dépend donc de l’espèce de l’Iris.

Proposé par Helene F.

Déjà 2 commentaires. Cliquez ici pour réagir.

Comment comparer le contenu de deux vecteurs ? %in%

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

L’opérateur %in% teste le contenu de deux vecteurs en retournant des éléments booléens (TRUE si l’élément est présent dans les deux vecteurs, False sinon), de la même longueur que le premier vecteur testé.

 

 
 
 
fleurs_A <- c("Bleuet", "Campanule", "Capucines", "Clématite", "Coquelicot")
 
fleurs_B <- c("Bleuet", "Bruyère", "Campanule", "Capucines", "Colchique", "Clématite", "Coquelicot", "Gentiane", "Géranium", "Iris")
 
fleurs_B %in% fleurs_A
#On teste si le contenu de « fleurs_B » est présent dans  «  fleurs_A »
 
 

 

On obtient :

 
fleurs_B %in% fleurs_A
TRUE FALSE  TRUE  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE  TRUE  TRUE
 
 

Proposé par Helene F.

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