Tutoriels de programmation - page 18

 

Test de qualité d'ajustement du chi carré dans R


Test de qualité d'ajustement du chi carré dans R

Bonjour à tous, dans la session d'aujourd'hui, nous allons plonger dans les tests d'adéquation à l'aide de R. Nous allons résoudre quelques problèmes pour mieux comprendre le concept. Si vous n'êtes pas familier avec les tests d'adéquation, je vous recommande de regarder d'abord ma vidéo d'introduction sur le sujet (lien fourni ci-dessus).

Commençons par le premier problème. Un collège affirme que 50 % des étudiants de ses cours de statistiques sont des étudiants de première année, 30 % sont des étudiants de deuxième année, 10 % sont des juniors et 10 % sont des seniors. Nous avons obtenu un échantillon aléatoire simple de 65 étudiants, et la répartition dans notre échantillon est légèrement différente des proportions revendiquées. Nous voulons déterminer si ces différences fournissent des preuves solides contre l'affirmation du collège ou si elles pourraient être dues à une variabilité aléatoire.

Pour effectuer le test d'adéquation de l'ajustement dans R, nous utiliserons le test du chi carré. J'ai extrait le fichier d'aide de la fonction chi-carré.test, mais nous nous concentrerons uniquement sur les tests d'adéquation pour l'instant.

Tout d'abord, entrons nos données. Nous allons créer un vecteur appelé années pour stocker les nombres observés : 28 étudiants de première année, 24 étudiants de deuxième année, 9 juniors et 4 seniors.

years <- c ( 28 , 24 , 9 , 4 )

Ensuite, nous devons créer un vecteur de proportions attendues sous l'hypothèse nulle. Dans ce cas, l'hypothèse nulle suppose que les proportions revendiquées sont vraies. Appelons ce vecteur accessoires et attribuons les proportions : 0,5 pour les étudiants de première année, 0,3 pour les étudiants de deuxième année, 0,1 pour les juniors et 0,1 pour les seniors.

props <- c ( 0.5 , 0.3 , 0.1 , 0.1 )

Maintenant, nous pouvons effectuer le test du chi carré à l'aide de la fonction chi-carré.test. La syntaxe de base est simple : chi.carré.test(données, p = proportions_attendues). N'oubliez pas d'inclure p = props pour spécifier les proportions attendues.

result <- chi.square.test ( years , p = props )

Le test affichera les degrés de liberté, la statistique du test du chi carré et la valeur de p. Pour ce problème, nous avons trois degrés de liberté, une statistique de test du chi carré de 3,58 et une valeur de p de 0,31. Ces résultats correspondent à ce que nous avons obtenu dans la vidéo d'introduction.

Avec une valeur de p de 0,31, nous n'avons pas suffisamment de preuves pour rejeter l'hypothèse nulle. Par conséquent, nous ne pouvons pas conclure que les différences entre la distribution de notre échantillon et les proportions revendiquées sont statistiquement significatives. Les données sont compatibles avec l'affirmation du collège.

Passons maintenant au deuxième problème. Nous avons effectué 200 lancers de dé, et la distribution résultante est la suivante : 28 uns, 32 deux, etc. Nous voulons déterminer si cette distribution fournit la preuve que le dé est injuste.

Nous suivrons le même processus qu'avant. Créons un vecteur appelé nombres pour stocker les nombres observés : 28 uns, 30 deux, 22 trois, 31 quatre, 38 cinq et 51 six.

counts <- c ( 28 , 30 , 22 , 31 , 38 , 51 )

Maintenant, nous pouvons appliquer directement le test du chi carré à ces comptages.

result <- chi.square.test ( counts )

Le test affichera les degrés de liberté, la statistique du test du chi carré et la valeur de p. Dans ce cas, nous avons cinq degrés de liberté, une statistique de test du chi carré de 15,22 et une valeur de p de 0,009463.

Avec une très petite valeur de p de 0,009463, nous avons suffisamment de preuves pour rejeter l'hypothèse nulle. Ainsi, nous pouvons conclure que le dé semble être pondéré et non équitable sur la base de la distribution observée.

Cela conclut notre discussion et l'application du test d'ajustement du chi carré à l'aide de R. N'oubliez pas que ce test nous permet d'évaluer la compatibilité des données observées avec une distribution attendue et de faire des inférences statistiques basées sur la valeur p.

Chi-Squared Goodness-of-Fit Testing in R
Chi-Squared Goodness-of-Fit Testing in R
  • 2020.11.30
  • www.youtube.com
Chi-squared testing is easy with R. Give me just five minutes, and I'll show you how to do it!If this vid helps you, please help me a tiny bit by mashing tha...
 

Test du chi carré pour l'indépendance dans R


Test du chi carré pour l'indépendance dans R

Salut tout le monde, dans la vidéo d'aujourd'hui, nous utiliserons R pour effectuer des tests du chi carré sur l'indépendance des variables catégorielles. Nous utiliserons la fonction chi-squared.test à cette fin. Veuillez noter que dans cette vidéo, nous ne couvrirons pas les tests d'adéquation de l'ajustement, qui utilisent également la même fonction sous-jacente dans R. Si vous souhaitez en savoir plus sur les tests d'adéquation de l'ajustement, j'ai une vidéo séparée sur ce sujet (lien fourni ci-dessus).

Travaillons à travers un problème tiré du manuel OpenStax sur les statistiques d'introduction. Le problème concerne un groupe de bénévoles où des adultes âgés de 21 ans et plus font du bénévolat pendant une à neuf heures par semaine pour passer du temps avec une personne âgée handicapée. Le programme recrute des bénévoles dans trois catégories : les étudiants des collèges communautaires, les étudiants des collèges de quatre ans et les non-étudiants. Nous avons un tableau de contingence, ou un tableau à double entrée, qui affiche la répartition des bénévoles en fonction de deux variables catégorielles : le type de bénévole et le nombre d'heures de bénévolat, classées comme une à trois heures, quatre à six heures et sept à neuf heures.

Maintenant, passons à R et saisissons les données et exécutons un test du chi carré pour déterminer si ces variables catégorielles sont associées les unes aux autres ou non.

Pour saisir les données, nous allons créer une matrice appelée volontaires à l'aide de la fonction de matrice. Nous allons saisir les données par ligne, de gauche à droite, de haut en bas.

volunteers <- matrix ( c ( 111 , 96 , 48 , 96 , 133 , 61 , 91 , 150 , 53 ) , nrow = 3 , byrow = TRUE )

Ensuite, ajoutons des noms de ligne et des noms de colonne pour rendre la matrice plus interprétable.

row.names ( volunteers ) <- c ( "Community College Students" , "Four-Year College Students" , "Non-Students" ) colnames ( volunteers ) <- c ( "1-3 hours" , "4-6 hours" , "7-9 hours" )

Maintenant, nous avons un tableau visuellement attrayant affichant la répartition des bénévoles entre les différentes catégories.

Pour effectuer le test du chi carré, nous utiliserons la fonction chi.carré.test. L'affectation du résultat à une variable, telle que modèle, nous permet d'accéder à des informations supplémentaires si nécessaire.

model <- chi.square.test ( volunteers )

Pour afficher les résultats du test, tapez simplement le nom de la variable, modèle.

model

La sortie du test inclura la statistique de test du chi carré, les degrés de liberté et la valeur de p. Pour cet exemple, nous obtenons une statistique de test du chi carré de 12,991, 2 degrés de liberté et une valeur de p généralement très petite.

Il est important de noter que l'objet de modèle contient des informations supplémentaires, telles que le nombre de cellules et les résidus attendus. Ceux-ci peuvent être consultés pour une analyse plus approfondie si nécessaire.

Une autre façon d'effectuer le test du chi carré consiste à convertir la matrice en tableau et à utiliser la fonction de résumé.

vol_table <- as.table ( volunteers )
summary ( vol_table )

Cette approche fournira également la statistique de test du chi carré, les degrés de liberté et la valeur de p.

Cela couvre le processus d'exécution des tests du chi carré pour l'indépendance des variables catégorielles à l'aide de R. N'oubliez pas que le test du chi carré nous aide à déterminer s'il existe une association significative entre deux variables catégorielles en fonction des fréquences observées et attendues.

Chi-Squared Testing for Independence in R
Chi-Squared Testing for Independence in R
  • 2020.12.04
  • www.youtube.com
Let's learn how to use the chisq.test() function in R to check the independence of categorical variables. If this vid helps you, please help me a tiny bit by...
 

Test de qualité d'ajustement avec R : exemple


Test de qualité d'ajustement avec R : exemple

Aujourd'hui, nous allons utiliser R pour résoudre un problème typique de test d'adéquation. C'est ici:

Dans un échantillon aléatoire de 10 familles de trois enfants, la répartition des filles était la suivante :

  • 12 familles n'avaient pas de filles
  • 31 familles avaient une fille
  • 42 familles avaient deux filles
  • 15 familles avaient trois filles

La question est : est-il plausible que le nombre de filles dans ces familles suive une distribution binomiale avec les paramètres n=3 et p=0,5 ?

Passons à R, où j'ai déjà entré les valeurs observées. Pour continuer, nous devons calculer les valeurs attendues et les comparer aux comptages observés. Nous allons commencer par les proportions attendues, qui peuvent être obtenues à l'aide de la fonction dbinom dans R.

