Site icon Le blog de l'Audiologie Prothétique – Xavier DELERCE

Incertitude en audiométrie vocale – Partie 3… et fin !

Bon, c’est toujours la même chose… je suis en retard j’avais autre chose à faire, et j’ai un peu laissé traîner ce troisième (et dernier !) billet sur l’incertitude en audiométrie vocale.

Alors nous allons tenter d’appliquer les problèmes d’incertitude vus dans les premier et second billet, mais cette fois ci, en audiométrie vocale DANS LE BRUIT ! Je l’écris en gros parce qu’il me semble que ça fait plus bruyant… non ? passons…

Après moult réflexions et quelques années de pratique, je crois qu’il faut casser un mythe sur l’audiométrie vocale dans le bruit : perdons toute idée de référence par rapport à une courbe de « normalité » absolue, sauf à avoir au préalable étalonné votre cabine avec des sujets normo-entendants (on verra comment). Mais peut être va t’il falloir s’habituer à raisonner en « relatif » (condition B versus condition A), on verra comment aussi…

Pour vous convaincre de la difficulté de se baser un score absolu en audiométrie vocale dans le bruit, et de la toute relativité (et osons le mot, inutilité ?) d’une courbe de référence, voici la courbe de référence fournie par HörTech pour le Framatrix (en rouge) et la courbe réelle de la cabine de test « étalonnée » avec 20 sujets normo-entendants (en bleue) :

Comme vous le constatez, les conditions spatiales de test diffèrent. La courbe rouge est la seule courbe de référence que peut et veut donner HörTech pour le Framatrix : c’est à dire en champ quasi-direct (environ 1 m du HP) et voix et bruit émis sur le même haut-parleur, de face (0°).

Toute autre condition spatiale de test serait une extrapolation selon l’institut allemand, et ils ont raison ! C’est connu, à la fin, c’est toujours les allemands qui gagnent, mais pas toujours au ballon !

Dans la cabine et les conditions de test de la courbe bleue, 20 sujets normo-entendants ont été testés avec le Framatrix, mais le HP du signal était à 80cm et de face, et le bruit était émis au 4 coins de la pièce, dans le même plan mais à 2,5m du patient, donc en champ diffus. Et là, la courbe de référence n’est pas du tout (euphémisme) la même.

Donc ce préambule nous laisse entrevoir la très très relative « normalité » des tests dans le bruit sur laquelle nous pourrions nous baser. En effet, les résultats ne dépendent pas uniquement des performances du sujet testé, mais très fortement des conditions d’administration du test, car avec deux populations qu’on imagine homogènes (deux groupes de 20 sujets à audition normale), pour un même test, les RSB nécessaires pour obtenir le SRT (50% d’intelligibilité) ont 7dB d’écart.

Les porteurs n’iront pas plus loin. Docteur Livingstone le sait bien. Malédiction ! Malédiction ! Malédiction ! (A. Bashung)

Après cet intermède musical, nous allons essayer de voir comment un test dans le bruit peut être déclaré significatif, et, soyons fous, valide à peu près scientifiquement.

Car enfin c’est à peu près simple, et des recettes basiques peuvent nous être proposées (j’en donnerai une, qui vaut ce qu’elle vaut) pour prendre une décision.

Au début était l’être humain, et son cerveau si particulier…

Tellement particulier qu’il n’y en a pas deux pareils ! Et pour le prouver, je re-convoque nos fameux 20 sujets normo-entendants :

Moi, ce que j’aime, ce que j’adore même dans les articles scientifiques, c’est quand les points s’alignent si bien… quand le coefficient de régression est si proche de 1… quand la vie est si facile à mettre en équation…

Et bien non ! Soit le landais est retors (c’est vraisemblable), soit le vivant n’est pas si simple (c’est pourquoi la vie est si belle, disons-le, même si des fois…). Mais ici, à -12dB de RSB, certains sujets répètent 1 mot/100 quand d’autres en répètent 58 ! Et j’ai beau, avec l’aide de supers étudiants (merci Julian, merci Hélène, etc.) faire des tests avec des sujets à l’audition « normale », je tombe toujours sur ces fantastiques écarts.

Refermons la parenthèse. Donc voici ce qu’il faudrait faire avant tout test (Framatrix, Hint, autres) dans chacune de nos cabines, avec chacune sa spécificité acoustique et spatiale de test. Avouez que ça pourrait en éloigner quelques uns, mais c’est la seule façon; il faudrait obtenir une courbe de référence comme celle ci :

En annexe de ce billet, pour les plus chauds bouillants d’entre vous, vous aurez le code informatique pour effectuer cette régression sigmoïde (gloups !), puisque c’est comme cela que s’appelle cette courbe qui passe dans le poétique « nuage » de points. Reste à vous de mettre la main sur 20 sujets à l’audition normale, et pour cela, il va falloir faire de la retape sur vos trottoirs genre restaurateur grec du quartier St Michel à Paris (ça sent le vécu !)…

Donc nous allons partir de notre courbe de « normalité » propre à notre cabine (voix à 0° et bruit à 360°). On obtient avec les intervalles de confiance à 95% de tous nos sujets testés :

Mais pourquoi s’intéresser à cette courbe ?

Et l’être humain créa la régression non-linéaire…

… avec son petit cerveau malade bien sûr ! Parce que ce type de courbe sigmoïde (en forme de « S ») régit pas mal de phénomènes du vivant, mais également, parce qu’avec cette courbe, on peut extraire des informations utiles pour déterminer si un test est significatif ou non (on y vient…) comme on l’a vu dans le billet 2.

Mais vous n’avez pas forcément besoin de faire ça dans votre cabine, car les choses étant bien faites, les courbes rouge (la référence de Hörtech) et bleue (votre cabine, ou la mienne en l’occurrence) sont quasi parallèles, ce qui veut dire qu’elles ont des pentes assez proches (mais un peu plus pentue quand tout est émis de face), et que tout va dépendre de la pente…

Donc pour résumer :

Avant de voir pourquoi la pente va nous renseigner sur le caractère significatif ou non d’un test, je vais partir de l’équation de base de cette courbe sigmoïde.

Croyez moi sur parole ou lisez l’annexe informatico-mathématique à la fin de ce billet, mais la courbe bleue a pour équation :

x est le RSB et y l’intelligibilité. a, b, c et d sont des coefficients qui ici (courbe bleue) sont respectivement -21, 99, 0,37 et -12,9.

99 est l’asymptote, le haut de la courbe, qui tend vers 100%. -12,9 est aussi appelé « xmid », qui est proche du 50% donc du SRT, soit -12,9dB de RSB pour 50% d’intelligibilité (mais en réalité, c’est exactement -12,5dB, si on prend la forme inverse de cette fonction).

Et la pente ? Mais avant : le SRT !

On s’aperçoit qu’utiliser des tests tous les jours nous fait oublier l’énorme boulot qu’il y a derrière, chez les concepteurs de ces tests (je parle de HörTech, Audyx, et les fabricants de chaînes de mesures). Tout nous apparaît comme par miracle, alors qu’il y a un gros boulot mathématique derrière. Mais un pilote n’a pas forcément besoin de savoir démonter son A380 vous me direz… et vous aurez raison. Donc nos logiciels nous calculent automatiquement ce SRT, voire plus.

J’en reviens de manière insistante à la pente. Pour la calculer, il faut d’abord calculer le SRT = le RSB à = 50% :


Et ici on obtient RSB = -12,5dB pour avoir 50% d’intelligibilité.

Ensuite (enfin !), la pente est donnée par la dérivée de la première fonction, en x = -12,6dB de RSB. Je vous passe les calculs de dérivé assez infâmes (mais vous les trouverez en annexe, grands fous !), mais sachez que cette pente, ici, est de 11,3% par dB de RSB.

Et on retrouve une pente quasi identique (14% pour la référence Framatrix, courbe rouge ici) dans cette thèse de Sofie Jansen.

Pente ? Oui ? Alors ?

Oui, la beauté de la chose ne saute pas forcément aux yeux…

La pente de la courbe bleue est assez proche de celle de la courbe rouge de HörTech, ce qui veut dire que l’on pourrait se dispenser de la calculer pour chaque cabine (ouf !).

Mais surtout, c’est avec la pente que l’on va pouvoir dire si une condition (appareillé/non appareillé, programme 1/programme 2, etc.) est significativement meilleure qu’une autre (à 95% de certitude). Et voilà où ce billet 3 rejoint le billet 2.

Voici pourquoi :

Pour résumer

Atelier informatique (cerveaux malades only)

C’est une manie chez moi, avec le logiciel statistique R. On a une cohorte de 20 sujets qui ont été testés, et que vous pouvez télécharger ici en format .txt. Vous allez renommer ce fichier « datafram3.txt ».

Liez et attachez ce fichier afin de créer une fonction de régression (d’ajustement aux points), dont vont être extraits les paramètres a, b, c et d (appelés « params » ici) :

norm<-read.table("datafram3.txt", header = T)
attach(norm)
x<-rsb
y<-intell
fitmodel <- nls(y ~ a + ((b - a)/(1 + exp(-c * (x - d)))), start = list(a = min(y), b = max(y), c = 1, d = round(median(x))), trace = TRUE)
params<-coef(fitmodel)
params

Tracer le graphe (avec courbe transparente, car je suis maniaque et je n’aime pas que la grille soit au-dessus de la courbe…), puis la courbe et les points :

plot(rsb, intell, xlim=c(-20, 10), col=rgb(0, 0, 0, alpha=0), xlab="RSB (dB)", ylab="Pourcentage d'intelligibilité (%)", las=1, main="Relation RSB/intelligibilité FRAMATRIX voix 0°/bruit 360° sujets normo-entendants")
grid()
cbe<-function(rsb) params[1] + ((params[2] - params[1])/(1 + exp(-params[3] * (rsb - params[4]))))
curve(cbe, col="blue", add=T, lwd=2)
points(rsb, intell)

Pour obtenir les l’intervalle entre les quantiles 2,5 et 97,5% (soit 95% des sujets testés) et tracer ces limites supérieures et inférieures (attention ça pique…) :

##recherche quantile 2,5%##
ic25<-c(quantile(intell[rsb==-17], probs=0.025), quantile(intell[rsb==-13], probs=0.025), quantile(intell[rsb==-10], probs=0.025), quantile(intell[rsb==-7], probs=0.025), quantile(intell[rsb==-4], probs=0.025), quantile(intell[rsb==-1], probs=0.025))
ic25

##crée un dataframe des quantiles 2,5%#
x25<-c(-17, -13, -10, -7, -4, -1)
df25<-data.frame(x=x25, y=ic25)
df25

##Régression logistique quantile 2,5%##
fitmodel25 <- nls(ic25 ~ a + ((b - a)/(1 + exp(-c * (x25 - d)))), start = list(a = min(x25), b = max(ic25), c = 1, d = round(median(x25))), trace = TRUE, df25)
params25<-coef(fitmodel25)

##courbe 2,5%##
cbe25<-function(x25) params25[1] + ((params25[2] - params25[1])/(1 + exp(-params25[3] * (x25 - params25[4]))))
curve(cbe25, from=-15.4, to=-1, col="blue", add=T, lty=2)

##recherche quantile 97,5%##
ic975<-c(quantile(intell[rsb==-17], probs=0.975), quantile(intell[rsb==-13], probs=0.975), quantile(intell[rsb==-10], probs=0.975), quantile(intell[rsb==-7], probs=0.975), quantile(intell[rsb==-4], probs=0.975), quantile(intell[rsb==-1], probs=0.975))
ic975

##crée un data frame des quantiles 97,5%##
x975<-c(-17, -13, -10, -7, -4, -1)
df975<-data.frame(x=x975, y=ic975)
df975

##regression logistique quantile 97,5%##
fitmodel975<-nls(ic975 ~ a + ((b - a)/(1 + exp(-c * (x975 - d)))), start = list(a = min(ic975), b = max(ic975), c = 1, d = round(median(x975))), trace = TRUE, df975)
coef(fitmodel975)
params975<-coef(fitmodel975)

##courbe 97,5%##
cbe975<-function(x975) params975[1] + ((params975[2] - params975[1])/(1 + exp(-params975[3] * (x975 - params975[4]))))
curve(cbe975, from=-17, to=-3, col="blue", add=T, lty=2)

##légende##
legend(x=0, y=20, legend=c("Quantile 2,5%", "Moyenne", "Quantile 97,5%"), lty=c(2, 1, 2), col=c("blue", "blue", "blue"), bty="n")

On peut en calculer le SRT à xdB par la fonction inverse :

## Pour calculer le SRT (50% intell à xdB) à partir de l'équation de la courbe##
SRTdB<-(log((50/(params[2]-50))-(params[1]/(params[2]-50)))+((params[3]*params[4]))/params[3])
SRTdB

Et également en calculer la pente par sa dérivée en x = SRT :

## calculer la pente en x = SRT##
pente<-(params[3]*(params[2]-params[1])*exp(-params[3]*(SRTdB-params[4])))/((exp(-params[3]*(SRTdB-params[4])))+1)^2
pente

Pour afficher ces résultats sur le graphe obtenu précédemment :

## affiche les valeurs de SRT et pente###
legend(-5, 55, legend = c(paste("SRT =", round(SRTdB, 1), "dB"), paste("Pente =",round(pente, 1), "%/dB RSB")), bty = "n")

Pour connaître la robustesse de l’ajustement de la courbe de régression au nuage de points (le fameux R²), on va extraire SCR et SCT, facteurs d’éloignement des points à la régression (voir ici pour plus de détails, même s’ils portent les noms de RSS et TSS) :

SCR <- sum(residuals(fitmodel)^2)
SCT <- sum((y - mean(y))^2)
R.carre <- 1 - (SCR/SCT)
R.carre

Pour afficher ce R² sur le graphique (qui est ici de 0,94 bravo !) :

text(-18, 90, as.expression(substitute(italic(R)^2==r, list(r=round(R.carre, 2)))))

Attention cependant, le SRT (approximé par le facteur xmid de la fonction de régression) possède lui aussi un intervalle de confiance. Pour le calculer, vous pouvez utiliser la fonction suivante (confint) :

conf<-confint(fitmodel)
conf

Et R vous dira que xmid (en gros, le SRT) est compris avec 95% de certitude (ou 5% d’incertitude…) dans un intervalle de [-14,84 <—> -12,15dB de RSB]. Et cet intervalle de confiance ne doit pas croiser celui du score d’intelligibilité (qui est de +/- 10 à 13% autour du score). D’où la marge de 2,5dB entre deux tests pour être certain que deux conditions sont significativement différentes.

Voilà. Merci de m’avoir supporté tout au long de ces trois billets, où j’ai tenté de me persuader, et peut être vous aussi, que l’audiométrie vocale, ce n’était pas du « clic bouton », que les tests avaient leur importance et qu’il faudrait en bannir certains, et que l’audiométrie dans le bruit n’est pas un gadget mais qu’elle obéit à des règles strictes. Bref : que tout est mesurable, comparable, à condition de respecter certaines règles.

BONNES VACANCES SINON !! Et à la rentrée pour de nouvelles aventures !

Merci à Isabeau pour son décrassage mathématique 😉

Quitter la version mobile