Les posteurs les plus actifs de la semaine
c@ssoulet
Tester variance1<variance2 : Fisher? Vote_lcapTester variance1<variance2 : Fisher? Voting_barTester variance1<variance2 : Fisher? Vote_rcap 


Tester variance1<variance2 : Fisher?

Page 1 sur 2 1, 2  Suivant

Aller en bas

Tester variance1<variance2 : Fisher? Empty Tester variance1<variance2 : Fisher?

Message par sandykilo le Dim 2 Mai 2010 - 10:26

Bonjour à tous!
Je dois comparer deux types d'échantillons de sol : neuf échantillons sur une même parcelle, comparés à 4 ou 5 échantillons sur des parcelles différentes.
Le but étant de vérifier si la variabilité locale est inférieure à la variabilité globale.
Je pensais faire un test de Fisher, mais sur Excel 2007, il n'est possible que de faire :
H0 : var1=var2
H1 : var1/= var2

Alors que je voudrais :
H0 : var1<= var2
H1 : var1 > var2

Il me semble que c'est possible pour les moyennes, avec Student... Mais que faire pour les variances? Peut-être qu'un autre test conviendrait à résoudre ce problème... Quelqu'un pourrait-il m'aider?
Merci.

Sandrine

sandykilo

Nombre de messages : 14
Date d'inscription : 02/05/2010

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par popotam le Dim 2 Mai 2010 - 15:08

Bonjour,

Est-ce que Excel donne aussi un intervalle de confiance pour le quotient des variances ?

popotam

Nombre de messages : 371
Date d'inscription : 27/09/2006

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par sandykilo le Dim 2 Mai 2010 - 15:59

Bonjour,

Si vous parlez d'une p-valeur, oui, et elle est modulable (je l'ai mise à 0.05).
Malheureusement, aucune possibilité de changer l'hypothèse nulle...

sandykilo

Nombre de messages : 14
Date d'inscription : 02/05/2010

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par popotam le Lun 3 Mai 2010 - 7:02

Non, je parle d'un intervalle de confiance pour var1/var2.

popotam

Nombre de messages : 371
Date d'inscription : 27/09/2006

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par sandykilo le Lun 3 Mai 2010 - 7:13

Bonjour,
Non, je ne vois pas d'intervalle de confiance. Voilà ce que donne le résultat pour 'test d'égalité des variances (F-Test)' :
Moyenne, variance, observations, degré de liberté, F, P (F<=f) unilatéral, Valeur critique pour F (unilatéral).
Dans les données à introduire pour effectuer le test, juste les deux matrices, et le seuil de significativité.

N'existe-t-il pas un autre test pour comparer les variances (pas seulement leur égalité)?
Merci pour votre aide.

sandykilo

Nombre de messages : 14
Date d'inscription : 02/05/2010

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par Eric Pagot le Lun 3 Mai 2010 - 10:29

Avec le test de Fisher, l'hypothèse H0 est en fait var1/var2=1 et H1 var1/var2 différent de 1.
Donc, si l'on veut prouver que var1>var2, je pense qu'il faut appliquer le même raisonnement que pour un student cad test var1/var2 en unilatéral, ce qui reviendra à tester var1/var2>=1 contre var1/var2<1.
C'est la démarche que j'ai retrouvé à https://moodle.insa-rouen.fr/mod/resource/view.php?id=680

Eric Pagot

Nombre de messages : 124
Age : 55
Date d'inscription : 15/02/2008

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par popotam le Lun 3 Mai 2010 - 17:13

sandykilo a écrit:Bonjour,
Voilà ce que donne le résultat pour 'test d'égalité des variances (F-Test)' :
Moyenne, variance, observations, degré de liberté, F, P (F<=f) unilatéral, Valeur critique pour F (unilatéral).

Et dans tout ça, ou est le résultat du test de {var1=var2} ?

Il est très simple de construire un intervalle de confiance pour var1/var2 avec une loi de Fisher, et je suppose que le test est basé là-dessus, mais je ne vois toujours pas comment tu procèdes avec Excel.

Avec cet intervalle de confiance il est facile de faire un test de {var1=var2} aussi bien que {var1<var2}.

popotam

Nombre de messages : 371
Date d'inscription : 27/09/2006

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par sandykilo le Mar 4 Mai 2010 - 12:20

Excusez-moi mais j'ai tendance à m'embrouiller avec toutes ces nomenclatures différentes...
A popotam : le résultat du test opéré par Excel est P (F<=f) unilatéral : quand cette pvaleur est inférieure à 0.05, on rejette Ho. C'est pour ça que je ne comprenais pas trop la question "intervalle de confiance", mais c'est juste 1-0.05.

