Le scandale 3/4G : une influence sur la politique cadeaux des labos spécialisés ?


In [1]:
#ces parties représente le code utilisé pour réaliser l'exploitation ci dessous
import sys
import pandas as pd
import numpy as np
import json

Exploitation des données de BAYER


In [68]:
#Chargement des données
labo = pd.read_csv("BAYER.anon.csv", encoding='utf-8')
labo = labo[labo.DECL_AVANT_DATE != 'None']
labo = labo.dropna(subset = ['DECL_AVANT_DATE'])
labo = labo[labo.DECL_AVANT_DATE.str.contains(r'^20\d\d-')]
avantages = labo[['DECL_AVANT_DATE','DECL_AVANT_MONTANT', 'BENEF_PS_QUALIFICATION', 'ORIGIN']]
avantages.index = pd.to_datetime(avantages['DECL_AVANT_DATE'])

Nombre des avantages en forte augmentation début 2013


In [69]:
avantages['DECL_AVANT_MONTANT'].resample('BQ', how='count').plot()


Out[69]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f8c00c35790>

Les montants sont en revanche moins que mi 2012


In [78]:
avantages['DECL_AVANT_MONTANT'].resample('BQ', how='sum').plot()


Out[78]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f8bfe445290>

En période de crise, il est logique que des contacts soient établis (et des petits cadeaux commes de repas organisés) que des cadeaux à plusieurs milliers d'euros comme en 2012)

Les populations visées durant la période janvier 2013 à juillet 2013


In [101]:
avantages[(avantages.index > '2013-01-01') & (avantages.index < '2013-07-01')].groupby(['ORIGIN', 'BENEF_PS_QUALIFICATION'])[['ORIGIN']].count().sort('ORIGIN', ascending=False)


Out[101]:
ORIGIN
ORIGIN BENEF_PS_QUALIFICATION
Médecin Non renseigné 776
Pharmacien Pharmacologie 614
Médecin Médecine générale 136
Endocrinologie 94
Pédiatrie 15
Préparateur en pharmacie Préparation en pharmacie 14
Pharmacien Préparation en pharmacie 10
Médecin Diabétologie 4
Médecine interne 4
Cardiologie 2
Gynécologie 1

Les gynécologues recoivent peu de cadeaux de BAYER pendant cette période


In [102]:
avantages[avantages.BENEF_PS_QUALIFICATION == u'Gynécologie']['DECL_AVANT_MONTANT'].resample('BQ', how='count').plot()


Out[102]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f8bfe341f50>

Les médecins généralistes plutot visés fin 2014


In [74]:
avantages[avantages.BENEF_PS_QUALIFICATION == u'Médecine générale']['DECL_AVANT_MONTANT'].resample('BQ', how='count').plot()


Out[74]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f8bfe699510>

Données Effik


In [119]:
#Chargement des données
labo = pd.read_csv("EFFIK.anon.csv", encoding='utf-8')
labo = labo[labo.DECL_AVANT_DATE != 'None']
labo = labo.dropna(subset = ['DECL_AVANT_DATE'])
labo = labo[labo.DECL_AVANT_DATE.str.contains(r'^20\d\d-')]
avantages = labo[['DECL_AVANT_DATE','DECL_AVANT_MONTANT', 'BENEF_PS_QUALIFICATION', 'ORIGIN']]
avantages.index = pd.to_datetime(avantages['DECL_AVANT_DATE'])

Pas plus de cadeaux début 2013


In [120]:
avantages['DECL_AVANT_MONTANT'].resample('BQ', how='count').plot()


Out[120]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f8bfe156390>

Mi 2013 : un transfert des cadeaux des gynécos vers les généralistes


In [136]:
avantages[(avantages['BENEF_PS_QUALIFICATION'] == u'Gynécologie')|(avantages['BENEF_PS_QUALIFICATION'] == u'Médecine générale')].groupby(['ORIGIN', 'BENEF_PS_QUALIFICATION'])[['ORIGIN']].resample('BQ', how='count')


Out[136]:
ORIGIN
ORIGIN BENEF_PS_QUALIFICATION DECL_AVANT_DATE
Médecin Gynécologie 2012-03-30 543
2012-06-29 638
2012-09-28 236
2012-12-31 656
2013-03-29 473
2013-06-28 534
2013-09-30 0
Médecine générale 2012-03-30 29
2012-06-29 40
2012-09-28 10
2012-12-31 44
2013-03-29 27
2013-06-28 37
2013-09-30 263
2013-12-31 597
2014-03-31 910
2014-06-30 917
2014-09-30 0

Les dates correspondent à des semestres

Exploitation des données Biogaram


In [2]:
#Chargement des données
labo = pd.read_csv("BIOGARAN.anon.csv", encoding='utf-8')
labo = labo[labo.DECL_AVANT_DATE != 'None']
labo = labo.dropna(subset = ['DECL_AVANT_DATE'])
labo = labo[labo.DECL_AVANT_DATE.str.contains(r'^20\d\d-')]
avantages = labo[['DECL_AVANT_DATE','DECL_AVANT_MONTANT', 'BENEF_PS_QUALIFICATION', 'ORIGIN']]
avantages.index = pd.to_datetime(avantages['DECL_AVANT_DATE'])

Pas particulièrement plus de cadaeux début 2013


In [8]:
avantages['DECL_AVANT_MONTANT'].resample('BQ', how='count').plot()


Out[8]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f7514e78f90>

Des pharmaciens quasi exclusivement visés


In [10]:
avantages.groupby(['ORIGIN', 'BENEF_PS_QUALIFICATION'])[['DECL_AVANT_MONTANT']].count()


Out[10]:
DECL_AVANT_MONTANT
ORIGIN BENEF_PS_QUALIFICATION
Infirmier Infirmier 11
Médecin Médecine générale 40
Pharmacien Angiologie 1
Non renseigné 67
Pharmacologie 9030
Préparateur en pharmacie Préparation en pharmacie 2377

Sans doute du à son statut de génériqueur

Analyse des données concernant les gynécos


In [2]:
#Chargement des données
gynecos = pd.read_csv("gynecos.anon.csv", encoding='utf-8')
gynecos = gynecos[gynecos.BENEF_PS_QUALIFICATION == u'Gynécologie']
gynecos = gynecos[gynecos.DECL_TYPE == 'AVANTAGE']
gynecos = gynecos[gynecos.DECL_AVANT_DATE.str.contains(r'^20\d\d-')]
gynecos.index = pd.to_datetime(gynecos['DECL_AVANT_DATE'])

Nombre de cadeaux entre 2012 et 2014


In [3]:
gynecos.LABO.count()


Out[3]:
29446

Le nombre de cadeaux dans le temps


In [4]:
gynecos['DECL_AVANT_MONTANT'].resample('BQ', how='count').plot()


Out[4]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f70001f1850>

Le détails des investissements par labos


In [5]:
gynecosParLabos = gynecos[['DECL_AVANT_MONTANT', 'LABO']].groupby('LABO').sum().sort('DECL_AVANT_MONTANT', ascending=False)
gynecosParLabos['count'] = gynecos[['DECL_AVANT_MONTANT', 'LABO']].groupby('LABO').count()
gynecosParLabos['moyenne'] = gynecosParLabos['DECL_AVANT_MONTANT']/gynecosParLabos['count']
gynecosParLabos['porportion_count'] = gynecosParLabos['count'] * 100 / gynecos.LABO.count()
gynecosParLabos['porportion_montant'] = gynecosParLabos['DECL_AVANT_MONTANT'] * 100 / gynecos.DECL_AVANT_MONTANT.sum()
gynecosParLabos


Out[5]:
DECL_AVANT_MONTANT count moyenne porportion_count porportion_montant
LABO
Theramex SAM 915141.000000 10721 85.359668 36.409020 32.824239
DAIICHI SANKYO 437192.000000 2818 155.142654 9.570060 15.681185
BAYER 355986.000000 543 655.591160 1.844054 12.768491
EFFIK 160580.000000 3080 52.136364 10.459825 5.759677
GLAXOSMITHKLINE 145855.000000 1904 76.604517 6.466073 5.231521
SERVIER 132258.000000 2655 49.814689 9.016505 4.743824
IPSEN 128008.000000 993 128.910373 3.372275 4.591386
NOVARTIS PHARMA 59278.000000 704 84.201705 2.390817 2.126181
AMERICAN MEDICAL SYSTEMS 54406.000000 202 269.336634 0.686001 1.951432
PFIZER 50629.000000 527 96.070209 1.789717 1.815959
ROCHE 47956.000000 314 152.726115 1.066359 1.720084
ASTELLAS PHARMA 37222.000000 296 125.750000 1.005230 1.335077
COUSIN BIOSERV 34549.000000 226 152.871681 0.767507 1.239202
SANOFI 31434.000000 1043 30.138063 3.542077 1.127473
TAKEDA 21429.000000 757 28.307794 2.570808 0.768614
BARD 20314.000000 147 138.190476 0.499219 0.728622
AMGEN 19612.000000 171 114.690058 0.580724 0.703442
SANOFI PASTEUR 16035.000000 29 552.931034 0.098485 0.575143
GENEVRIER 15718.000000 498 31.562249 1.691231 0.563773
COVIDIEN 12417.000000 85 146.082353 0.288664 0.445372
PHARMATERA 11915.000000 452 26.360619 1.535013 0.427367
CCD 10424.099998 215 48.484186 0.730150 0.373891
GE Medical Systems 8685.000000 210 41.357143 0.713170 0.311513
GEDEON RICHTER 7983.000000 48 166.312500 0.163010 0.286334
BOEHRINGER INGELHEIM 5598.000000 72 77.750000 0.244515 0.200789
Lilly 4860.000000 85 57.176471 0.288664 0.174318
ALLERGAN 4782.000000 56 85.392857 0.190179 0.171521
SANDOZ 3320.000000 10 332.000000 0.033960 0.119082
Genzyme 2897.000000 8 362.125000 0.027168 0.103909
NOVEX PHARMA 2822.000000 17 166.000000 0.057733 0.101219
... ... ... ... ... ...
LABCATAL 754.000000 21 35.904762 0.071317 0.027044
MEDTRONIC 644.000000 22 29.272727 0.074713 0.023099
MEDA PHARMA 588.000000 12 49.000000 0.040753 0.021090
Becton Dickinson 452.000000 3 150.666667 0.010188 0.016212
ACTELION 423.000000 9 47.000000 0.030564 0.015172
BRAHMS 374.720005 11 34.065455 0.037357 0.013440
TEVA PHARMA 347.000000 13 26.692308 0.044149 0.012446
LUNDBECK 289.000000 6 48.166667 0.020376 0.010366
VIFOR 259.000000 15 17.266667 0.050941 0.009290
CHUGAI PHARMA 246.000000 13 18.923077 0.044149 0.008824
ST JUDE MEDICAL 212.000000 4 53.000000 0.013584 0.007604
ZAMBON 206.000000 6 34.333333 0.020376 0.007389
COVIDIEN IMAGING 196.870001 7 28.124286 0.023772 0.007061
CONVATEC 183.000000 4 45.750000 0.013584 0.006564
SMITHS MEDICAL 180.000000 1 180.000000 0.003396 0.006456
ARCHIMEDES PHARMA 160.000000 7 22.857143 0.023772 0.005739
ViiV HEALTHCARE 156.000000 3 52.000000 0.010188 0.005595
PROSTRAKAN PHARMA 117.000000 5 23.400000 0.016980 0.004197
EUSAPHARMA 115.980000 6 19.330000 0.020376 0.004160
EXPANSCIENCE 105.000000 2 52.500000 0.006792 0.003766
MEDLINE 75.000000 1 75.000000 0.003396 0.002690
BIOCODEX 72.000000 1 72.000000 0.003396 0.002582
BIOGEN IDEC 60.000000 1 60.000000 0.003396 0.002152
COSMETIQUE ACTIVE 57.000000 1 57.000000 0.003396 0.002044
CELGENE 54.000000 2 27.000000 0.006792 0.001937
GALDERMA 50.000000 1 50.000000 0.003396 0.001793
PHILIPS 34.000000 2 17.000000 0.006792 0.001220
ORPHAN EUROPE 20.000000 1 20.000000 0.003396 0.000717
INNOTECH INTERNATIONAL 19.000000 1 19.000000 0.003396 0.000681
ALFA WASSERMANN PHARMA 10.000000 1 10.000000 0.003396 0.000359

