Pour réaliser une courbe de survie des patients drépanocytaires en fonction des statuts vaccinaux avec détermination de la p-value, les variables nécessaires dans votre jeu de données incluront :
- ID du Patient : Un identifiant unique pour chaque patient.
- Temps de Suivi : La durée de suivi pour chaque patient (en mois, jours, ou années).
- Événement de Survie : Une variable binaire indiquant si l'événement de survie (décès ou une autre condition d'intérêt) s'est produit (1) ou non (0) pendant la période de suivi.
- Statut Vaccinal : Une variable indiquant le statut vaccinal des patients (vacciné ou non vacciné).
- Date de Début du Suivi : La date à laquelle le suivi du patient a commencé.
- Covariables Potentielles : D'autres variables cliniques ou démographiques qui pourraient influencer la survie (âge, sexe, type de drépanocytose, traitements reçus, comorbidités, etc.)
Avec nos variables, nous allons utiliser des méthodes statistiques telles que l'analyse de survie de Kaplan-Meier pour estimer la courbe de survie, et le test du log-rank pour comparer les courbes de survie entre les groupes de patients vaccinés et non vaccinés, ce qui permettra de déterminer la p-value associée à cette comparaison.
Pour aller plus loin, nous allons envisager d'utiliser un modèle de régression de Cox (Cox proportional hazards model) pour ajuster les effets d'autres covariables sur la survie et obtenir des estimations plus robustes.
Identifier les covariables importantes dans notre jeu de données est crucial pour obtenir des résultats précis et robustes dans vos analyses statistiques. Voici les étapes et méthodes que nous allons utilisés pour déterminer l'importance des covariables :
- Cliquez sur
*code*
pour vous rendre vers l'analyse exploratoire des données code - Résumé Statistique : Nous avons utilisés des fonctions comme
describe()
de pandas pour obtenir un résumé statistique de vos données.
# Loading cleaned dataset
df = load_cleaned_data()
# Filter key variables
df = df[['CODE', 'AGE', 'SEXE', 'NIVEAUSCOLAIRE', 'STATUTMARITAL', 'ETHNIE', 'AGE_DE_DIAGNOSTIC', 'DECEDES', 'VACCINSAJOUR',
'AGEAUDECES']]
# Preliminary exploration of dataset
# Summarize the descriptive analysis
print(df.describe())
- Visualisation : Nous avons utiliser des graphiques comme les diagrammes de dispersion et les boîtes à moustaches pour visualiser les relations entre les variables
Interprétation
Nous pouvons voir du résumé de l'analyse descriptive les éléments suivants :
- Un total de 300 patients sous étude
- une moyenne d'âge de 29 ans
- L'âge minimal est 21 ans et l'âge maximal est 69 ans
- Les quartiles de l'âge sont 26(22 ; 33)
- L'intervalle interquartile de l'âge est
- mode :
- Ecart-type :
- Variance :
Le diagramme de dispersion a été utilisé pour visualiser la relation entre deux variables continues qui sont l'age auquel le patient a été diagnostiqué et l'age de décès du patient.
# Draw a scatter plot to visualize the distribution of 2 continuous variables
scatter_plot(df, 'AGE_DE_DIAGNOSTIC', 'AGEAUDECES', "Age at diagnostic vs Age at death", var3="VACCINSAJOUR")
Interprétation
Nous pouvons remarquer aucune corrélation entre l'âge au décès des patients et l'âge au diagnostic
La boîte à moustaches a été utilisée pour visualiser la distribution d'une variable continue (Age au décès) et identifier les valeurs aberrantes.
# Draw a box plot to visualize the distribution of one variable and identify outliers
box_plot(df, 'AGEAUDECES', 'VACCINSAJOUR')
Elle a été utilisée pour visualiser les relations par paires dans un jeu de données entier.
# Draw a pair plot
seaborn(df, 'VACCINSAJOUR')
Il a été utilisé pour visualiser les corrélations entre toutes les variables continues.
# Draw a Heatmap plot
heatmap(df.drop(columns='ETHNIE'))
Interprétation
Nous pouvons remarquer une légère corrélation entre l'âge au décès des patients et leur statut marital, une corrélation positive parfaite entre l'âge des patients et l'âge au décès
Nous avons réalisés des statistiques descriptives et des visualisations univariées courantes pour évaluer les caractéristiques de chaque variable dans notre jeu de données.
Nous avons utilisés les fonctions skewness() et kurtosis()
de pandas pour la mésure des formes que prennent les différentes variables d'intérêt de notre jeu de données.
# Descriptive analysis
print("Skewness:\n ", df.drop(columns='ETHNIE').skew())
print("Kurtosis:\n ", df.drop(columns='ETHNIE').kurtosis())
Interprétation
Nous pouvons remarquer une asymétrie positive (skewness > 0) pour l'âge, statut marital, âge de diagnostic et l'âge au décès. Une asymétrie négative (skewness < 0) pour le sexe, niveau scolaire, statut de décès et statut vaccinal. Uniquement le code présente un symétrie dans le jeu des données.
Un diagramme d'histogramme sera utiliser pour visualiser la distribution de l'age des patients.
# Draw a histogram to visualize the distribution of a continuous variable
histogram(df, 'AGE', "Histogram: Age distribution")
Les diagrammes de densité (ou kernel density estimates, KDE) va servir à estimer la distribution de probabilité d'une variable continue.
# Draw a density plot to estimate the probility distribution of a continuous variable
density_plot(df, 'AGE')
Interprétation
La courbe de distribute de la variable d'intérêt "âge" montre une asymétrie
Suite à la rémarque d'une potentiel corrélation entre l'âge au décès des patients et leur statut marital, nous avons réaliser une analyse bivariée sur ces variables. Pour ce faire nous avons utilisé réaliser un diagramme de dispersion avec régression.
Nous nous sommes servis du ce calcul pour affirmer l'existence d'une corrélation entre l'âge des patients et l'âge au décès.
# Coefficient of Correlation
# Coefficient of correlation of Pearson
pearson_corr = df[['AGE', 'AGEAUDECES']].corr(method='pearson')
print("Pearson correlation:\n", pearson_corr)
Interprétation
D'après le resultat ci-dessus nous pouvons confirmer une forte corrélation entre l'âge des patients et l'âge du décès des patients. Nous allons suppresser la variable "âge au décès" pour avoir un meilleur modèle.
Ce diagramme nous a aidé à visualiser la tendance linéaire entre l'âge au décès des patients et leur statut marital.
# Regression plot
# Draw a regression plot to visualize linear trend between marital status and death age cause the heatmap had shown a slight relation between these variables
regression_plot(df, 'AGEAUDECES', 'STATUTMARITAL')
regression_plot(df, 'AGE', 'AGEAUDECES')
Interpretation
Nous pouvons voir d'après le diagramme ci-dessus une faible présence des observations ou patients dans la zone de corrélation précisement cinq patients uniquement. Cela montre une faible corrélation entre ces variables. Néanmoins cette analyse n'est pas très fiable car ce diagramme n'est pas parfaitement adapté pour des variables catégorielles.
Pour évaluer la corrélation entre la variable dépendante (statut de décès) et les covariables, nous avons utilisés deux régressions notamment la régression logistique et la régression de Cox.