A Eric Pagot : merci pour le lien. Mais je trouve l'exemple confus. A vrai dire, je ne sais toujours pas comment opérer pour mon cas
d'analyse.
Est-ce que cette procédure vous semble correcte :
Ho : var1/var2 <= 1
H1 : var1/var2 > 1
D'après le lien, si F > Fcritique, on rejette Ho à 1 - (0.05).
Pour moi ça n'est pas très clair... je dois adapter la formule à chaque cas, en mettant la variance la plus élevée comme var1? Donc pas de systématisme quant à mes var locale et globale?
Voici un exemple de mon analyse :

Moyenne locale : 1,334 globale : 1,335
Variance locale : 0,017 (var2) globale : 0,028 (var1)
Degré de lib local: 8 global : 3
F =1,69
F(0,95, 3, 8 ) = 4,07
Ho était var1<= var2
Comme F < Fcritique, on ne rejette pas Ho (on peut dire qu'on l'accepte?)
Donc var1<= var 2 pourrait être correcte.


Ca me semble contre logique... Qu'en pensez-vous? Est-ce la bonne manière de procéder?
Merci pour votre aide.

sandykilo

Nombre de messages : 14
Date d'inscription : 02/05/2010

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par jigouen le Mar 4 Mai 2010 - 14:32

Etant donné que tu prend la valeur de variance la plus haute/la plus basse-> test unilatéral.
Il faut comme tu as fait calculer le F=var1/var2 et comparer tout simplement la valeur retrouvé à la table du test de Fisher Snedecor. Si F< Fcritique-> pas de difference entre tes variances (donc on ne rejette pas = on accepte: on prend des précautions en stat!), si F>Fcritique->variances non égales.

jigouen

Nombre de messages : 54
Date d'inscription : 04/09/2009

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par popotam le Mer 5 Mai 2010 - 21:25

Laisse tomber Excel et utilise R. Fonction vartest() et le tour est joué.

popotam

Nombre de messages : 371
Date d'inscription : 27/09/2006

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par sandykilo le Lun 10 Mai 2010 - 13:54

En effet avec Excel c'est la galère...
On m'a dit d'utiliser SAS, quelqu'un sait quel code utiliser?

Merci popotam, je n'ai que quelques notions de R, peux-tu être plus explicite?

Merci pour votre aide.

sandykilo

Nombre de messages : 14
Date d'inscription : 02/05/2010

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par Eric Pagot le Lun 10 Mai 2010 - 16:10

Si l'on reprend la fonction var.test de R je constate que l'on calcule F pour Q=var1/var2.
si H0 Q=1 et H1 Q différent de 1 j'ai le p classique (bilatérale)
si H0 Q=1 et H1 Q < 1 j'ai p/2
si H0 Q=1 et H1 Q > 1 j'ai 1-p/2

Eric Pagot

Nombre de messages : 124
Age : 55
Date d'inscription : 15/02/2008

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par popotam le Lun 10 Mai 2010 - 17:07

Voir l'aide de la fonction var.test() en tapant
Code:
?var.test

popotam

Nombre de messages : 371
Date d'inscription : 27/09/2006

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par sandykilo le Lun 10 Mai 2010 - 21:45

Merci popotam, je suis occupée à faire mes tests avec R et ça fonctionne. Mais est-ce normal que lorsque je refais plusieurs fois le même test, sans rien changer, j'ai des résultats différente? (sans dépasser le seuil de significativité, mais quand même...).
Merci à tous de m'accorder un peu de votre temps, ça m'en fait gagner énormément!

sandykilo

Nombre de messages : 14
Date d'inscription : 02/05/2010

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par popotam le Mar 11 Mai 2010 - 5:57

Des résultats différents ? Peux-tu coller un bout de code ici pour voir ?

popotam

Nombre de messages : 371
Date d'inscription : 27/09/2006

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par sandykilo le Mar 11 Mai 2010 - 6:56

Voici un exemple... Bizarre non? J'ai loupé une étape?

> x <- rnorm (9, mean = 54.77, sd = 13.68)
> y <- rnorm (5, mean = 14.0625, sd = 8.71361)
> var.test(x, y, ratio = 1, alternative = "less", conf.level = 0.95)

F test to compare two variances

data: x and y
F = 2.8276, num df = 8, denom df = 4, p-value = 0.8347
alternative hypothesis: true ratio of variances is less than 1
95 percent confidence interval:
0.00000 10.85193
sample estimates:
ratio of variances
2.827605

> x <- rnorm (9, mean = 54.77, sd = 13.68)
> y <- rnorm (5, mean = 14.0625, sd = 8.71361)
> var.test(x, y, ratio = 1, alternative = "less", conf.level = 0.95)

F test to compare two variances

data: x and y
F = 9.3293, num df = 8, denom df = 4, p-value = 0.9767
alternative hypothesis: true ratio of variances is less than 1
95 percent confidence interval:
0.00000 35.80430
sample estimates:
ratio of variances
9.329253

