R: calculer la valeur de p en fonction du chi carré et des degrés de liberté


11

Comment puis-je calculer la valeur de p en fonction du Chi carré et des degrés de liberté? Par exemple, quelle serait la valeur de p exacte d'un Chi Squared = 15 avec df = 2?


Pour déterminer une valeur de p, vous devez spécifier si elle est unilatérale ou bilatérale. Pour les deux côtés, c'est P (| X |> 15) et pour la queue inférieure unilatérale, c'est P (X <-15) et P (X.> 15) pour la queue supérieure unilatérale. X est une variable aléatoire khi carré avec 2 degrés de liberté.
Michael R. Chernick

Elle est bilatérale. Quel serait le code en R pour effectuer ce test?
mat

Je ne connais pas très bien R. Je pense qu'il y a une fonction chi carré que vous pourriez appeler. Mis à part R, vous pouvez obtenir la valeur d'un tableau de la distribution du chi carré qui est disponible dans de nombreux livres de statistiques élémentaires. Le seul problème avec le tableau est que 15 peut ne pas apparaître, auquel cas vous pouvez vous en approcher par intrtpolation.
Michael R. Chernick

Permettez-moi de me corriger. Le chi carré ne devient pas négatif. Pour un test unilatéral, vous voulez P (X> 15). Dans mon livre P (X> 13,815) est 0,001. La valeur de p est donc <0,001.
Michael R. Chernick

2
(1) Il est rare que les tests du chi carré soient bilatéraux: quelle est votre application? (2) (cc @michael) On n'interpolerait pas dans les queues; on estimerait l'intégrale. BTW, il s'agit d'une intégrale élémentaire, car la distribution du Chi au carré avec 2 DF est une distribution exponentielle: vous devriez obtenir pour la probabilité de queue supérieure. Voir en.wikipedia.org/wiki/Chi-squared_distribution . e-15/2
whuber

Réponses:


18

Dans les statistiques appliquées, les statistiques des tests en chisquared proviennent de sommes de résidus au carré, ou de sommes d'effets au carré ou de différences de log-vraisemblance. Dans toutes ces applications, l'objectif est de tester si un paramètre vectoriel est nul par rapport à l'alternative qu'il est non nul et la statistique chisquare est liée à la taille au carré de l'effet observé. La valeur p requise est la probabilité de queue droite pour la valeur chisquare, qui dans R pour votre exemple est:

> pchisq(15, df=2, lower.tail=FALSE)
[1] 0.0005530844

Pour les autres valeurs df ou statistiques, vous les remplacez simplement par le code ci-dessus.

Toutes les fonctions de probabilité cumulative dans R calculent les probabilités de queue gauche par défaut. Cependant, ils ont également un lower.tailargument, et vous pouvez toujours le définir FALSEpour obtenir la bonne probabilité de queue. C'est une bonne pratique de le faire plutôt que de calculer comme vous pouvez le voir dans certains manuels élémentaires.1-p


1
Est-il possible de reculer? Dériver la valeur du chi carré en utilisant la valeur P et les degrés de liberté en utilisant le code R?
Eric

2
@Eric Tapez simplement ce qui suit dans R: help (qchisq)
Gordon Smyth

3

R a une suite de fonctions de probabilité pour la densité ou la masse sous la forme d*(par exemple dbeta, dchisq) et la distribution sous la forme p*(par exemple pf, pgamma). Vous voudrez peut-être commencer par là.


Est-il possible de reculer? Dériver la valeur du chi carré en utilisant la valeur P et les degrés de liberté en utilisant le code R?
Eric

0

Oui, il est possible de calculer la valeur du chi carré pour une valeur de p (p) et des degrés de liberté (df) donnés. Voici comment s'y prendre:

À des fins de vérification, je calcule d'abord p pour une valeur de khi carré donnée = 1,1 et df = 1:

Solution:

pchisq (1,1, df = 1, lower.tail = FALSE) # la réponse est p = 0,2942661

Maintenant, pour reculer en utilisant p et df pour calculer la valeur du chi carré, j'ai utilisé le p = 0,2942661 que j'ai obtenu ci-dessus et df = 1 ci-dessus:

Solution:

qchisq (0,2942661, 1, lower.tail = FALSE) # la réponse est 1,1 comme dans la première solution.

Donc, en utilisant votre exemple de Chi Squared = 15 avec df = 2, les solutions sont ci-dessous:

Solution: calculer la valeur de p

pchisq (15, df = 2, lower.tail = FALSE) # réponse: p = 0,0005530844

utilisez p = 0,0005530844 et df = 2 pour récupérer la valeur du chi carré

qchisq (0.0005530844, 2, lower.tail = FALSE) # réponse: chi carré = 15

J'espère que cela t'aides!!!


-3

Essayer,

pchisq(chi,df)

dans votre exemple,

pchisq(15,2)

[1] 0.9994469

1
Je ne pense pas que ce soit la valeur p. Serait-ce possible que ce soit la probabilité cumulée? Comme l'a dit whuber, la valeur de p serait exp (-15/2), ce qui est beaucoup plus petit que 0,999469.
Michael R. Chernick

7
Ceci est une erreur. Il ne passe même pas le test de l'odorat. Considérez que la valeur attendue d'une distribution chi carré est son df, et que la variance est de 2 * df ( wikipedia ), donc 15 est ~ 9 SDs de la moyenne. Cela devrait vous dire que quelque chose ne va pas ici. Essentiellement, vous l'utilisez pour effectuer un test unilatéral qu'un ajustement est «trop bon» (cf. ici ). Sous l'utilisation typique du chi-carré, vous voulez pchisq(15, 2, lower.tail=FALSE), ou 1-pchisq(15, 2), ce qui est 0.0005530844.
gung - Réintégrer Monica

(Cela dit, c'est une réponse, même si elle est incorrecte, donc elle ne devrait pas être supprimée car ce n'est pas une réponse. Je vote semble OK .)
gung - Réintégrer Monica

@gung +1 J'ai ajouté ma propre réponse aujourd'hui mais je n'ai pas lu votre commentaire en premier, ce qui donne la même solution évidente.
Gordon Smyth

Est-il possible de reculer? Dériver la valeur du chi carré en utilisant la valeur P et les degrés de liberté en utilisant le code R?
Eric
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.