J'ai un ensemble de données au format suivant.
Il y a un cancer binaire / pas de cancer. Chaque médecin de l'ensemble de données a vu chaque patient et a donné un jugement indépendant sur le fait que le patient soit atteint ou non d'un cancer. Les médecins donnent ensuite leur niveau de confiance sur 5 que leur diagnostic est correct, et le niveau de confiance est affiché entre parenthèses.
J'ai essayé différentes façons d'obtenir de bonnes prévisions de cet ensemble de données.
Cela fonctionne assez bien pour moi de simplement faire la moyenne parmi les médecins, en ignorant leur niveau de confiance. Dans le tableau ci-dessus, cela aurait produit des diagnostics corrects pour le patient 1 et le patient 2, bien qu'il aurait dit à tort que le patient 3 a un cancer, car par une majorité de 2-1 les médecins pensent que le patient 3 a un cancer.
J'ai également essayé une méthode dans laquelle nous échantillonnons au hasard deux médecins, et s'ils ne sont pas d'accord, le vote décisif revient au médecin le plus confiant. Cette méthode est économique dans la mesure où nous n'avons pas besoin de consulter beaucoup de médecins, mais elle augmente également considérablement le taux d'erreur.
J'ai essayé une méthode connexe dans laquelle nous sélectionnons au hasard deux médecins, et s'ils ne sont pas d'accord, nous en sélectionnons deux de plus au hasard. Si un diagnostic est avancé par au moins deux «votes», nous résolvons les choses en faveur de ce diagnostic. Sinon, nous continuons d'échantillonner plus de médecins. Cette méthode est assez économique et ne fait pas trop d'erreurs.
Je ne peux pas m'empêcher de sentir que je manque une façon plus sophistiquée de faire les choses. Par exemple, je me demande s'il existe un moyen de diviser l'ensemble de données en ensembles de formation et de test, et de trouver un moyen optimal de combiner les diagnostics, puis de voir comment ces poids fonctionnent sur l'ensemble de test. Une possibilité est une sorte de méthode qui me permet de réduire le poids des médecins qui ont continué à faire des erreurs sur l'ensemble d'essai, et peut-être des diagnostics de poids élevé qui sont faits avec une confiance élevée (la confiance est en corrélation avec l'exactitude de cet ensemble de données).
J'ai différents jeux de données correspondant à cette description générale, donc la taille des échantillons varie et tous les jeux de données ne concernent pas les médecins / patients. Cependant, dans cet ensemble de données particulier, il y a 40 médecins, qui ont chacun vu 108 patients.
EDIT: Voici un lien vers certaines des pondérations qui résultent de ma lecture de la réponse de @ jeremy-miles.
Les résultats non pondérés figurent dans la première colonne. En fait, dans cet ensemble de données, la valeur de confiance maximale était de 4 et non de 5, comme je l'ai dit par erreur plus tôt. Ainsi, en suivant l'approche de @ jeremy-miles, le score non pondéré le plus élevé qu'un patient pourrait obtenir serait de 7. Cela signifierait que littéralement chaque médecin a affirmé avec un niveau de confiance de 4 que ce patient avait un cancer. Le score non pondéré le plus bas qu'un patient puisse obtenir est de 0, ce qui signifie que chaque médecin a affirmé avec un niveau de confiance de 4 que ce patient n'avait pas de cancer.
Pondération par Alpha de Cronbach. J'ai trouvé dans SPSS qu'il y avait un alpha global de Cronbach de 0,9807. J'ai essayé de vérifier que cette valeur était correcte en calculant l'Alpha de Cronbach de manière plus manuelle. J'ai créé une matrice de covariance des 40 médecins que je colle ici . Ensuite, d'après ma compréhension de la formule Alpha de Cronbach où est le nombre d'items (ici les médecins sont les 'items') j'ai calculé en additionnant tous les éléments diagonaux dans la matrice de covariance, et en additionnant tous les éléments dans la matrice de covariance. J'ai ensuite J'ai ensuite calculé les 40 résultats différents de Cronbach Alpha qui se produiraient lorsque chaque médecin serait retiré du base de données. J'ai évalué à zéro tout médecin qui avait contribué négativement à l'Alpha de Cronbach. J'ai trouvé des poids pour les médecins restants proportionnels à leur contribution positive à l'Alpha de Cronbach.
Pondération par total des corrélations d'articles. Je calcule toutes les corrélations totales des éléments, puis pondère chaque médecin proportionnellement à la taille de leur corrélation.
Pondération par les coefficients de régression.
Une chose dont je ne suis toujours pas sûr est de savoir quelle méthode fonctionne "mieux" que l'autre. Auparavant, j'avais calculé des choses comme le score de compétence Peirce, qui est approprié pour les cas où il y a une prédiction binaire et un résultat binaire. Cependant, j'ai maintenant des prévisions allant de 0 à 7 au lieu de 0 à 1. Dois-je convertir tous les scores pondérés> 3,50 en 1 et tous les scores pondérés <3,50 en 0?
la source
No Cancer (3)
c'est le casCancer (2)
? Cela simplifierait un peu votre problème.Cancer (4)
à la prédiction d'aucun cancer avec une confiance maximaleNo Cancer (4)
. Nous ne pouvons pas dire celaNo Cancer (3)
et ceCancer (2)
sont les mêmes, mais nous pourrions dire qu'il y a un continuum, et les points médians de ce continuum sontCancer (1)
etNo Cancer (1)
.Réponses:
Tout d'abord, je verrais si les médecins sont d'accord. Vous ne pouvez pas analyser 50 médecins séparément, car vous suréquiperez le modèle - un médecin aura fière allure, par hasard.
Vous pouvez essayer de combiner la confiance et le diagnostic sur une échelle de 10 points. Si un médecin dit que le patient n'a pas de cancer et qu'il est très confiant, c'est un 0. Si le doc dit qu'il a un cancer et qu'il est très confiant, c'est un 9. S'il doc dit qu'il n'en a pas, et ne sont pas confiants, c'est un 5, etc.
Lorsque vous essayez de prédire, vous effectuez une sorte d'analyse de régression, mais en pensant à l'ordre causal de ces variables, c'est l'inverse. Que le patient soit atteint d'un cancer soit la cause du diagnostic, le résultat est le diagnostic.
Vos rangées devraient être des patients et vos colonnes devraient être des médecins. Vous avez maintenant une situation courante en psychométrie (c'est pourquoi j'ai ajouté la balise).
Ensuite, regardez les relations entre les scores. Chaque patient a un score moyen et un score de chaque médecin. Le score moyen est-il en corrélation positive avec le score de chaque médecin? Sinon, ce médecin n'est probablement pas digne de confiance (c'est ce qu'on appelle la corrélation article-total). Parfois, vous supprimez un médecin du score total (ou score moyen) et voyez si ce médecin est en corrélation avec la moyenne de tous les autres médecins - il s'agit de la corrélation totale de l'élément corrigé.
Vous pouvez calculer l'alpha de Cronbach (qui est une forme de corrélation intra-classe) et l'alpha sans chaque médecin. L'alpha devrait toujours augmenter lorsque vous ajoutez un médecin, donc s'il augmente lorsque vous supprimez un médecin, la note de ce médecin est suspecte (cela ne vous dit souvent rien de différent de la corrélation article-total corrigée).
Si vous utilisez R, ce genre de chose est disponible dans le paquet psych, en utilisant la fonction alpha. Si vous utilisez Stata, la commande est alpha, dans SAS c'est proc corr, et dans SPSS c'est sous échelle, fiabilité.
Ensuite, vous pouvez calculer un score, comme le score moyen de chaque médecin, ou la moyenne pondérée (pondérée par la corrélation) et voir si ce score est prédictif du vrai diagnostic.
Ou vous pouvez sauter cette étape, régresser séparément le score de chaque médecin au diagnostic et traiter les paramètres de régression comme des poids.
N'hésitez pas à demander des éclaircissements, et si vous voulez un livre, j'aime "Health Measurement Scales" de Streiner et Norman.
-Edit: basé sur les informations supplémentaires OPs.
Wow, c'est un sacré alpha de Cronbach. La seule fois où je l'ai vu aussi haut, c'est quand une erreur a été commise.
Je ferais maintenant une régression logistique et regarderais les courbes ROC.
La différence entre la pondération par régression et la corrélation dépend de la façon dont vous pensez que les médecins réagissent. Certains documents peuvent être généralement plus confiants (sans être plus habiles), et donc ils peuvent utiliser davantage les plages extrêmes. Si vous voulez corriger cela, utilisez la corrélation plutôt que la régression. Je pondérerais probablement par régression, car cela conserve les données d'origine (et ne supprime aucune information).
Edit (2): J'ai exécuté des modèles de régression logistique dans R pour voir dans quelle mesure chacun prédisait la sortie. tl / dr: il n'y a rien entre eux.
Voici mon code:
Et la sortie:
la source
Deux suggestions prêtes à l'emploi:
la source
P
= probabilité d'être un cancer donné par le médecin, puis (en notation python):y=[1 if p >= 0.5 else 0 for p in P]
etw=[abs(p-0.5)*2 for p in P]
. Ensuite, entraînez le modèle:LogisticRegression().
fit
(X,y,w)
(Ceci est hors de mon domaine d'expertise, donc la réponse de Jeremy Miles peut être plus fiable.)
Voici une idée.
0^0=1
0^0=NaN
la source
No Cancer (3) = Cancer (2)
No Cancer (3) = Cancer (3)
D'après votre question, il apparaît que ce que vous voulez tester est votre système de mesure. Dans le domaine de l'ingénierie des processus, il s'agirait d'une analyse de système de mesure d'attributs ou MSA.
Ce lien fournit des informations utiles sur la taille d'échantillon nécessaire et les calculs effectués pour mener une étude de ce type. https://www.isixsigma.com/tools-templates/measurement-systems-analysis-msa-gage-rr/making-sense-attribute-gage-rr-calculations/
Avec cette étude, vous auriez également besoin du médecin pour diagnostiquer le même patient avec les mêmes informations au moins deux fois.
Vous pouvez mener cette étude de deux manières. Vous pouvez utiliser la cote simple cancer / pas de cancer pour déterminer l'accord entre les médecins et par chaque médecin. Idéalement, ils devraient également pouvoir diagnostiquer avec le même niveau de confiance. Vous pouvez ensuite utiliser l'échelle complète de 10 points pour tester l'accord entre et par chaque médecin. (Tout le monde devrait convenir que le cancer (5) est la même note, qu'aucun cancer (1) n'est la même note, etc.)
Les calculs dans le site Web lié sont simples à effectuer sur n'importe quelle plateforme que vous utilisez pour vos tests.
la source