sandykilo

Nombre de messages : 14
Date d'inscription : 02/05/2010

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par droopy le Mar 11 Mai 2010 - 7:14

ouf ... non rien de bizarre. Lorsque tu fais appel à la fonction rnorm tu génères aléatoirement des données. Donc a caque fois que tu y fais appel tu auras un nouveau jeu de données. Il n'est donc pas étonnant que tu es des résultats différents à chaque fois. Pour pouvoir faire des exemples reproductibles avec R il te faut utiliser la fonction set.seed :
Code:
set.seed(100)
x <- rnorm (9, mean = 54.77, sd = 13.68)
y <- rnorm (5, mean = 14.0625, sd = 8.71361)
var.test(x, y, ratio = 1, alternative = "less", conf.level = 0.95)

        F test to compare two variances

data:  x and y
F = 4.7044, num df = 8, denom df = 4, p-value = 0.9242
alternative hypothesis: true ratio of variances is less than 1
95 percent confidence interval:
  0.00000 18.05484
sample estimates:
ratio of variances
          4.704411

# si tu refais l'opération :
set.seed(100)
x <- rnorm (9, mean = 54.77, sd = 13.68)
y <- rnorm (5, mean = 14.0625, sd = 8.71361)
var.test(x, y, ratio = 1, alternative = "less", conf.level = 0.95)

        F test to compare two variances

data:  x and y
F = 4.7044, num df = 8, denom df = 4, p-value = 0.9242
alternative hypothesis: true ratio of variances is less than 1
95 percent confidence interval:
  0.00000 18.05484
sample estimates:
ratio of variances
          4.704411

Il est d'autant plus normal que tes résultats fluctuaient pas mal, que tu avais à chaque fois généré très peu de données.
Regarde la distribution de la variance si tu génères 100 échantillons de 9 valeurs issus de ta première loi normale :
Code:
sims <- replicate(100, var(rnorm(9, mean = 54.77, sd = 13.68)))
hist(sims)

Tu vois que suivant les 9 individus que tu auras tirés aléatoirement tu peux avoir des variancess très différentes. Tes tests auraient été plus stables si tu avais pris un grand nombre d'individus.
droopy
droopy

Nombre de messages : 1129
Date d'inscription : 04/09/2009

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par sandykilo le Mar 11 Mai 2010 - 7:27

Merci!
Je n'avais jamais fait de tests de ce genre sur R... Mais en fait, j'ai la base de données avec les valeurs des échantillons... Ca n'est pas possible de générer le test directement à partir de ces données? (j'ai déjà utilisé Rcmdr pour importer des tables, mais je ne sais pas comment lier le dataset à mon test de variance)

Voici un exemple de comment se présente ma table en Excel


gr1local gr1global


13,236481 0,85287846
40,9266409 4,51021846
1,19047619 0,92336103
18,5328185 4,98245614
4,82315113
2,57475083
2,82926829
22,6720648
47,6510067
Et donc à chaque fois je calculais la moyenne et la dev std pour les deux groupes... Il doit y avoir une façon plus directe non?
Merci Smile











sandykilo

Nombre de messages : 14
Date d'inscription : 02/05/2010

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par sandykilo le Mer 12 Mai 2010 - 9:14

Bonjour
Je suis toujours occupée à me battre avec R. En fait, je ne comprends pas leur explication pour faire un var.test à partir d'une base de données (ce que je voudrais faire) ; voilà ce que le help nous dit :

## Default S3 method:
var.test(x, y, ratio = 1,
alternative = c("two.sided", "less", "greater"),
conf.level = 0.95, ...)

## S3 method for class 'formula':
var.test(formula, data, subset, na.action, ...)

Arguments

x, ynumeric vectors of data values, or fitted linear model objects (inheriting from class "lm").
ratiothe hypothesized ratio of the population variances of x and y.
alternativea character string specifying the alternative
hypothesis, must be one of "two.sided" (default), "greater" or "less". You can specify just the initial letter.
conf.levelconfidence level for the returned confidence interval.
formulaa formula of the form lhs ~ rhs where lhs is a numeric variable giving the data values and rhs a factor with two levels giving the corresponding groups.
dataan optional matrix or data frame (or similar: see model.frame) containing the variables in the formula formula. By default the variables are taken from environment(formula).
subsetan optional vector specifying a subset of observations to be used.

Je pense faire la méthode sur base de la formule, mais malgré un bon niveau d'anglais, je ne comprends pas que mettre dans 'formula' !! Surtout ce lhr et rhs...
Quelqu'un pourrait-il m'aider?
Merci

sandykilo

Nombre de messages : 14
Date d'inscription : 02/05/2010

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par droopy le Mer 12 Mai 2010 - 11:19

re,

le plus simple est encore d'utiliser la méthode var.test(x,y), x et y étant deux vecteurs de données :
Code:
x <- rnorm(9)
y <- rnorm(4)
var.test(x,y)
# si tu as un jeu de données qui s'appelle tab :
var.test(tab[,"x"],tab[,"y"])
droopy
droopy

Nombre de messages : 1129
Date d'inscription : 04/09/2009

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par sandykilo le Mer 12 Mai 2010 - 13:21

Merci droopy, j'ai essayé, mais je ne vois pas trop où noter le nom de mes variables 1 et 2 qui sont dans ma table?
Si j'ai bd1 et bd2 pour x et y, comment les noter dans le code?
J'ai importer la table avec Rcmdr.
Merci (désolée de poser autant de questions)

sandykilo

Nombre de messages : 14
Date d'inscription : 02/05/2010

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par droopy le Mer 12 Mai 2010 - 13:40

à la place de "x" et "y" dans tab[,"x"] et tab[,"y"] tu mets le nom de tes variables, ex: tab[,"Temperature"]
droopy
droopy

Nombre de messages : 1129
Date d'inscription : 04/09/2009

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par sandykilo le Mer 12 Mai 2010 - 13:44

Super merci, je viens de trouver! La virgule me semblait bizarre, mais oui, il suffit de remplacer x et y par mes variables.

Merci à toux ceux qui m'ont aidée!!

sandykilo

Nombre de messages : 14
Date d'inscription : 02/05/2010

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par sandykilo le Jeu 13 Mai 2010 - 11:25

Re bonjour...

Je viens de refaire certains test avec un intervalle de confiance de 0.99, et j'obtiens la même p-valeur... Peut-être que j'interprète mal les résultats (premier test avec 0.99, deuxième test avec 0.95) :


F test to compare two variances

data: tab2[, "Bd1"] and tab2[, "Bd2"]
F = 0.5908, num df = 8, denom df = 3, p-value = 0.2452
alternative hypothesis: true ratio of variances is less than 1
99 percent confidence interval:
0.000000 4.484919
sample estimates:
ratio of variances
0.5908213

> var.test(tab2[, "Bd1"], tab2[, "Bd2"], ratio = 1, alternative = "less", conf.level = 0.95)

F test to compare two variances

data: tab2[, "Bd1"] and tab2[, "Bd2"]
F = 0.5908, num df = 8, denom df = 3, p-value = 0.2452
alternative hypothesis: true ratio of variances is less than 1
95 percent confidence interval:
0.000000 2.402386
sample estimates:
ratio of variances
0.5908213

Car dans le cas de 0.95, je rejetais H0 (vu que la p-valeur était de 0.24), et je pensais que la p-valeur serait plus petite à 0.99... Je me trompe dans l'interprétation? Est-ce que ça a plutôt à voir avec le '95 percent confidence interval'? Je vois que c'est la seule chose qui change dans les résultats, mais qu'est-ce que cela signifie? Dommage que le tutoriel n'explique pas clairement comment interpréter les résultats...

Merci pour votre aide.

sandykilo

Nombre de messages : 14
Date d'inscription : 02/05/2010

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par droopy le Jeu 13 Mai 2010 - 21:39

OUUUULAAAAAAAAAAAAAAAAA STOP !

Je crois qu'il te faut reprendre les principes de base des notions des tests statistiques, je t'invite vivement à lire le très bon pdf statistiques pour les statophobes.

Quel que soit le seuil que tu te fixes : 5% ou 1% la p-value ne change pas ! La p-value c'est la probabilité d'observer sous l'hypothèse H0, une statistique supérieure à celle calculée sur ton jeu de données. En français ça donne ça : la probabilité si tes deux variances sont égales d'observer une valeur de F supérieure à 0.5908. Cette probabilité la ne dépend donc pas du seuil que tu te donnes.

Ce qui change c'est donc le seuil dans un cas tu vas comparer ta p-value par rapport à 0.05 et dans l'autre cas par rapport à 0.01. Ici ton test te dit que tu as une probabilité de 0.24 d'obtenir par hasard une valeur de F qui soit supérieure à 0.5908 si tes deux variances sont égales. Tu as donc une forte probabilité d'obtenir par hasard une valeur de F plus forte. 0.24 étant bien supérieur à 0.05 et 0.01 alors dans les deux cas tu ne rejettes pas H0.

Par contre si tu regardes bien les sorties de tes tests tu vois que les intervalles de confiance à 95% et 99% sont différents.

J'espère que c'est plus clair pour toi.
droopy
droopy

Nombre de messages : 1129
Date d'inscription : 04/09/2009

Revenir en haut Aller en bas

Tester variance1<variance2 : Fisher? Empty Re: Tester variance1<variance2 : Fisher?

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 1 sur 2 1, 2  Suivant

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum