Mise en œuvre des gestes barrières, symptômes et perception du risque :

Un dessin vaut mieux qu’un long discours, mais quatre, c’est encore mieux.

Emmanuel Kozal

A partir des données de la deuxième vague (15-21 avril), on cherche à approcher d’éventuelles différences de comportement suivant la perception par la personne interrogée de son exposition à la maladie. A cette occasion, les avantages et inconvénients de plusieurs représentations sont examinés.

A titre exploratoire, deux croisements sont réalisés (sous Python).

1- Pratique-t-on plus les gestes barrières quand on a eu des symptômes? (questions A6 et B2)

Tout d’abord, on examine les réponses aux questions A6_0 à A6_10 (symptômes évocateurs de la maladie) et les réponses associées aux questions B2_0 à B2_8 (mise en œuvre des gestes barrières).

Dans les deux cas, on calcule un indicateur (indicA6, indicB2) approchant la moyenne des réponses aux séries de questions évoquées (en ne tenant pas compte des items n’ayant pas reçu de réponses.). Par exemple pour les questions A6, une personne ayant répondu oui (soit 1) à deux questions sur onze à un indicateur indicA6 égal à 1,818. L’indicateur indicA6 prend des valeurs comprises entre 1 et 2 (1 correspondant aux réponses signalant un symptôme, 2 le contraire) ; indicB2 prend des valeurs comprises entre 1 et 6 (en fonction du niveau de pratique du geste barrière considéré, de « tout le temps » à « jamais »).

Pour mémoire, les non réponses sur les questions B2 sont en faible nombre (entre 5 et 20), donc leur non prise en compte ne déforme que peu l’analyse.

L’indicateur indicA6 a pour moyenne 1,93 (et un écart type de 0,13) et l’indicateur indicB2 1,94 (et un écart type de 0,55). Le coefficient de corrélation de Spearman est estimé à -0,013 (mais avec une p-valeur de 0,34 indiquant que le test est peu significatif).

Sur cette seule base, aucune corrélation particulière n’est attendue entre les deux séries de données. Toutefois, cette approche paraît très générale alors que l’on recherche un examen plus approfondi des comportements et de leur diversité.

Des représentations graphiques des données apportent des éléments de réponse utiles, tout en pouvant être trompeurs de différentes façons.

Les deux premier graphes figurent par un point les réponses d’une personne. Le troisième (boîtes à moustaches ou boxplot) reprend les indicA6 obtenus (arrondi au dixième) ; chaque rectangle regroupe la moitié des points pour une valeur indicA6 donnée. La quatrième reprend les valeurs obtenues des indicA6 et indicB2, mais en proposant une représentation de la densité des réponses obtenues.

Figures 1, 2 et 3. indicA6 : moyenne des réponses aux questions relatives aux symptômes ressentis. indicB2 : moyenne des réponses aux questions relatives à la pratique des gestes barrières.

Le premier et le deuxième graphiques (figures 1 et 2) permettent de visualiser les réponses correspondant à une moindre pratique des gestes barrières. Les deux graphes pourraient apparaître presque vides au dessus de la diagonale. Sans recul, ils pourraient laisser croire que plus une personne a de symptômes, moins il y a de chances qu’elle ne pratique pas avec assiduité les gestes barrières. Ils sont trompeurs du fait de la superposition des points ayant les mêmes valeurs et ne donnent pas une bonne idée de la concentration des réponses.

Le troisième (figure 3) montre la concentration des réponses B2 autour de la réponse « souvent » quelle que soit la valeur de l’indicateur indicA6. Il laisse deviner l’existence de personnes pratiquant rarement tous les gestes barrières dans des proportions assez proches. Mais il n’apporte pas d’information sur le nombre de réponses par niveau d’indicateur indicA6.

Figure 4 : densité indicA6 x indicB2

Le dernier graphique (figure 4) montre immédiatement la très forte concentration des réponses, d’une part sur l’indicateur indicA6 (la plupart des personnes déclarent peu ou pas de symptômes) et d’autre part sur l’indicateur indic B2 (la plupart des personnes déclarent pratiquer tout le temps ou souvent les gestes barrières). Mais il ne permet pas de visualiser l’existence de répondants peu soucieux des gestes barrières (ou plus honnêtes quant à leur pratique de ceux-ci… mais ce point ne peut être éclairci par ces seuls graphes !)

Suivant le point que l’on souhaite examiner (tendance générale, concentration sur les cas atypiques ou les conduites à risques), telle ou telle représentation sera plus adaptée.

2- Pratique-t-on plus les gestes barrières quand on pense être à risque? (questions B2 et D12)

On réalise la même approche entre :

Les réponses à D12 ont pour moyenne 2,91 (écart type de 1,01). Le coefficient de corrélation de Spearman entre les deux variables est de 0,022 (p-valeur de 0,14), premier indice d’une absence de relation entre les deux facteurs examinés.

A la différence de la première question, les réponses sur le second facteur (D12) sont moins concentrées.

C’est avec grand peine que l’on distingue une différence entre les personnes ne se jugeant pas à risque et les autres, en ce qui concerne la pratique des gestes barrières. La pratique déclarée est plutôt fréquente, ce qui pourrait être un signe positif de l’attention portée à ces gestes indépendamment de la perception du risque individuel.

Les deux premières représentations (figures 5 et 6) conduiraient là encore à sous-estimer la concentration des réponses suivant l’indicateur indicB2 autour de la réponse « souvent » ; là encore, la dernière représentation (figure 8) pourrait conduire à oublier les pratiques les plus à risque.

Figures 5, 6 et 7 : indicA6 : moyenne des réponses aux questions relatives aux symptômes ressentis.

Figure 8 : densité indicD12 x indicB2

Il demeure une proportion importante de personnes qui ne pratiquent que « parfois » les gestes barrières. On peut aussi s’interroger sur la fréquence réelle et la façon dont les gestes sont réalisés. La sensibilisation reste donc à poursuivre et ses effets à observer.

Annexe : code python

#08/05/2020
import pandas as pd
import csv
from scipy import stats
import matplotlib.pylab as plt
import seaborn as sns
from scipy.stats import spearmanr
with open('Datacovid_BD_Vague_2.tsv') as tsvfile: #pour la vague 2
df = pd.read_csv(tsvfile,delimiter="t",header=0)
dfchoix=df[["A6_0","A6_1","A6_2","A6_3", "A6_4","A6_5","A6_6","A6_7","A6_8","A6_9","A6_10" ]].copy()
#traitement des items en A6_xx sans réponses, calcul de l'indicateur indicA6
dfchoix=dfchoix[["A6_0","A6_1","A6_2","A6_3", "A6_4","A6_5","A6_6","A6_7","A6_8","A6_9","A6_10"]].replace(3,0)
dfprov=dfchoix[["A6_0","A6_1","A6_2","A6_3", "A6_4","A6_5","A6_6","A6_7","A6_8","A6_9","A6_10"]].sum(axis=1)/(dfchoix[["A6_0","A6_1","A6_2","A6_3", "A6_4","A6_5","A6_6","A6_7","A6_8","A6_9","A6_10"]]!=0).sum(axis=1)
dfchoix['indicA6']=dfprov
dfchoix['B1Q']=df["B1Q"]
dfchoix['REG12']=df["REG12"]
dfchoix2=dfchoix[['indicA6','B1Q', 'REG12']]
#traitement des items en B2_xx sans réponses, calcul de l'indicateur indicB2
df2=df[["B2_0","B2_1","B2_2","B2_3", "B2_4","B2_5","B2_6","B2_7","B2_8"]].copy()
#nombre de réponses 7 dans les questions B2
dfprov2=df2[["B2_0","B2_1","B2_2","B2_3", "B2_4","B2_5","B2_6","B2_7","B2_8"]].sum(axis=1)/(df2[["B2_0","B2_1","B2_2","B2_3", "B2_4","B2_5","B2_6","B2_7","B2_8"]]!=0).sum(axis=1)
dfchoix['indicB2']=dfprov2
dfchoix['D12']=df[['D12']].copy()
dfsp=dfchoix[["indicA6","indicB2"]]
print('statistiques élémentaires des indicateurs', dfsp.describe())
#print('pour A6_x et B2_x, coeff de Spearman','n', dfsp.corr(method='spearman')) #en cas de besoin pour vérifier
#print('pour A6_x et B2_x, coeff de Pearson','n', dfsp.corr(method='pearson'))
print('test spearman', 'n', stats.spearmanr(dfsp,nan_policy='omit'), 'n' )
dfsp=dfchoix[["D12","indicB2"]]
print('statistiques élémentaires des indicateurs', dfsp.describe())
#print('pour D12 et B2_x, coeff de Spearman','n', dfsp.corr(method='spearman'))
#print('pour D12 et B2_x, coeff de Pearson','n', dfsp.corr(method='pearson'))
print('test spearman', 'n', stats.spearmanr(dfsp,nan_policy='omit') )
#figures
#première série croisement A6 et B2
plt.figure(figsize=(5,10))
plt.subplot(311)
plt.plot(dfchoix["indicA6"],dfchoix["indicB2"],'ro')
plt.ylabel('Moyenne des réponses B2_x')
plt.xlabel('Moyenne des réponses A6_x')
plt.title('Pratique des gestes barrières quand on a des symptômes?', loc='center')
plt.subplot(312)
plt.plot(dfchoix["indicA6"],dfchoix["indicB2"], linestyle='', marker='o', markersize=0.7)
plt.ylabel('Moyenne des réponses B2_x')
plt.xlabel('Moyenne des réponses A6_x')
plt.subplot(313)
sns.boxplot(x=round(dfchoix["indicA6"]*10)/10, y=dfchoix["indicB2"])
sns.jointplot(x=dfchoix["indicA6"], y=dfchoix["indicB2"], kind='kde', s=50, color='steelblue', height=5, edgecolor="skyblue", linewidth=2)
#plt.show()
#deuxième série croisement B2 et D12
plt.figure(figsize=(5,10))
plt.subplot(311)
plt.plot(dfchoix["D12"],dfchoix["indicB2"],'ro')
plt.ylabel('Moyenne des réponses B2_x')
plt.xlabel('Réponse à la question D12')
plt.title('Pratique des gestes barrières quand on est à risque?', loc='left')
plt.subplot(312)
plt.plot(dfchoix["D12"],dfchoix["indicB2"], linestyle='', marker='o', markersize=0.8)
plt.ylabel('Moyenne des réponses B2_x')
plt.xlabel('Réponse à la question D12')
plt.subplot(313)
sns.boxplot(x=round(dfchoix["D12"]), y=dfchoix["indicB2"])
sns.jointplot(x=dfchoix["D12"], y=dfchoix["indicB2"], kind='kde', s=50, color='steelblue', height=5, edgecolor="skyblue", linewidth=2)
plt.show()