76 rows × 5 columns

30% des cadeaux aux gynécos viennent d'un laboratoire : Theramex SAM

Nombre de cadeaux : le pic de 2012 est lié à Theramex SAM


In [6]:
#Theramex SAM
gynecos[gynecos.LABO == 'Theramex SAM']['DECL_AVANT_MONTANT'].resample('BQ', how='count').plot()


Out[6]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f6fffd65990>

Au vu de ce biais, excluons Theramex SAM


In [7]:
gynecos[gynecos.LABO != 'Theramex SAM']['DECL_AVANT_MONTANT'].resample('BQ', how='count').plot()


Out[7]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f6fffce3ed0>

Les montants investis (hors Theramax) montrent les même tendances


In [8]:
gynecos[gynecos.LABO != 'Theramex SAM']['DECL_AVANT_MONTANT'].resample('BQ', how='sum').plot()


Out[8]:
<matplotlib.axes._subplots.AxesSubplot at 0x7f6fffc4b210>

Détails du nombre de cadeaux par labos et semestres


In [29]:
semestres = gynecos.groupby(['LABO'])[['DECL_AVANT_MONTANT']].resample('BQ', how='count')
semestres[semestres.DECL_AVANT_MONTANT > 100]


Out[29]:
DECL_AVANT_MONTANT
LABO DECL_AVANT_DATE
AMERICAN MEDICAL SYSTEMS 2013-03-29 118
ASTELLAS PHARMA 2013-03-29 104
2013-06-28 131
BAYER 2012-03-30 296
2012-06-29 206
CCD 2013-06-28 144
COUSIN BIOSERV 2013-03-29 141
DAIICHI SANKYO 2012-03-30 975
2012-06-29 425
2012-09-28 210
2012-12-31 1208
EFFIK 2012-03-30 543
2012-06-29 638
2012-09-28 236
2012-12-31 656
2013-03-29 473
2013-06-28 534
GE Medical Systems 2012-06-29 137
GENEVRIER 2013-03-29 214
2013-06-28 284
GLAXOSMITHKLINE 2013-03-29 1045
2013-06-28 855
IPSEN 2012-03-30 185
2012-06-29 231
2012-09-28 141
2012-12-31 130
2013-06-28 216
NOVARTIS PHARMA 2012-06-29 160
2012-12-31 107
2013-03-29 158
2013-06-28 101
PFIZER 2012-03-30 104
2012-06-29 115
2012-09-28 114
2013-03-29 104
PHARMATERA 2013-06-28 189
ROCHE 2013-03-29 314
SANOFI 2012-03-30 172
2012-06-29 250
2012-12-31 276
2013-06-28 198
SERVIER 2012-03-30 240
2012-06-29 544
2012-09-28 206
2012-12-31 624
2013-03-29 488
2013-06-28 553
TAKEDA 2012-03-30 192
2012-06-29 169
2012-12-31 155
2013-03-29 141
Theramex SAM 2012-03-30 5230
2012-06-29 2033
2012-09-28 447
2012-12-31 1760
2013-03-29 1241

In [ ]: