Test Analyse vidéo

Résultats

J’ai effectué 7 x 10 mètres et 1 x 20 mètres avec l’une des GoPro du Pôle. J’ai observé les temps de contact (Tc) et les temps d’envol (Te). À priori, les GoPro vont être fiable à 0,004 secondes. Même si Dimitri trouve que cela n’est pas assez précis.

Code
datas_video_brut <- datas_video # Je crée un nouveau Data.frame
names(datas_video_brut) <- c("Série", "FPS (Hz)", "Variables", "n° Variables", "Temps (s)") # Je renomme mes colonnes
knitr::kable(datas_video_brut) # J'affiche mon nouveau Data.frame
Série FPS (Hz) Variables n° Variables Temps (s)
Test_1_8x_Lineaire_2.7K 240 Tc 1 0.133
Test_1_8x_Lineaire_2.7K 240 Te 2 0.150
Test_1_8x_Lineaire_2.7K 240 Tc 3 0.133
Test_1_8x_Lineaire_2.7K 240 Te 4 0.154
Test_1_8x_Lineaire_2.7K 240 Tc 5 0.129
Test_1_8x_Lineaire_2.7K 240 Te 6 0.145
Test_1_8x_Lineaire_2.7K 240 Tc 7 0.129
Test_1_8x_Lineaire_2.7K 240 Te 8 0.154
Test_1_8x_Lineaire_2.7K 240 Tc 9 0.129
Test_1_8x_Lineaire_2.7K 240 Te 10 0.145
Test_1_8x_Lineaire_2.7K 240 Tc 11 0.133
Test_1_8x_Lineaire_2.7K 240 T10 - 1.476
Test_2_8x_Large_2.7K 240 Tc 1 0.133
Test_2_8x_Large_2.7K 240 Te 2 0.150
Test_2_8x_Large_2.7K 240 Tc 3 0.125
Test_2_8x_Large_2.7K 240 Te 4 0.166
Test_2_8x_Large_2.7K 240 Tc 5 0.129
Test_2_8x_Large_2.7K 240 Te 6 0.154
Test_2_8x_Large_2.7K 240 Tc 7 0.125
Test_2_8x_Large_2.7K 240 Te 8 0.154
Test_2_8x_Large_2.7K 240 Tc 9 0.133
Test_2_8x_Large_2.7K 240 Te 10 0.154
Test_2_8x_Large_2.7K 240 T10 - 1.422
Test_3_8x_Linéaire+Horizon_2.7K 240 Tc 1 0.125
Test_3_8x_Linéaire+Horizon_2.7K 240 Te 2 0.145
Test_3_8x_Linéaire+Horizon_2.7K 240 Tc 3 0.125
Test_3_8x_Linéaire+Horizon_2.7K 240 Te 4 0.150
Test_3_8x_Linéaire+Horizon_2.7K 240 Tc 5 0.129
Test_3_8x_Linéaire+Horizon_2.7K 240 Te 6 0.154
Test_3_8x_Linéaire+Horizon_2.7K 240 Tc 7 0.129
Test_3_8x_Linéaire+Horizon_2.7K 240 Te 8 0.162
Test_3_8x_Linéaire+Horizon_2.7K 240 Tc 9 0.125
Test_3_8x_Linéaire+Horizon_2.7K 240 Te 10 0.154
Test_3_8x_Linéaire+Horizon_2.7K 240 T10 - 1.343
Test_4_4x_Linéaire_4K 120 Te 1 0.158
Test_4_4x_Linéaire_4K 120 Tc 2 0.133
Test_4_4x_Linéaire_4K 120 Te 3 0.150
Test_4_4x_Linéaire_4K 120 Tc 4 0.133
Test_4_4x_Linéaire_4K 120 Te 5 0.166
Test_4_4x_Linéaire_4K 120 Tc 6 0.133
Test_4_4x_Linéaire_4K 120 Te 7 0.150
Test_4_4x_Linéaire_4K 120 Tc 8 0.133
Test_4_4x_Linéaire_4K 120 Te 9 0.175
Test_4_4x_Linéaire_4K 120 Tc 10 0.133
Test_4_4x_Linéaire_4K 120 Te 11 0.158
Test_4_4x_Linéaire_4K 120 T10 - 1.501
Test_5_4x_Large_4K 120 Te 1 0.175
Test_5_4x_Large_4K 120 Tc 2 0.141
Test_5_4x_Large_4K 120 Te 3 0.175
Test_5_4x_Large_4K 120 Tc 4 0.141
Test_5_4x_Large_4K 120 Te 5 0.175
Test_5_4x_Large_4K 120 Tc 6 0.141
Test_5_4x_Large_4K 120 Te 7 0.175
Test_5_4x_Large_4K 120 Tc 8 0.141
Test_5_4x_Large_4K 120 Te 9 0.183
Test_5_4x_Large_4K 120 Tc 10 0.150
Test_5_4x_Large_4K 120 T10 - 1.584
Test_6_4x_Linéaire+Horizon_2.7K 120 Te 1 0.158
Test_6_4x_Linéaire+Horizon_2.7K 120 Tc 2 0.133
Test_6_4x_Linéaire+Horizon_2.7K 120 Te 3 0.166
Test_6_4x_Linéaire+Horizon_2.7K 120 Tc 4 0.133
Test_6_4x_Linéaire+Horizon_2.7K 120 Te 5 0.158
Test_6_4x_Linéaire+Horizon_2.7K 120 Tc 6 0.141
Test_6_4x_Linéaire+Horizon_2.7K 120 Te 7 0.166
Test_6_4x_Linéaire+Horizon_2.7K 120 Tc 8 0.141
Test_6_4x_Linéaire+Horizon_2.7K 120 Te 9 0.183
Test_6_4x_Linéaire+Horizon_2.7K 120 Tc 10 0.141
Test_6_4x_Linéaire+Horizon_2.7K 120 T10 - 1.526
Test_7_4x_Superview_4K 120 Tc 1 0.133
Test_7_4x_Superview_4K 120 Te 2 0.166
Test_7_4x_Superview_4K 120 Tc 3 0.133
Test_7_4x_Superview_4K 120 Te 4 0.150
Test_7_4x_Superview_4K 120 Tc 5 0.125
Test_7_4x_Superview_4K 120 Te 6 0.158
Test_7_4x_Superview_4K 120 Tc 7 0.133
Test_7_4x_Superview_4K 120 Te 8 0.150
Test_7_4x_Superview_4K 120 Tc 9 0.141
Test_7_4x_Superview_4K 120 Te 10 0.158
Test_7_4x_Superview_4K 120 Tc 11 0.141
Test_7_4x_Superview_4K 120 T10 - 1.451
Test_8_8x_Linéaire_2.7K 240 Tc 1 0.133
Test_8_8x_Linéaire_2.7K 240 Te 2 0.141
Test_8_8x_Linéaire_2.7K 240 Tc 3 0.125
Test_8_8x_Linéaire_2.7K 240 Te 4 0.137
Test_8_8x_Linéaire_2.7K 240 Tc 5 0.120
Test_8_8x_Linéaire_2.7K 240 Te 6 0.141
Test_8_8x_Linéaire_2.7K 240 Tc 7 0.125
Test_8_8x_Linéaire_2.7K 240 Te 8 0.133
Test_8_8x_Linéaire_2.7K 240 Tc 9 0.129
Test_8_8x_Linéaire_2.7K 240 Te 10 0.145
Test_8_8x_Linéaire_2.7K 240 Tc 11 0.125
Test_8_8x_Linéaire_2.7K 240 Te 12 0.154
Test_8_8x_Linéaire_2.7K 240 Tc 13 0.120
Test_8_8x_Linéaire_2.7K 240 Te 14 0.145
Test_8_8x_Linéaire_2.7K 240 Tc 15 0.125
Test_8_8x_Linéaire_2.7K 240 Te 16 0.141
Test_8_8x_Linéaire_2.7K 240 Tc 17 0.125
Test_8_8x_Linéaire_2.7K 240 Te 18 0.154
Test_8_8x_Linéaire_2.7K 240 Tc 19 0.125
Test_8_8x_Linéaire_2.7K 240 Te 20 0.154
Test_8_8x_Linéaire_2.7K 240 Tc 21 0.133
Test_8_8x_Linéaire_2.7K 240 T20 - 2.987

Indices de tendances centrale et de dispersions

Code
# ---- Je filtre mes données ----
filtre_description_Tc <- datas_video %>% # Je filtre mes données
  filter(variables == "Tc") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_description_Te <- datas_video %>% # Je filtre mes données
  filter(variables == "Te") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
# ---- Je réalise mes statsistiques ----
statistiques_descriptives_Tc <- Statistiques(filtre_description_Tc) # Je réalise mes statistiques
statistiques_descriptives_Te <- Statistiques(filtre_description_Te) # Je réalise mes statistiques
# ---- Je stocke mes résultats ----
statistiques_descriptives_G <- tibble( # Je crée un tibble pour stocker les résultats
    Statistiques = c("Moyenne (s)", "Médiane (s)", "Minimum (s)", "Maximum (s)", "Étendue (s)", "Écart_type", "Variance", "Coefficient de Variance (%)", "Nombre"),
    Tc = unlist(statistiques_descriptives_Tc), # Je récupère les valeurs des statistiques Tc
    Te = unlist(statistiques_descriptives_Te)) # Je récupère les valeurs des statistiques Te
# ---- Affichage des résultats ----
knitr::kable(statistiques_descriptives_G) # J'affiche les résultats sous forme de tableau
Statistiques Tc Te
Moyenne (s) 0.132 0.156
Médiane (s) 0.133 0.154
Minimum (s) 0.120 0.133
Maximum (s) 0.150 0.183
Étendue (s) 0.030 0.050
Écart_type 0.007 0.012
Variance 0.000 0.000
Coefficient de Variance (%) 4.959 7.560
Nombre 48.000 46.000

Normalité des données (Tc)

Code
# ---- Je filtre mes données ----
filtre_shapiro <- datas_video %>% # Je filtre mes données
  filter(variables == "Tc") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
# ---- Je réalise le test de Shapiro.Wilk ----
shapiro_test <- shapiro.test(filtre_shapiro) # Je réalise le test de Shapiro.Wilk
# ---- Je stocke les résultats ----
df_shapiro_wilk <- tibble(  # Je stocke les résultats dans un tibble
    W = shapiro_test$statistic, # Je stocke la statistique W
    p.value = shapiro_test$p.value) # Je stocke la p-value
# ---- Interprétation des résultats ----
W <- shapiro_test$statistic # Je récupère la statistique W
p.value <- shapiro_test$p.value # Je récupère la p-value
## ---- Je définie mes seuils ----
verification_W <- if (W >= 0.90) {
  "Forte probabilité de normalité (W >= 0.90) : Les données semblent suivre une distribution normale."
} else if (W >= 0.80) {
  "Normalité acceptable mais non parfaite (0.80 <= W < 0.90) : Les données sont proches de la normale."
} else if (W >= 0.70) {
  "Normalité douteuse (0.70 <= W < 0.80) : Des déviations par rapport à la normale sont possibles."
} else {
  "Forte déviation de la normalité (W < 0.70) : Les données ne suivent pas une distribution normale."
}
verification_p <- if (p.value < 0.05) {
  "p-value < 0.05 : Rejet de l'hypothèse nulle. Les données ne suivent pas une distribution normale."
} else {
  "p-value >= 0.05 : Pas de rejet de l'hypothèse nulle. Pas de preuve suffisante contre la normalité."
}
# ---- Interprétation des résultats ----
texte_analyse <- glue("
### Analyse du test de Shapiro-Wilk

- **Statistique W** : {round(W, 3)}
- **p-value** : {round(p.value, 4)}

**Interprétation basée sur W :**  
{verification_W}

**Interprétation basée sur la p-value :**  
{verification_p}
")
cat(as.character(texte_analyse))

Analyse du test de Shapiro-Wilk

  • Statistique W : 0.908
  • p-value : 0.0011

Interprétation basée sur W :
Forte probabilité de normalité (W >= 0.90) : Les données semblent suivre une distribution normale.

Interprétation basée sur la p-value :
p-value < 0.05 : Rejet de l’hypothèse nulle. Les données ne suivent pas une distribution normale.

Normalité des données (Te)

Code
# ---- Je filtre mes données ----
filtre_shapiro <- datas_video %>% # Je filtre mes données
  filter(variables == "Te") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
# ---- Je réalise le test de Shapiro.Wilk ----
shapiro_test <- shapiro.test(filtre_shapiro) # Je réalise le test de Shapiro.Wilk
# ---- Je stocke les résultats ----
df_shapiro_wilk <- tibble(  # Je stocke les résultats dans un tibble
    W = shapiro_test$statistic, # Je stocke la statistique W
    p.value = shapiro_test$p.value) # Je stocke la p-value
# ---- Interprétation des résultats ----
W <- shapiro_test$statistic # Je récupère la statistique W
p.value <- shapiro_test$p.value # Je récupère la p-value
## ---- Je définie mes seuils ----
verification_W <- if (W >= 0.90) {
  "Forte probabilité de normalité (W >= 0.90) : Les données semblent suivre une distribution normale."
} else if (W >= 0.80) {
  "Normalité acceptable mais non parfaite (0.80 <= W < 0.90) : Les données sont proches de la normale."
} else if (W >= 0.70) {
  "Normalité douteuse (0.70 <= W < 0.80) : Des déviations par rapport à la normale sont possibles."
} else {
  "Forte déviation de la normalité (W < 0.70) : Les données ne suivent pas une distribution normale."
}
verification_p <- if (p.value < 0.05) {
  "p-value < 0.05 : Rejet de l'hypothèse nulle. Les données ne suivent pas une distribution normale."
} else {
  "p-value >= 0.05 : Pas de rejet de l'hypothèse nulle. Pas de preuve suffisante contre la normalité."
}
# ---- Interprétation des résultats ----
texte_analyse <- glue("
### Analyse du test de Shapiro-Wilk

- **Statistique W** : {round(W, 3)}
- **p-value** : {round(p.value, 4)}

**Interprétation basée sur W :**  
{verification_W}

**Interprétation basée sur la p-value :**  
{verification_p}
")
cat(as.character(texte_analyse))

Analyse du test de Shapiro-Wilk

  • Statistique W : 0.951
  • p-value : 0.0502

Interprétation basée sur W :
Forte probabilité de normalité (W >= 0.90) : Les données semblent suivre une distribution normale.

Interprétation basée sur la p-value :
p-value >= 0.05 : Pas de rejet de l’hypothèse nulle. Pas de preuve suffisante contre la normalité.

Moyennes et Temps

Code
# ---- Je filtre mes données ----
filtre_Tc_1 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_1_8x_Lineaire_2.7K", variables == "Tc") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_Te_1 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_1_8x_Lineaire_2.7K", variables == "Te") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_temps_1 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_1_8x_Lineaire_2.7K", variables == "T10") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_Tc_2 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_2_8x_Large_2.7K", variables == "Tc") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_Te_2 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_2_8x_Large_2.7K", variables == "Te") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_temps_2 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_2_8x_Large_2.7K", variables == "T10") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_Tc_3 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_3_8x_Linéaire+Horizon_2.7K", variables == "Tc") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_Te_3 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_3_8x_Linéaire+Horizon_2.7K", variables == "Te") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_temps_3 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_3_8x_Linéaire+Horizon_2.7K", variables == "T10") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_Tc_4 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_4_4x_Linéaire_4K", variables == "Tc") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_Te_4 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_4_4x_Linéaire_4K", variables == "Te") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_temps_4 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_4_4x_Linéaire_4K", variables == "T10") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_Tc_5 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_5_4x_Large_4K", variables == "Tc") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_Te_5 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_5_4x_Large_4K", variables == "Te") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_temps_5 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_5_4x_Large_4K", variables == "T10") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_Tc_6 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_6_4x_Linéaire+Horizon_2.7K", variables == "Tc") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_Te_6 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_6_4x_Linéaire+Horizon_2.7K", variables == "Te") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_temps_6 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_6_4x_Linéaire+Horizon_2.7K", variables == "T10") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_Tc_7 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_7_4x_Superview_4K", variables == "Tc") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_Te_7 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_7_4x_Superview_4K", variables == "Te") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_temps_7 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_7_4x_Superview_4K", variables == "T10") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_Tc_8 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_8_8x_Linéaire_2.7K", variables == "Tc") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_Te_8 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_8_8x_Linéaire_2.7K", variables == "Te") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
filtre_temps_8 <- datas_video %>% # Je filtre mes données
  filter(Serie == "Test_8_8x_Linéaire_2.7K", variables == "T20") %>% # Je sélectionne les données
  pull(temps) # Je récupère les valeurs
# ---- Liste des temps ----
temps <- list(
  Test_1_8x_Lineaire_2.7K = filtre_temps_1,
  Test_2_8x_Large_2.7 = filtre_temps_2,
  Test_3_8x_Linéaire_Horizon_2.7K = filtre_temps_3,
  Test_4_4x_Linéaire_4K = filtre_temps_4,
  Test_5_4x_Large_4K = filtre_temps_5,
  Test_6_4x_Linéaire_Horizon_2.7K = filtre_temps_6,
  Test_7_4x_Superview_4K = filtre_temps_7,
  Test_8_8x_Linéaire_2.7K = filtre_temps_8)
# ---- Je réalise mes statsistiques ----
statistiques_comparaison_Tc <- list(
  Test_1_8x_Lineaire_2.7K = mean(filtre_Tc_1, na.rm = TRUE),
  Test_2_8x_Large_2.7 = mean(filtre_Tc_2, na.rm = TRUE),
  Test_3_8x_Linéaire_Horizon_2.7K = mean(filtre_Tc_3, na.rm = TRUE),
  Test_4_4x_Linéaire_4K = mean(filtre_Tc_4, na.rm = TRUE),
  Test_5_4x_Large_4K = mean(filtre_Tc_5, na.rm = TRUE),
  Test_6_4x_Linéaire_Horizon_2.7K = mean(filtre_Tc_6, na.rm = TRUE),
  Test_7_4x_Superview_4K = mean(filtre_Tc_7, na.rm = TRUE),
  Test_8_8x_Linéaire_2.7K = mean(filtre_Tc_8, na.rm = TRUE))
statistiques_comparaison_Tc <- lapply(statistiques_comparaison_Tc, function(x) round(x, 3)) # Je fais un arrondi à 4 chiffres après la virgule
statistiques_comparaison_Te <- list(
  Test_1_8x_Lineaire_2.7K = mean(filtre_Te_1, na.rm = TRUE),
  Test_2_8x_Large_2.7 = mean(filtre_Te_2, na.rm = TRUE),
  Test_3_8x_Linéaire_Horizon_2.7K = mean(filtre_Te_3, na.rm = TRUE),
  Test_4_4x_Linéaire_4K = mean(filtre_Te_4, na.rm = TRUE),
  Test_5_4x_Large_4K = mean(filtre_Te_5, na.rm = TRUE),
  Test_6_4x_Linéaire_Horizon_2.7K = mean(filtre_Te_6, na.rm = TRUE),
  Test_7_4x_Superview_4K = mean(filtre_Te_7, na.rm = TRUE),
  Test_8_8x_Linéaire_2.7K = mean(filtre_Te_8, na.rm = TRUE))
statistiques_comparaison_Te <- lapply(statistiques_comparaison_Te, function(x) round(x, 3)) # Je fais un arrondi à 4 chiffres après la virgule
# ---- Je stocke mes résultats ----
statistiques_comparaison_tbl <- tibble( # Je crée un tibble pour stocker les résultats
    Statistiques = names(statistiques_comparaison_Tc),
    Moyennes_Tc = unlist(statistiques_comparaison_Tc),
    Moyennes_Te = unlist(statistiques_comparaison_Te), # Je récupère les valeurs des statistiques
    Temps = unlist(temps))
  names(statistiques_comparaison_tbl) <- c("Séries", "Moyennes Tc (s)", "Moyennes Te (s)", "Temps (s)")
# ---- Affichage des résultats ----
knitr::kable(statistiques_comparaison_tbl) # J'affiche les résultats sous forme de tableau
Séries Moyennes Tc (s) Moyennes Te (s) Temps (s)
Test_1_8x_Lineaire_2.7K 0.131 0.150 1.476
Test_2_8x_Large_2.7 0.129 0.156 1.422
Test_3_8x_Linéaire_Horizon_2.7K 0.127 0.153 1.343
Test_4_4x_Linéaire_4K 0.133 0.160 1.501
Test_5_4x_Large_4K 0.143 0.177 1.584
Test_6_4x_Linéaire_Horizon_2.7K 0.138 0.166 1.526
Test_7_4x_Superview_4K 0.134 0.156 1.451
Test_8_8x_Linéaire_2.7K 0.126 0.144 2.987

Corrélations