Voici les proportions attendues pour avoir 0, 1, 2 ou 3 filles dans une famille :

  • 12,5% pour 0 filles
  • 37,5% pour 1 fille
  • 37,5% pour 2 filles
  • 12,5% pour 3 filles

Ensuite, nous calculerons les nombres attendus en multipliant les proportions attendues par 100 (puisque nous avons 100 familles au total).

Passons maintenant à deux approches différentes pour résoudre ce problème. Tout d'abord, nous allons utiliser la fonction chisq.test dans R, qui fournit une réponse directe en calculant la statistique de test et la valeur p. Ensuite, nous effectuerons les calculs étape par étape pour mieux comprendre le processus.

Utilisation de chisq.test :

observed_counts <- c ( 12 , 31 , 42 , 15 )
expected_proportions <- dbinom ( 0 : 3 , size = 3 , prob = 0.5 )
expected_counts <- expected_proportions * 100
result <- chisq.test ( observed_counts , p = expected_proportions )
p_value <- result $ p.value print ( p_value )

La valeur p obtenue indique la probabilité d'obtenir des données aussi extrêmes que ce que nous avons observé, en supposant que l'hypothèse nulle est vraie. Dans ce cas, la valeur p est d'environ 0,07232.

Étant donné que notre niveau de signification a été fixé à 0,05 et que la valeur de p est supérieure à cela, nous n'avons pas suffisamment de preuves pour rejeter l'hypothèse nulle. Nous pouvons conclure que les données sont cohérentes avec l'hypothèse que le nombre de filles dans ces familles suit une distribution binomiale avec les paramètres n=3 et p=0,5.

Maintenant, calculons manuellement la statistique du test du chi carré pour mieux comprendre le processus :

chi_stat <- sum ( ( observed_counts - expected_counts ) ^ 2 / expected_counts )
degrees_of_freedom <- length ( observed_counts ) - 1
p_value_manual <- 1 - pchisq ( chi_stat , df = degrees_of_freedom )
print ( p_value_manual )

La valeur de p calculée manuellement correspond au résultat obtenu à l'aide de chisq.test, confirmant notre découverte précédente d'environ 0,07232.

En résumé, les deux approches aboutissent à la même conclusion : les données sont cohérentes avec l'hypothèse nulle selon laquelle le nombre de filles dans ces familles suit une distribution binomiale avec les paramètres n=3 et p=0,5.

Goodness of fit testing with R: example
Goodness of fit testing with R: example
  • 2023.01.04
  • www.youtube.com
Is it plausible that a categorical variable was sampled from a particular distribution?If this vid helps you, please help me a tiny bit by mashing that 'like...
 

Test de corrélation dans R


Test de corrélation dans R

Bonjour à tous! Aujourd'hui, nous allons discuter des tests de corrélation. J'utiliserai R pour cette démonstration, mais les concepts que nous aborderons sont applicables universellement, quel que soit votre environnement de travail. Alors, restez même si vous utilisez un logiciel différent.

Pour cet exemple, j'utiliserai l'ensemble de données college du package islr2. J'ai déjà chargé le jeu de données et défini mon thème sur minimal à l'aide du package titiverse. Si vous êtes intéressé par une analyse détaillée de l'ensemble de données du collège, j'ai un lien vidéo dans la description.

L'ensemble de données sur les collèges se compose de 777 observations, chacune représentant un collège depuis 1995. Il contient diverses variables telles que la désignation publique ou privée, les inscriptions à temps plein au premier cycle et le taux de diplomation.

Notre objectif sera de déterminer s'il existe une corrélation statistiquement significative entre le logarithme des inscriptions à temps plein au premier cycle et le taux de diplomation dans les universités publiques. Nous voulons savoir si cette relation apparente est probablement due au hasard ou s'il s'agit d'une tendance significative à laquelle nous devrions prêter attention.

Pour commencer, j'ai créé un nuage de points à l'aide de ggplot, avec le taux de diplomation sur l'axe des y et le logarithme des inscriptions à temps plein au premier cycle sur l'axe des x. J'ai également filtré les écoles privées, donc nous n'analysons que les collèges publics.

Passons maintenant au logarithme. Ne soyez pas intimidé par cela; cela nous aide simplement à interpréter l'échelle des données. Dans ce cas, nous utilisons un logarithme de base 10, qui nous indique le nombre de zéros à la fin d'une valeur. Par exemple, 3,0 sur une échelle logarithmique est 10^3, soit 1 000. En prenant le logarithme, nous obtenons une répartition plus uniforme et une relation à peu près linéaire entre les variables.

La corrélation mesure la force d'une relation généralement linéaire entre deux variables quantitatives. Dans ce cas, nous avons une corrélation positive d'environ 0,22, ce qui indique qu'à mesure que les inscriptions à temps plein au premier cycle augmentent, le taux de diplomation a tendance à augmenter également. Cette relation positive entre la taille des collèges et le taux de diplomation peut sembler surprenante, mais elle mérite d'être approfondie.

La corrélation est relativement faible, car les corrélations vont de -1 à 1. Une corrélation de -1 représente une relation négative parfaite, tandis qu'une corrélation de 1 représente une relation positive parfaite.

Maintenant, effectuons un test de corrélation dans R pour déterminer si cette corrélation est statistiquement significative. La syntaxe d'exécution d'un test de corrélation est similaire au calcul de la corrélation. En utilisant la fonction cor.test avec les deux variables d'intérêt, on obtient la corrélation et des informations complémentaires.

Dans ce cas, les résultats du test fournissent une valeur p de 0,001, ce qui suggère que s'il n'y avait pas de corrélation entre ces variables dans la population, la corrélation observée ne se produirait par hasard qu'environ 0,1 % du temps. Une probabilité aussi faible indique que la corrélation que nous avons observée est statistiquement significative, et nous pouvons conclure qu'il existe une corrélation entre le logarithme des inscriptions à temps plein au premier cycle et le taux de diplomation dans les universités publiques.

Maintenant, approfondissons un peu le test lui-même. Il examine si la corrélation observée dans les données de l'échantillon peut raisonnablement être attribuée au hasard. Le test suppose une relation linéaire entre les variables et l'indépendance des observations, ce qui le rend inadapté aux données de séries chronologiques. De plus, il suppose que les données suivent une distribution normale bivariée, mais les écarts par rapport à la normalité parfaite sont généralement acceptables.

Il est important de noter que ce test de corrélation teste spécifiquement l'hypothèse nulle selon laquelle la corrélation de la population est nulle. Il ne peut pas être utilisé pour tester des corrélations autres que zéro.

Sous le capot, le test utilise une statistique de test appelée R, calculée comme la corrélation d'échantillon observée. Cette statistique suit une distribution t de Student avec n-2 degrés de liberté, en supposant que l'hypothèse nulle de corrélation nulle est supposée. Les degrés de liberté, notés n-2, dépendent de la taille de l'échantillon (n) et sont déterminés par le nombre d'observations indépendantes disponibles pour l'estimation.

Le test fournit également un intervalle de confiance pour la corrélation de la population. Dans ce cas, l'intervalle de confiance à 95 % varie de 0,087 à 0,354. Cet intervalle nous donne une plage de valeurs plausibles pour la corrélation de la population sur la base de nos données d'échantillon. Étant donné que l'intervalle ne comprend pas zéro, nous pouvons en déduire que la corrélation de population est susceptible d'être positive.

Il convient de noter que la corrélation n'implique pas la causalité. Ce n'est pas parce que nous observons une corrélation entre deux variables qu'une variable fait changer l'autre. La corrélation indique simplement une relation entre les variables, mais des recherches et des analyses supplémentaires sont nécessaires pour établir la causalité.

Pour visualiser la corrélation, nous pouvons ajouter une ligne de régression à notre nuage de points. La ligne de régression représente la ligne la mieux ajustée à travers les points de données, indiquant la tendance générale de la relation. En utilisant la fonction geom_smooth dans ggplot avec l'argument method = "lm", nous pouvons ajouter une ligne de régression à notre tracé.

Nous pouvons maintenant voir la ligne de régression ajustée aux points de données. Il fournit une représentation visuelle de la relation positive entre le logarithme des inscriptions à temps plein au premier cycle et le taux de diplomation dans les universités publiques.

En résumé, nous avons effectué un test de corrélation pour déterminer s'il existe une relation statistiquement significative entre le logarithme des inscriptions à temps plein au premier cycle et le taux de diplomation dans les universités publiques. Les résultats des tests ont indiqué une corrélation positive avec une valeur de p de 0,001, suggérant une relation significative. Cependant, rappelez-vous que la corrélation n'implique pas la causalité et qu'une analyse plus approfondie est nécessaire pour établir des relations causales.

Les tests de corrélation sont un outil précieux dans l'analyse statistique, nous permettant d'explorer les relations entre les variables et d'identifier les tendances ou les associations potentielles. Cela nous aide à prendre des décisions éclairées et à tirer des conclusions significatives basées sur des données.

Correlation testing in R
Correlation testing in R
  • 2023.03.29
  • www.youtube.com
Does a sample correlation imply a population correlation, or could the observed data just be due to random chance? Let's get into it!If this vid helps you, p...
Raison: