Condiciones para la denuncia de la corrupción en El Salvador - Procesamiento de datos

In [1]:
%run libreria.py
%matplotlib inline

I. Mandato

In [2]:
mandato = []

1. Vías establecidas para recibir denuncias

In [3]:
index = 'viacomm'
mandato.append(index)
meta[index] = {}
meta[index]['labels'] = [
    'Presencial', 
    'Telefónica', 
    'Electrónica',
    'Por medio de escritos',
    'Otra']
meta[index]['vars'] = [
    index + '_presencial', 
    index + '_telefonica', 
    index + '_electronica',
    index + '_escrito', 
    index + '_otra'
]
meta_check_len(index)
Out[3]:
True
In [4]:
generateSet(formulario.viacomm)
Out[4]:
{'APP Crimestopper aunque no es propiedad de la PNC',
 'Electrónica (e.mail',
 'Fax',
 'Por medio de escritos',
 'Por medio delas CEG',
 'Presencial',
 'Telefónica',
 'redes sociales y web site)'}
In [5]:
generateColumns(index)
Out[5]:
institucion viacomm_presencial viacomm_telefonica viacomm_electronica viacomm_escrito viacomm_otra
0 TEG 1 1 1 1 1
1 MINSAL 1 1 1 1 1
2 I.JUDICIAL 1 0 0 1 0
3 PROBIDAD 0 0 0 1 0
4 SPTA 1 1 1 1 1
5 MINED 1 1 1 1 1
6 FGR 1 1 0 1 0
7 PNC 1 1 1 1 1
8 MH 1 1 1 1 1
9 CCR 1 1 1 1 1
In [6]:
showColumns(index, 'Vías de comunicación')
Out[6]:
0
viacomm_presencial 90.0
viacomm_telefonica 80.0
viacomm_electronica 70.0
viacomm_escrito 100.0
viacomm_otra 70.0
In [7]:
meanColumns(index)
In [8]:
generateStats(index)
Mediana:  1.0000
Promedio: 0.8500
In [9]:
res = aggregateColumns(index, 'Vías de comunicación')
res
Out[9]:
viacomm
0.25    1
0.50    1
0.75    1
1.00    7
Name: viacomm, dtype: int64
In [10]:
byOffice(index, 'Vías de comunicación por oficina')
Out[10]:
institucion viacomm
0 TEG 1.00
1 MINSAL 1.00
2 I.JUDICIAL 0.50
3 PROBIDAD 0.25
4 SPTA 1.00
5 MINED 1.00
6 FGR 0.75
7 PNC 1.00
8 MH 1.00
9 CCR 1.00

2. Documentación solicitada

In [11]:
index = 'reqdenun'
mandato.append(index)
meta[index] = {}
meta[index]['labels'] = [
    'Ser salvadoreño',
    'Saber leer y escribir',
    'Ser mayor de 18 años',
    'Residir en El Salvador',
    'Presentar documento de identidad',
    'Presentar pruebas',
    'Documentos autenticados',
    'Certificación de documentos proporcionados',
    'Otro'
]
meta[index]['vars'] = [
    index + '_salv', 
    index + '_leerescribir', 
    index + '_mayor18', 
    index + '_residente',
    index + '_identidad', 
    index + '_pruebas', 
    index + '_autenticas', 
    index + '_certificacion',
    index + '_otro'
]
meta_check_len(index)
Out[11]:
True
In [12]:
generateSet(formulario[index])
Out[12]:
{'Certificación de documentos proporcionados',
 'Describir bien el hecho',
 'Describir con claridad el hecho y si tienen documentación deben presentarla',
 'Describir el hecho con indicación de sus partícipes',
 'Documentos autenticados',
 'Identificar al denunciado',
 'Nada',
 'Presentar documento de identidad',
 'Presentar pruebas',
 'Ser mayor de 18 años',
 'TODA PERSONA NATURAL O JURIDICA QUE TUVIESE CONOCIMIENTO DE  ACCIONES U OMISIONES DE SERVIDORES PÚBLICOS QUE AFECTEN A RECURSOS DEL ESTADO Y SU ADMINISTRACION.',
 'descripción clara del hecho denunciado',
 'firma o huella del denunciante',
 'lugar para recibir notificaciones',
 'personalmente o con firma legalizada',
 'testigos y otros elementos + firma'}
In [13]:
generateColumns(index)
Out[13]:
institucion reqdenun_salv reqdenun_leerescribir reqdenun_mayor18 reqdenun_residente reqdenun_identidad reqdenun_pruebas reqdenun_autenticas reqdenun_certificacion reqdenun_otro
0 TEG 0 0 1 0 1 0 0 0 1
1 MINSAL 0 0 0 0 1 0 0 0 0
2 I.JUDICIAL 0 0 0 0 1 0 0 0 0
3 PROBIDAD 0 0 0 0 0 1 1 1 0
4 SPTA 0 0 0 0 0 0 0 0 1
5 MINED 0 0 0 0 0 0 0 0 1
6 FGR 0 0 0 0 0 0 0 0 1
7 PNC 0 0 0 0 1 0 0 0 1
8 MH 0 0 0 0 0 0 0 0 1
9 CCR 0 0 0 0 0 0 0 0 1
In [14]:
res = showColumns(index, 'Vías de comunicación')
res
Out[14]:
0
reqdenun_salv 0.0
reqdenun_leerescribir 0.0
reqdenun_mayor18 10.0
reqdenun_residente 0.0
reqdenun_identidad 40.0
reqdenun_pruebas 10.0
reqdenun_autenticas 10.0
reqdenun_certificacion 10.0
reqdenun_otro 70.0
In [15]:
discountColumns(index)
In [16]:
generateStats(index)
Mediana:  0.9375
Promedio: 0.9000
In [17]:
res = aggregateColumns(index, 'Requisitos para denunciar')
res
Out[17]:
reqdenun
0.625    1
0.750    1
0.875    3
1.000    5
Name: reqdenun, dtype: int64
In [18]:
byOffice(index, 'Requisitos para denunciar por oficina')
Out[18]:
institucion reqdenun
0 TEG 0.750
1 MINSAL 0.875
2 I.JUDICIAL 0.875
3 PROBIDAD 0.625
4 SPTA 1.000
5 MINED 1.000
6 FGR 1.000
7 PNC 0.875
8 MH 1.000
9 CCR 1.000

3. Disposiciones para garantizar confidencialidad

In [19]:
index = 'confidencialidad'
generateSet(formulario[index])
Out[19]:
{'En Ley que rige la institución', 'En normas internas', 'En reglamentos'}
In [20]:
mandato.append(index)
meta[index] = {}
meta[index]['labels'] = [
    'En Ley que rige la institución', 
    'En reglamentos', 
    'En normas internas', 
    'No está establecido',
    'Otro'
]
meta[index]['vars'] = [
    index + '_ley',
    index + '_reglamento',
    index + '_norma_interna',
    index + '_ninguna',
    index + '_otro'
]
meta_check_len(index)
Out[20]:
True
In [21]:
generateColumns(index)
Out[21]:
institucion confidencialidad_ley confidencialidad_reglamento confidencialidad_norma_interna confidencialidad_ninguna confidencialidad_otro
0 TEG 1 0 0 0 0
1 MINSAL 0 0 1 0 0
2 I.JUDICIAL 1 0 1 0 0
3 PROBIDAD 1 0 0 0 0
4 SPTA 0 0 1 0 0
5 MINED 1 0 0 0 0
6 FGR 0 0 1 0 0
7 PNC 0 1 0 0 0
8 MH 1 0 0 0 0
9 CCR 0 1 0 0 0
In [22]:
res = showColumns(index, 'Disposiciones para garantizar confidencialidad')
res
Out[22]:
0
confidencialidad_ley 50.0
confidencialidad_reglamento 20.0
confidencialidad_norma_interna 40.0
confidencialidad_ninguna 0.0
confidencialidad_otro 0.0
In [23]:
rankByOrderColumns(index)
Out[23]:
0    1.0000
1    0.3333
2    1.0000
3    1.0000
4    0.3333
5    1.0000
6    0.3333
7    0.6667
8    1.0000
9    0.6667
Name: confidencialidad, dtype: float64
In [24]:
generateStats(index)
Mediana:  0.8334
Promedio: 0.7333
In [25]:
res = aggregateColumns(index, 'Disposiciones para garantizar confidencialidad')
res
Out[25]:
confidencialidad
0.3333    3
0.6667    2
1.0000    5
Name: confidencialidad, dtype: int64
In [26]:
byOffice(index, 'Disposiciones para garantizar confidencialidad por oficina')
Out[26]:
institucion confidencialidad
0 TEG 1.0000
1 MINSAL 0.3333
2 I.JUDICIAL 1.0000
3 PROBIDAD 1.0000
4 SPTA 0.3333
5 MINED 1.0000
6 FGR 0.3333
7 PNC 0.6667
8 MH 1.0000
9 CCR 0.6667

4. Recepción de Avisos, denuncias anónimas o quejas / reclamos

In [27]:
index = 'tipodncia'
generateSet(formulario[index])
Out[27]:
{'De oficio',
 'Denuncias anónimas',
 'Denuncias que se presentan con pruebas',
 'Denuncias que se presentan sin pruebas (avisos)',
 'Quejas',
 'medios de comunicación e informes institcuionales'}
In [28]:
meta[index] = {}
meta[index]['labels'] = [
    'Denuncias que se presentan con pruebas',
    'Denuncias que se presentan sin pruebas (avisos)',
    'Denuncias anónimas',
    'Otro'
]
meta[index]['vars'] = [
    index + '_con_pruebas',
    index + '_sin_pruebas',
    index + '_anonimas',
    index + '_otro'
]
meta_check_len(index)
Out[28]:
True
In [29]:
generateColumns(index)
Out[29]:
institucion tipodncia_con_pruebas tipodncia_sin_pruebas tipodncia_anonimas tipodncia_otro
0 TEG 1 1 1 1
1 MINSAL 1 1 1 0
2 I.JUDICIAL 1 1 0 1
3 PROBIDAD 1 0 0 0
4 SPTA 0 0 0 1
5 MINED 1 1 1 0
6 FGR 1 1 1 0
7 PNC 1 1 1 0
8 MH 1 1 1 0
9 CCR 1 0 1 0
In [30]:
index = 'viasuger'
meta[index] = {}
meta[index]['labels'] = [
    'Buzón de sugerencias',
    'Mensajes electrónicos',
    'Teléfono',
    'Otro',
    'No se reciben sugerencias'
]
meta[index]['vars'] = [
    index + '_buzon',
    index + '_msjs_electronicos',
    index + '_tel',
    index + '_otro',
    index + '_ninguno'
    
]
meta_check_len(index)
Out[30]:
True
In [31]:
generateColumns(index)
Out[31]:
institucion viasuger_buzon viasuger_msjs_electronicos viasuger_tel viasuger_otro viasuger_ninguno
0 TEG 0 0 0 0 1
1 MINSAL 1 1 1 0 0
2 I.JUDICIAL 1 0 0 0 1
3 PROBIDAD 1 1 0 0 0
4 SPTA 1 1 1 0 1
5 MINED 1 1 0 0 0
6 FGR 1 0 0 0 0
7 PNC 0 0 0 0 1
8 MH 1 1 1 0 0
9 CCR 0 0 0 0 1
In [32]:
del data[index + '_ninguno']
del meta[index]['labels'][-1]
del meta[index]['vars'][-1]
In [33]:
data[meta[index]['vars']]
Out[33]:
viasuger_buzon viasuger_msjs_electronicos viasuger_tel viasuger_otro
0 0 0 0 0
1 1 1 1 0
2 1 0 0 0
3 1 1 0 0
4 1 1 1 0
5 1 1 0 0
6 1 0 0 0
7 0 0 0 0
8 1 1 1 0
9 0 0 0 0
In [34]:
oneIfAnyColumns(index)
data[index]
Out[34]:
0    0
1    1
2    1
3    1
4    1
5    1
6    1
7    0
8    1
9    0
Name: viasuger, dtype: int64
In [35]:
index = 'avisos_y_anonimos'
mandato.append(index)
meta[index] = {}
data[index] = ((data['tipodncia_sin_pruebas'] + data['tipodncia_anonimas'] + data['viasuger']) / 3).round(4)
data[index]
Out[35]:
0    0.6667
1    1.0000
2    0.6667
3    0.3333
4    0.3333
5    1.0000
6    1.0000
7    0.6667
8    1.0000
9    0.3333
Name: avisos_y_anonimos, dtype: float64
In [36]:
generateStats(index)
Mediana:  0.6667
Promedio: 0.7000
In [37]:
res = aggregateColumns(index, 'Recepción de Avisos, denuncias anónimas o quejas / reclamos')
res
Out[37]:
avisos_y_anonimos
0.3333    3
0.6667    3
1.0000    4
Name: avisos_y_anonimos, dtype: int64
In [38]:
byOffice(index, 'Recepción de Avisos, denuncias anónimas o quejas / reclamos')
Out[38]:
institucion avisos_y_anonimos
0 TEG 0.6667
1 MINSAL 1.0000
2 I.JUDICIAL 0.6667
3 PROBIDAD 0.3333
4 SPTA 0.3333
5 MINED 1.0000
6 FGR 1.0000
7 PNC 0.6667
8 MH 1.0000
9 CCR 0.3333

5. Investigación de casos de presunta corrupción

In [39]:
index = 'iniinvest'
mandato.append(index)
meta[index] = {}
meta[index]['labels'] = [
    'De forma oficiosa',
    'A partir de las denuncias recibidas',
    'A partir de avisos o denuncias anónimas',
    'A partir de quejas o reclamos',
    'Otro',
    'No se han realizado investigaciones'
]
meta[index]['vars'] = [
    index + '_oficiosa',
    index + '_denuncias',
    index + '_avisos',
    index + '_quejas',
    index + '_otro',
    index + '_ninguno'
]
meta_check_len(index)
Out[39]:
True
In [40]:
generateColumns(index)
Out[40]:
institucion iniinvest_oficiosa iniinvest_denuncias iniinvest_avisos iniinvest_quejas iniinvest_otro iniinvest_ninguno
0 TEG 1 1 1 0 0 0
1 MINSAL 0 1 1 1 0 0
2 I.JUDICIAL 1 1 1 0 0 0
3 PROBIDAD 1 1 0 0 0 0
4 SPTA 1 1 1 1 0 0
5 MINED 0 1 0 1 0 0
6 FGR 1 1 1 0 0 0
7 PNC 1 1 1 0 0 0
8 MH 1 1 1 1 0 0
9 CCR 0 1 0 0 0 0
In [41]:
del data[index + '_ninguno']
del meta[index]['labels'][-1]
del meta[index]['vars'][-1]
data[meta[index]['vars']]
Out[41]:
iniinvest_oficiosa iniinvest_denuncias iniinvest_avisos iniinvest_quejas iniinvest_otro
0 1 1 1 0 0
1 0 1 1 1 0
2 1 1 1 0 0
3 1 1 0 0 0
4 1 1 1 1 0
5 0 1 0 1 0
6 1 1 1 0 0
7 1 1 1 0 0
8 1 1 1 1 0
9 0 1 0 0 0
In [42]:
res = showColumns(index, 'Inicio de investigaciones')
res
Out[42]:
0
iniinvest_oficiosa 70.0
iniinvest_denuncias 100.0
iniinvest_avisos 70.0
iniinvest_quejas 40.0
iniinvest_otro 0.0
In [43]:
oneIfAnyColumns(index)
In [44]:
generateStats(index)
Mediana:  1.0000
Promedio: 1.0000
In [45]:
res = aggregateColumns(index, 'Investigación de casos de presunta corrupción')
res
Out[45]:
iniinvest
1    10
Name: iniinvest, dtype: int64
In [46]:
byOffice(index, 'Investigación de casos de presunta corrupción')
Out[46]:
institucion iniinvest
0 TEG 1
1 MINSAL 1
2 I.JUDICIAL 1
3 PROBIDAD 1
4 SPTA 1
5 MINED 1
6 FGR 1
7 PNC 1
8 MH 1
9 CCR 1

6. Validación del contenido de la denuncia

In [47]:
index = 'docnorm'
meta[index] = {}
meta[index]['labels'] = [
    'Manuales de procedimiento',
    'Código de conducta para el personal',
    'Manual de puestos y funciones',
    'Política para validar contenido de las denuncias',
    'Manuales o documentos en los que se reconocen los derechos de los usuarios',
    'Otro'
]
meta[index]['vars'] = [
    index + '_procedimientos',
    index + '_conducta',
    index + '_puestos',
    index + '_validacion',
    index + '_derechos',
    index + '_otro'
]
meta_check_len(index)
Out[47]:
True
In [48]:
generateSet(formulario[index])
Out[48]:
{'Código de conducta para el personal',
 'Ley de la Carrera Judicial',
 'Lineamiento para trato de los usuarios según el Código Procesal',
 'Manual de puestos y funciones',
 'Manuales de procedimiento',
 'Manuales o documentos en los que se reconocen los derechos de los usuarios',
 'No se tienen',
 'Política para validar contenido de las denuncias',
 'se trabaja de acuerdo a lo que establece el RIEO'}
In [49]:
generateColumns(index)
Out[49]:
institucion docnorm_procedimientos docnorm_conducta docnorm_puestos docnorm_validacion docnorm_derechos docnorm_otro
0 TEG 1 0 1 0 1 0
1 MINSAL 1 1 1 0 1 0
2 I.JUDICIAL 1 1 1 1 0 1
3 PROBIDAD 1 0 1 0 0 0
4 SPTA 0 0 0 0 0 1
5 MINED 1 0 1 0 1 0
6 FGR 1 1 1 1 1 0
7 PNC 1 1 1 1 0 1
8 MH 1 1 1 1 1 0
9 CCR 1 0 1 0 0 0
In [50]:
index = 'docnorm_validacion'
mandato.append(index)
meta[index] = {}
In [51]:
generateStats(index)
Mediana:  0.0000
Promedio: 0.4000
In [52]:
res = aggregateColumns(index, 'Validación del contenido de la denuncia')
res
Out[52]:
docnorm_validacion
0    6
1    4
Name: docnorm_validacion, dtype: int64
In [53]:
byOffice(index, 'Validación del contenido de la denuncia')
Out[53]:
institucion docnorm_validacion
0 TEG 0
1 MINSAL 0
2 I.JUDICIAL 1
3 PROBIDAD 0
4 SPTA 0
5 MINED 0
6 FGR 1
7 PNC 1
8 MH 1
9 CCR 0

Registro de las denuncias maliciosas o sin fundamento recibidas

In [54]:
index = 'afirm01'
meta[index] = {}
meta[index]['labels'] = [
    'Se lleva registro de las denuncias que se califican como de contenido no válido',
    'Se han procesado denuncias a partir de quejas o reclamos de los usuarios',
    'El personal que se dispone es exclusivamente para la oficina de denuncias',
    'El cargo del jefe de la oficina se clasifica como “de confianza”',
    'Se tiene definido el presupuesto que se asigna a la oficina de denuncia anualmente',
    'Se cuenta con un software o herramienta especial para registrar y dar seguimiento a las denuncias'
]
meta[index]['vars'] = [
    index + '_reg_no_validas',
    index + '_proc_quejas',
    index + '_personal_exclusivo',
    index + '_jefe_confianza',
    index + '_ppto',
    index + '_software_seg'
]
meta_check_len(index)
Out[54]:
True
In [55]:
generateColumns(index)
Out[55]:
institucion afirm01_reg_no_validas afirm01_proc_quejas afirm01_personal_exclusivo afirm01_jefe_confianza afirm01_ppto afirm01_software_seg
0 TEG 1 0 1 0 1 1
1 MINSAL 1 1 0 0 0 0
2 I.JUDICIAL 1 1 0 0 0 1
3 PROBIDAD 1 0 0 0 0 0
4 SPTA 1 1 1 0 0 0
5 MINED 0 1 1 1 0 0
6 FGR 1 0 1 1 0 1
7 PNC 1 0 0 0 0 0
8 MH 1 1 1 0 1 0
9 CCR 1 0 1 0 0 1
In [56]:
index = 'afirm01_reg_no_validas'
mandato.append(index)
meta[index] = {}
In [57]:
generateStats(index)
Mediana:  1.0000
Promedio: 0.9000
In [58]:
res = aggregateColumns(index, 'Registro de las denuncias maliciosas o sin fundamento recibidas')
res
Out[58]:
afirm01_reg_no_validas
0    1
1    9
Name: afirm01_reg_no_validas, dtype: int64
In [59]:
byOffice(index, 'Registro de las denuncias maliciosas o sin fundamento recibidas')
Out[59]:
institucion afirm01_reg_no_validas
0 TEG 1
1 MINSAL 1
2 I.JUDICIAL 1
3 PROBIDAD 1
4 SPTA 1
5 MINED 0
6 FGR 1
7 PNC 1
8 MH 1
9 CCR 1

Recepción directa de las denuncias

In [60]:
title = 'Recepción directa de las denuncias'
index = 'lugrecep'
mandato.append(index)
meta[index] = {}
meta[index]['labels'] = [
    'Se reciben directamente en la oficina',
    'Se reciben por medio de otra(s) oficina(s)',
    'Otro',
    'No se tiene establecido'
]
meta[index]['vars'] = [
    index + '_directo',
    index + '_otra_oficina',
    index + '_otro',
    index + '_ninguno'
]
meta_check_len(index)
Out[60]:
True
In [61]:
generateSet(formulario[index])
Out[61]:
{'Por medio de las CEG',
 'Se reciben directamente en la oficina',
 'Se reciben por medio de otra(s) oficina(s)'}
In [62]:
generateColumns(index)
Out[62]:
institucion lugrecep_directo lugrecep_otra_oficina lugrecep_otro lugrecep_ninguno
0 TEG 1 1 0 1
1 MINSAL 1 1 0 0
2 I.JUDICIAL 1 1 0 0
3 PROBIDAD 1 0 0 0
4 SPTA 1 0 0 0
5 MINED 1 1 0 0
6 FGR 1 1 0 0
7 PNC 1 1 0 0
8 MH 1 1 0 0
9 CCR 1 1 0 0
In [63]:
del data[index + '_ninguno']
del meta[index]['labels'][-1]
del meta[index]['vars'][-1]
data[meta[index]['vars']]
Out[63]:
lugrecep_directo lugrecep_otra_oficina lugrecep_otro
0 1 1 0
1 1 1 0
2 1 1 0
3 1 0 0
4 1 0 0
5 1 1 0
6 1 1 0
7 1 1 0
8 1 1 0
9 1 1 0
In [64]:
rankByOrderColumns(index)
Out[64]:
0    1.0
1    1.0
2    1.0
3    1.0
4    1.0
5    1.0
6    1.0
7    1.0
8    1.0
9    1.0
Name: lugrecep, dtype: float64
In [65]:
generateStats(index)
Mediana:  1.0000
Promedio: 1.0000
In [66]:
aggregateColumns(index, 'Recepción directa de las denuncias')
Out[66]:
lugrecep
1.0    10
Name: lugrecep, dtype: int64
In [67]:
byOffice(index, 'Recepción directa de las denuncias')
Out[67]:
institucion lugrecep
0 TEG 1.0
1 MINSAL 1.0
2 I.JUDICIAL 1.0
3 PROBIDAD 1.0
4 SPTA 1.0
5 MINED 1.0
6 FGR 1.0
7 PNC 1.0
8 MH 1.0
9 CCR 1.0

Potestad para investigar

In [68]:
index = 'indprocden'
meta[index] = {}
data[index] = formulario[index] / 5
index_1 = index
In [69]:
index = 'indsancion'
meta[index] = {}
data[index] = formulario[index] / 5
index_2 = index
In [70]:
index = 'potestad_investigar'
meta[index] = {}
mandato.append(index)
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[70]:
0    0.9
1    0.6
2    1.0
3    0.3
4    0.6
5    0.6
6    0.8
7    0.7
8    0.6
9    0.6
Name: potestad_investigar, dtype: float64
In [71]:
generateStats(index)
Mediana:  0.6000
Promedio: 0.6700
In [72]:
aggregateColumns(index, 'Potestad para investigar')
Out[72]:
potestad_investigar
0.3    1
0.6    5
0.7    1
0.8    1
0.9    1
1.0    1
Name: potestad_investigar, dtype: int64
In [73]:
byOffice(index, 'Potestad para investigar')
Out[73]:
institucion potestad_investigar
0 TEG 0.9
1 MINSAL 0.6
2 I.JUDICIAL 1.0
3 PROBIDAD 0.3
4 SPTA 0.6
5 MINED 0.6
6 FGR 0.8
7 PNC 0.7
8 MH 0.6
9 CCR 0.6

Lineamientos técnicos que regulan el trabajo

In [74]:
index_1 = 'docnorm_procedimientos'
meta[index_1] = {}
index_2 = 'afirm01_jefe_confianza'
meta[index_2] = {}
In [75]:
index = 'lineamientos_tecnicos'
mandato.append(index)
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
In [76]:
generateStats(index)
Mediana:  0.5000
Promedio: 0.5500
In [77]:
res = aggregateColumns(index, 'Lineamientos técnicos que regulan el trabajo')
res
Out[77]:
lineamientos_tecnicos
0.0    1
0.5    7
1.0    2
Name: lineamientos_tecnicos, dtype: int64
In [78]:
byOffice(index, 'Lineamientos técnicos que regulan el trabajo')
Out[78]:
institucion lineamientos_tecnicos
0 TEG 0.5
1 MINSAL 0.5
2 I.JUDICIAL 0.5
3 PROBIDAD 0.5
4 SPTA 0.0
5 MINED 1.0
6 FGR 1.0
7 PNC 0.5
8 MH 0.5
9 CCR 0.5

Resolución directa de problemas

In [79]:
index = 'viaproblem'
mandato.append(index)
meta[index] = {}
catalogo[catalogo['label'] == index]
Out[79]:
label desc Tipo de evaluación Puntuación Unnamed: 4
28 viaproblem 23.\tEn caso de ser necesario ¿Qué hacen para ... Único a=1, b=0.75, c=0.5, d=0.25 NaN
In [80]:
generateSet(formulario[index])
Out[80]:
{'APLICARIAOS LOS PRINCIPIO DEL DEBIDO PROCESO',
 'Consulta con el titular de la institución',
 'Consulta con otro(s) jefe(s)',
 'LA COMPETECNIA DE NUESTRAS ATRIBUCIONES SON TODAS PREVISTAS EN EL MANUAL',
 'PERO SINO FUERE ASÍ',
 'Resuelve el jefe de la oficina',
 'Se resuelve internamente y de no ser posible',
 'se propone la solución al titular de la institución'}
In [81]:
meta[index]['labels'] = [
    'Resuelve el jefe de la oficina',
    'Consulta con el titular de la institución',
    'Consulta con otro(s) jefe(s)',
    'Otro'
]
meta[index]['vars'] = [
    index + '_jefe',
    index + '_titular',
    index + '_otros_jefes',
    index + '_otro'
]
meta_check_len(index)
Out[81]:
True
In [82]:
generateColumns(index)
Out[82]:
institucion viaproblem_jefe viaproblem_titular viaproblem_otros_jefes viaproblem_otro
0 TEG 1 0 0 0
1 MINSAL 0 0 1 0
2 I.JUDICIAL 0 0 0 1
3 PROBIDAD 0 0 1 0
4 SPTA 0 1 0 0
5 MINED 0 0 1 0
6 FGR 0 1 0 0
7 PNC 0 0 1 0
8 MH 1 0 0 0
9 CCR 0 0 0 1
In [83]:
rankByOrderColumns(index)
Out[83]:
0    1.0
1    0.0
2    0.0
3    0.0
4    0.5
5    0.0
6    0.5
7    0.0
8    1.0
9    0.0
Name: viaproblem, dtype: float64
In [84]:
generateStats(index)
Mediana:  0.0000
Promedio: 0.3000
In [85]:
aggregateColumns(index, 'Resolución directa de problemas')
Out[85]:
viaproblem
0.0    6
0.5    2
1.0    2
Name: viaproblem, dtype: int64
In [86]:
byOffice(index,'Resolución directa de problemas')
Out[86]:
institucion viaproblem
0 TEG 1.0
1 MINSAL 0.0
2 I.JUDICIAL 0.0
3 PROBIDAD 0.0
4 SPTA 0.5
5 MINED 0.0
6 FGR 0.5
7 PNC 0.0
8 MH 1.0
9 CCR 0.0

Recursos asignados específicamente para la oficina

In [87]:
index_1 = 'afirm01_ppto'
meta[index_1] = {}
data[index_1]
Out[87]:
0    1
1    0
2    0
3    0
4    0
5    0
6    0
7    0
8    1
9    0
Name: afirm01_ppto, dtype: int64
In [88]:
index_2 = 'rectecn'
meta[index_2] = {}
catalogo[catalogo['label'] == index_2]
Out[88]:
label desc Tipo de evaluación Puntuación Unnamed: 4
11 rectecn 9.\t¿Cuáles recursos tecnológicos (propios) ti... Agregado 1/5 c/u NaN
In [89]:
generateSet(formulario[index_2])
Out[89]:
{'Base de datos de los denunciantes',
 'Línea telefónica directa',
 'Plataforma en internet',
 'Programa para procesar denuncias',
 'Programas especiales de análisis e información',
 'Servidor'}
In [90]:
meta[index_2]['labels'] = [
    'Servidor',
    'Programa para procesar denuncias',
    'Base de datos de los denunciantes',
    'Plataforma en internet',
    'Línea telefónica directa',
    'Otro'
]
meta[index_2]['vars'] = [
    index_2 + '_servidor',
    index_2 + '_programa',
    index_2 + '_base_datos',
    index_2 + '_plataforma',
    index_2 + '_telefono',
    index_2 + '_otro'
]
meta_check_len(index_2)
Out[90]:
True
In [91]:
generateColumns(index_2)
Out[91]:
institucion rectecn_servidor rectecn_programa rectecn_base_datos rectecn_plataforma rectecn_telefono rectecn_otro
0 TEG 0 1 1 1 1 0
1 MINSAL 0 0 1 0 1 0
2 I.JUDICIAL 1 1 1 0 0 0
3 PROBIDAD 0 0 0 1 0 0
4 SPTA 1 0 0 1 1 0
5 MINED 0 0 0 1 1 0
6 FGR 1 1 1 0 1 1
7 PNC 0 0 1 0 1 0
8 MH 1 0 0 0 1 0
9 CCR 0 1 0 1 1 0
In [92]:
meanColumns(index_2)
data[index_2]
Out[92]:
0    0.8
1    0.4
2    0.6
3    0.2
4    0.6
5    0.4
6    0.8
7    0.4
8    0.4
9    0.6
Name: rectecn, dtype: float64
In [93]:
index = 'recursos_asignados'
mandato.append(index)
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[93]:
0    0.9
1    0.2
2    0.3
3    0.1
4    0.3
5    0.2
6    0.4
7    0.2
8    0.7
9    0.3
Name: recursos_asignados, dtype: float64
In [94]:
generateStats(index)
Mediana:  0.3000
Promedio: 0.3600
In [95]:
aggregateColumns(index, 'Recursos asignados específicamente para la oficina')
Out[95]:
recursos_asignados
0.1    1
0.2    3
0.3    3
0.4    1
0.7    1
0.9    1
Name: recursos_asignados, dtype: int64
In [96]:
byOffice(index, 'Recursos asignados específicamente para la oficina')
Out[96]:
institucion recursos_asignados
0 TEG 0.9
1 MINSAL 0.2
2 I.JUDICIAL 0.3
3 PROBIDAD 0.1
4 SPTA 0.3
5 MINED 0.2
6 FGR 0.4
7 PNC 0.2
8 MH 0.7
9 CCR 0.3

Lineamientos para proteger a denunciantes

In [97]:
index_1 = 'beneficios'
meta[index_1] = {}
catalogo[catalogo['label'] == index_1]
Out[97]:
label desc Tipo de evaluación Puntuación Unnamed: 4
18 beneficios 13.\tPara cada aspecto mencionado en la primer... Único a=1, b=0.75, c=0.5, d=0.25 Revisar opciones de NA
In [98]:
generateSet(formulario[index_1])
Out[98]:
{'No está establecido'}
In [99]:
meta[index_1]['labels'] = meta['confidencialidad']['labels']
meta[index_1]['vars'] = [
    index_1 + '_ley',
    index_1 + '_reglamento',
    index_1 + '_norma_interna',
    index_1 + '_ninguna',
    index_1 + '_otro'
]
meta_check_len(index_1)
Out[99]:
True
In [100]:
generateColumns(index_1)
Out[100]:
institucion beneficios_ley beneficios_reglamento beneficios_norma_interna beneficios_ninguna beneficios_otro
0 TEG 0 0 0 1 0
1 MINSAL 0 0 0 1 0
2 I.JUDICIAL 0 0 0 1 0
3 PROBIDAD 0 0 0 1 0
4 SPTA 0 0 0 1 0
5 MINED 0 0 0 1 0
6 FGR 0 0 0 1 0
7 PNC 0 0 0 1 0
8 MH 0 0 0 1 0
9 CCR 0 0 0 1 0
In [101]:
rankByOrderColumns(index_1)
Out[101]:
0    0.0
1    0.0
2    0.0
3    0.0
4    0.0
5    0.0
6    0.0
7    0.0
8    0.0
9    0.0
Name: beneficios, dtype: float64
In [102]:
index_2 = 'proteccion'
meta[index_2] = {}
catalogo[catalogo['label'] == index_2]
Out[102]:
label desc Tipo de evaluación Puntuación Unnamed: 4
16 proteccion 13.\tPara cada aspecto mencionado en la primer... Único a=1, b=0.75, c=0.5, d=0.25 Revisar opciones de NA
In [103]:
generateSet(formulario[index_2])
Out[103]:
{'En Ley que rige la institución',
 'En normas internas',
 'En reglamentos',
 'No está establecido'}
In [104]:
meta[index_2]['labels'] = meta['confidencialidad']['labels']
meta[index_2]['vars'] = [
    index_2 + '_ley',
    index_2 + '_reglamento',
    index_2 + '_norma_interna',
    index_2 + '_ninguna',
    index_2 + '_otro'
]
meta_check_len(index_2)
Out[104]:
True
In [105]:
generateColumns(index_2)
Out[105]:
institucion proteccion_ley proteccion_reglamento proteccion_norma_interna proteccion_ninguna proteccion_otro
0 TEG 1 0 0 0 0
1 MINSAL 0 0 1 0 0
2 I.JUDICIAL 1 0 0 0 0
3 PROBIDAD 1 0 0 0 0
4 SPTA 0 0 1 0 0
5 MINED 1 0 0 0 0
6 FGR 0 0 1 0 0
7 PNC 0 1 0 0 0
8 MH 1 0 0 0 0
9 CCR 0 0 0 1 0
In [106]:
rankByOrderColumns(index_2)
Out[106]:
0    1.0000
1    0.3333
2    1.0000
3    1.0000
4    0.3333
5    1.0000
6    0.3333
7    0.6667
8    1.0000
9    0.0000
Name: proteccion, dtype: float64
In [107]:
index= 'proteccion_denunciantes'
meta[index] = {}
mandato.append(index)
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[107]:
0    0.5000
1    0.1666
2    0.5000
3    0.5000
4    0.1666
5    0.5000
6    0.1666
7    0.3334
8    0.5000
9    0.0000
Name: proteccion_denunciantes, dtype: float64
In [108]:
generateStats(index)
Mediana:  0.4167
Promedio: 0.3333
In [109]:
aggregateColumns(index, 'Lineamientos para proteger a denunciantes')
Out[109]:
proteccion_denunciantes
0.0000    1
0.1666    3
0.3334    1
0.5000    5
Name: proteccion_denunciantes, dtype: int64
In [110]:
byOffice(index, 'Lineamientos para proteger a denunciantes')
Out[110]:
institucion proteccion_denunciantes
0 TEG 0.5000
1 MINSAL 0.1666
2 I.JUDICIAL 0.5000
3 PROBIDAD 0.5000
4 SPTA 0.1666
5 MINED 0.5000
6 FGR 0.1666
7 PNC 0.3334
8 MH 0.5000
9 CCR 0.0000

Oportunidad de criterio para auto denuncias

In [111]:
index = 'oportunidad'
mandato.append(index)
meta[index] = {}
catalogo[catalogo['label'] == index]
Out[111]:
label desc Tipo de evaluación Puntuación Unnamed: 4
17 oportunidad 13.\tPara cada aspecto mencionado en la primer... Único a=1, b=0.75, c=0.5, d=0.25 Revisar opciones de NA
In [112]:
generateSet(formulario[index])
Out[112]:
{'En reglamentos', 'No está establecido'}
In [113]:
meta[index]['labels'] = meta['confidencialidad']['labels']
meta[index]['vars'] = [
    index + '_ley',
    index + '_reglamento',
    index + '_norma_interna',
    index + '_ninguna',
    index + '_otro'
]
meta_check_len(index)
Out[113]:
True
In [114]:
generateColumns(index)
Out[114]:
institucion oportunidad_ley oportunidad_reglamento oportunidad_norma_interna oportunidad_ninguna oportunidad_otro
0 TEG 0 0 0 1 0
1 MINSAL 0 0 0 1 0
2 I.JUDICIAL 0 0 0 1 0
3 PROBIDAD 0 0 0 1 0
4 SPTA 0 0 0 1 0
5 MINED 0 0 0 1 0
6 FGR 0 0 0 1 0
7 PNC 0 0 0 1 0
8 MH 0 0 0 1 0
9 CCR 0 1 0 0 0
In [115]:
showColumns(index, 'Oportunidad de criterio para auto denuncias')
Out[115]:
0
oportunidad_ley 0.0
oportunidad_reglamento 10.0
oportunidad_norma_interna 0.0
oportunidad_ninguna 90.0
oportunidad_otro 0.0
In [116]:
rankByOrderColumns(index)
Out[116]:
0    0.0000
1    0.0000
2    0.0000
3    0.0000
4    0.0000
5    0.0000
6    0.0000
7    0.0000
8    0.0000
9    0.6667
Name: oportunidad, dtype: float64
In [117]:
generateStats(index)
Mediana:  0.0000
Promedio: 0.0667
In [118]:
aggregateColumns(index, 'Oportunidad de criterio para auto denuncias')
Out[118]:
oportunidad
0.0000    9
0.6667    1
Name: oportunidad, dtype: int64
In [119]:
byOffice(index, 'Oportunidad de criterio para auto denuncias')
Out[119]:
institucion oportunidad
0 TEG 0.0000
1 MINSAL 0.0000
2 I.JUDICIAL 0.0000
3 PROBIDAD 0.0000
4 SPTA 0.0000
5 MINED 0.0000
6 FGR 0.0000
7 PNC 0.0000
8 MH 0.0000
9 CCR 0.6667
In [120]:
index_1 = 'afirm02'
meta[index_1] = {}
catalogo[catalogo['label'] == index_1]
Out[120]:
label desc Tipo de evaluación Puntuación Unnamed: 4
29 afirm02 24.\tIndique cuáles de las siguientes afirmaci... Si-No Si=1, No=0; excepto última opción, esa implica 0 NaN
In [121]:
generateSet(formulario[index_1])
Out[121]:
{'Cuando se recibe al denunciante se indica que se guardará confidencialidad en el proceso',
 'Durante la admisión de la denuncia se recuerda al usuario que se protegerán sus datos personales',
 'El servicio que brinda la oficina de denuncias es gratuito',
 'Se brinda servicio de fotocopias gratuito a los denunciantes',
 'Si el denunciante solicita actualización sobre su denuncia se le brinda de inmediato',
 'Si el usuario lo requiere se brinda asesoría legal durante el proceso de denuncia'}
In [122]:
meta[index_1]['labels'] = [
    'El servicio que brinda la oficina de denuncias es gratuito',
    'Cuando se recibe al denunciante se indica que se guardará confidencialidad en el proceso',
    'Durante la admisión de la denuncia se recuerda al usuario que se protegerán sus datos personales',
    'Si el usuario lo requiere se brinda asesoría legal durante el proceso de denuncia',
    'Se brinda servicio de fotocopias gratuito a los denunciantes',
    'Si el denunciante solicita actualización sobre su denuncia se le brinda de inmediato',
    'Ninguna de las anteriores'
]
meta[index_1]['vars'] = [
    index_1 + '_gratuidad',
    index_1 + '_confiden',
    index_1 + '_prot_dat_pers',
    index_1 + '_asesoria',
    index_1 + '_fotocopias',
    index_1 + '_actualizacion',
    index_1 + '_ninguna'
]
meta_check_len(index_1)
Out[122]:
True
In [123]:
generateColumns(index_1)
Out[123]:
institucion afirm02_gratuidad afirm02_confiden afirm02_prot_dat_pers afirm02_asesoria afirm02_fotocopias afirm02_actualizacion afirm02_ninguna
0 TEG 1 1 1 1 1 1 0
1 MINSAL 1 1 1 0 1 1 0
2 I.JUDICIAL 1 1 1 1 1 1 0
3 PROBIDAD 1 1 1 1 1 0 0
4 SPTA 1 1 0 1 1 1 0
5 MINED 1 1 1 1 0 0 0
6 FGR 1 0 0 1 1 1 0
7 PNC 1 1 1 1 1 1 0
8 MH 1 1 1 1 1 1 0
9 CCR 1 1 1 1 0 1 0
In [124]:
index_2 = 'lstacciones'
meta[index_2] = {}
catalogo[catalogo['label'] == index_2]
Out[124]:
label desc Tipo de evaluación Puntuación Unnamed: 4
32 lstacciones 27.\tIndicar cuáles acciones de las que se lis... Si-No Si=1, No=0 NaN
In [125]:
generateSet(formulario[index_2])
Out[125]:
{'Elaboración de informes para destacar áreas sensibles o procesos vulnerables a corrupción a partir de las denuncias recibidas',
 'Elaboración de objetivos de la oficina de denuncia',
 'Evaluación anual al personal de la oficina de denuncia',
 'Evaluación anual del cumplimiento de los objetivos',
 'Generación de estadísticas sobre el tipo de denuncias que se tramitan',
 'Generación de estadísticas sobre el tipo de usuarios que se atienden',
 'Identificación de medidas para mejorar los procesos a partir de las denuncias tramitadas en los últimos tres años',
 'Implementación de medidas para mejorar procesos institucionales',
 'Planificación periódica del trabajo (al menos una vez por año)',
 'Registro de los usuarios atendidos o asesorías brindadas'}
In [126]:
meta[index_2]['labels'] = [
    'Planificación periódica del trabajo (al menos una vez por año)',
    'Elaboración de objetivos de la oficina de denuncia',
    'Evaluación anual del cumplimiento de los objetivos',
    'Elaboración de informes para destacar áreas sensibles o procesos vulnerables a corrupción a partir de las denuncias recibidas',
    'Identificación de medidas para mejorar los procesos a partir de las denuncias tramitadas en los últimos tres años',
    'Implementación de medidas para mejorar procesos institucionales',
    'Generación de estadísticas sobre el tipo de denuncias que se tramitan',
    'Generación de estadísticas sobre el tipo de usuarios que se atienden',
    'Registro de los usuarios atendidos o asesorías brindadas',
    'Evaluación anual al personal de la oficina de denuncia',
    'Ninguna de las anteriores'
]
meta[index_2]['vars'] = [
    index_2 + '_planificacion',
    index_2 + '_objetivos',
    index_2 + '_evaluacion_obj',
    index_2 + '_informes',
    index_2 + '_ident_medidas',
    index_2 + '_impl_medidas',
    index_2 + '_stat_denuncias',
    index_2 + '_stat_usuarios',
    index_2 + '_registro_usuarios',
    index_2 + '_evaluacion_pers',
    index_2 + '_ninguna'
]
meta_check_len(index_2)
Out[126]:
True
In [127]:
generateColumns(index_2)
Out[127]:
institucion lstacciones_planificacion lstacciones_objetivos lstacciones_evaluacion_obj lstacciones_informes lstacciones_ident_medidas lstacciones_impl_medidas lstacciones_stat_denuncias lstacciones_stat_usuarios lstacciones_registro_usuarios lstacciones_evaluacion_pers lstacciones_ninguna
0 TEG 1 1 1 0 0 1 1 0 1 1 0
1 MINSAL 1 1 1 1 1 1 1 0 1 1 0
2 I.JUDICIAL 1 1 1 0 1 1 1 1 1 1 0
3 PROBIDAD 1 1 1 1 1 1 1 1 0 1 0
4 SPTA 1 0 0 0 1 1 1 0 0 1 0
5 MINED 1 0 1 0 1 1 1 0 1 1 0
6 FGR 1 1 1 1 1 1 1 1 1 1 0
7 PNC 1 1 1 1 1 1 1 1 1 1 0
8 MH 1 1 1 1 1 1 1 1 1 1 0
9 CCR 1 0 0 0 0 1 1 0 0 0 0
In [128]:
index = 'asesoria_legal'
mandato.append(index)
meta[index] = {}
data[index] = ((data['afirm02_asesoria'] + data['lstacciones_registro_usuarios']) / 2).round(4)
data[index]
Out[128]:
0    1.0
1    0.5
2    1.0
3    0.5
4    0.5
5    1.0
6    1.0
7    1.0
8    1.0
9    0.5
Name: asesoria_legal, dtype: float64
In [129]:
generateStats(index)
Mediana:  1.0000
Promedio: 0.8000
In [130]:
aggregateColumns(index, 'Asesoría legal brindada al usuario')
Out[130]:
asesoria_legal
0.5    4
1.0    6
Name: asesoria_legal, dtype: int64
In [131]:
byOffice(index, 'Asesoría legal brindada al usuario')
Out[131]:
institucion asesoria_legal
0 TEG 1.0
1 MINSAL 0.5
2 I.JUDICIAL 1.0
3 PROBIDAD 0.5
4 SPTA 0.5
5 MINED 1.0
6 FGR 1.0
7 PNC 1.0
8 MH 1.0
9 CCR 0.5

Acuerdos o convenios establecidos con otras instituciones

In [132]:
index_1 = 'convprot'
meta[index_1] = {}
catalogo[catalogo['label'] == index_1]
Out[132]:
label desc Tipo de evaluación Puntuación Unnamed: 4
19 convprot 14.\t¿Poseen convenios con otras instituciones... Si-No Si=1, No=0 NaN
In [133]:
yesNoColumn(index_1)
Out[133]:
0    0
1    0
2    0
3    0
4    0
5    0
6    0
7    0
8    0
9    0
Name: convprot, dtype: int64
In [134]:
index_2 = 'convinv'
meta[index_2] = {}
catalogo[catalogo['label'] == index_2]
Out[134]:
label desc Tipo de evaluación Puntuación Unnamed: 4
20 convinv 15.\t¿Poseen convenios con otras instituciones... Si-No Si=1, No=0 NaN
In [135]:
yesNoColumn(index_2)
Out[135]:
0    1
1    0
2    0
3    0
4    0
5    0
6    0
7    0
8    0
9    0
Name: convinv, dtype: int64
In [136]:
index = 'convenios'
mandato.append(index)
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[136]:
0    0.5
1    0.0
2    0.0
3    0.0
4    0.0
5    0.0
6    0.0
7    0.0
8    0.0
9    0.0
Name: convenios, dtype: float64
In [137]:
generateStats(index)
Mediana:  0.0000
Promedio: 0.0500
In [138]:
aggregateColumns(index, 'Acuerdos o convenios establecidos con otras instituciones')
Out[138]:
convenios
0.0    9
0.5    1
Name: convenios, dtype: int64
In [139]:
byOffice(index, 'Acuerdos o convenios establecidos con otras instituciones')
Out[139]:
institucion convenios
0 TEG 0.5
1 MINSAL 0.0
2 I.JUDICIAL 0.0
3 PROBIDAD 0.0
4 SPTA 0.0
5 MINED 0.0
6 FGR 0.0
7 PNC 0.0
8 MH 0.0
9 CCR 0.0

Sumario del mandato

In [140]:
len(mandato)
Out[140]:
16
In [141]:
mandato
Out[141]:
['viacomm',
 'reqdenun',
 'confidencialidad',
 'avisos_y_anonimos',
 'iniinvest',
 'docnorm_validacion',
 'afirm01_reg_no_validas',
 'lugrecep',
 'potestad_investigar',
 'lineamientos_tecnicos',
 'viaproblem',
 'recursos_asignados',
 'proteccion_denunciantes',
 'oportunidad',
 'asesoria_legal',
 'convenios']
In [142]:
index = 'mandato'
meta[index] = {}
meta[index]['vars'] = mandato
In [143]:
meanColumns(index)
In [144]:
generateStats(index)
Mediana:  0.6414
Promedio: 0.6376
In [145]:
byOffice(index, 'Mandato')
Out[145]:
institucion mandato
0 TEG 0.7478
1 MINSAL 0.5450
2 I.JUDICIAL 0.6894
3 PROBIDAD 0.4739
4 SPTA 0.5155
5 MINED 0.6200
6 FGR 0.7300
7 PNC 0.6628
8 MH 0.8200
9 CCR 0.5711

Desempeño

In [146]:
desempeno = []

Eficiencia en admisión de denuncias

In [147]:
index_1 = 'tpoadminnorm'
In [148]:
yesNoColumn(index_1)
Out[148]:
0    0
1    1
2    0
3    0
4    1
5    0
6    1
7    1
8    1
9    1
Name: tpoadminnorm, dtype: int64
In [149]:
index_2 = 'tpoadminefect'
meta[index_2] = {}
In [150]:
generateSet(formulario[index_2])
Out[150]:
{'A lo sumo una semana', 'Menos un día hábil', 'Más de un mes'}
In [151]:
meta[index_2]['labels'] = [
    'Menos un día hábil',
    'A lo sumo una semana',
    'A lo sumo un mes',
    'Más de un mes'
]
meta[index_2]['vars'] = [
    index_2 + '_dia',
    index_2 + '_semana',
    index_2 + '_mes',
    index_2 + '_mas'
]
meta_check_len(index_2)
Out[151]:
True
In [152]:
generateColumns(index_2)
Out[152]:
institucion tpoadminefect_dia tpoadminefect_semana tpoadminefect_mes tpoadminefect_mas
0 TEG 0 0 0 1
1 MINSAL 0 1 0 0
2 I.JUDICIAL 0 0 0 1
3 PROBIDAD 1 0 0 0
4 SPTA 1 0 0 0
5 MINED 0 1 0 0
6 FGR 1 0 0 0
7 PNC 1 0 0 0
8 MH 1 0 0 0
9 CCR 1 0 0 0
In [153]:
rankByOrderColumns(index_2)
Out[153]:
0    0.0
1    0.5
2    0.0
3    1.0
4    1.0
5    0.5
6    1.0
7    1.0
8    1.0
9    1.0
Name: tpoadminefect, dtype: float64
In [154]:
index_3 = 'agilidad'
data[index_3] = formulario[index_3] / 5
data[index_3]
Out[154]:
0    0.6
1    1.0
2    0.6
3    1.0
4    1.0
5    1.0
6    0.8
7    1.0
8    1.0
9    1.0
Name: agilidad, dtype: float64
In [155]:
index = 'eficiencia_admision'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2] + data[index_3]) / 3).round(4)
data[index]
Out[155]:
0    0.2000
1    0.8333
2    0.2000
3    0.6667
4    1.0000
5    0.5000
6    0.9333
7    1.0000
8    1.0000
9    1.0000
Name: eficiencia_admision, dtype: float64
In [156]:
generateStats(index)
Mediana:  0.8833
Promedio: 0.7333
In [157]:
aggregateColumns(index, 'Eficiencia en admisión de denuncias')
Out[157]:
eficiencia_admision
0.2000    2
0.5000    1
0.6667    1
0.8333    1
0.9333    1
1.0000    4
Name: eficiencia_admision, dtype: int64
In [158]:
byOffice(index, 'Eficiencia en admisión de denuncias')
Out[158]:
institucion eficiencia_admision
0 TEG 0.2000
1 MINSAL 0.8333
2 I.JUDICIAL 0.2000
3 PROBIDAD 0.6667
4 SPTA 1.0000
5 MINED 0.5000
6 FGR 0.9333
7 PNC 1.0000
8 MH 1.0000
9 CCR 1.0000

Distribución de tareas del personal

In [159]:
index = 'afirm01_personal_exclusivo'
data[index]
meta[index] = {}
In [160]:
generateStats(index)
Mediana:  1.0000
Promedio: 0.6000
In [161]:
aggregateColumns(index, 'Distribución de tareas del personal')
Out[161]:
afirm01_personal_exclusivo
0    4
1    6
Name: afirm01_personal_exclusivo, dtype: int64
In [162]:
byOffice(index, 'Distribución de tareas del personal')
Out[162]:
institucion afirm01_personal_exclusivo
0 TEG 1
1 MINSAL 0
2 I.JUDICIAL 0
3 PROBIDAD 0
4 SPTA 1
5 MINED 1
6 FGR 1
7 PNC 0
8 MH 1
9 CCR 1

Desempeño del personal

In [163]:
index_1 = 'eficpers'
data[index_1] = formulario[index_1] / 5
data[index_1]
Out[163]:
0    1.0
1    1.0
2    0.8
3    1.0
4    1.0
5    0.8
6    0.8
7    0.8
8    1.0
9    1.0
Name: eficpers, dtype: float64
In [164]:
index_2 = 'sufpers'
data[index_2] = formulario[index_2] / 5
data[index_2]
Out[164]:
0    0.6
1    0.8
2    0.6
3    0.2
4    0.6
5    1.0
6    0.4
7    0.6
8    0.8
9    1.0
Name: sufpers, dtype: float64
In [165]:
index = 'desempeno_personal'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[165]:
0    0.8
1    0.9
2    0.7
3    0.6
4    0.8
5    0.9
6    0.6
7    0.7
8    0.9
9    1.0
Name: desempeno_personal, dtype: float64
In [166]:
generateStats(index)
Mediana:  0.8000
Promedio: 0.7900
In [167]:
aggregateColumns(index, 'Desempeño del personal')
Out[167]:
desempeno_personal
0.6    2
0.7    2
0.8    2
0.9    3
1.0    1
Name: desempeno_personal, dtype: int64
In [168]:
byOffice(index, 'Desempeño del personal')
Out[168]:
institucion desempeno_personal
0 TEG 0.8
1 MINSAL 0.9
2 I.JUDICIAL 0.7
3 PROBIDAD 0.6
4 SPTA 0.8
5 MINED 0.9
6 FGR 0.6
7 PNC 0.7
8 MH 0.9
9 CCR 1.0

Código de conducta de la oficina de denuncia

In [169]:
index = 'docnorm_conducta'
meta[index] = {}
data[index]
Out[169]:
0    0
1    1
2    1
3    0
4    0
5    0
6    1
7    1
8    1
9    0
Name: docnorm_conducta, dtype: int64
In [170]:
generateStats(index)
Mediana:  0.5000
Promedio: 0.5000
In [171]:
aggregateColumns(index, 'Código de conducta de la oficina de denuncia')
Out[171]:
docnorm_conducta
0    5
1    5
Name: docnorm_conducta, dtype: int64
In [172]:
byOffice(index, 'Código de conducta de la oficina de denuncia')
Out[172]:
institucion docnorm_conducta
0 TEG 0
1 MINSAL 1
2 I.JUDICIAL 1
3 PROBIDAD 0
4 SPTA 0
5 MINED 0
6 FGR 1
7 PNC 1
8 MH 1
9 CCR 0

Manuales de procedimiento de la oficina de denuncia

In [173]:
index = 'docnorm_procedimientos'
meta[index] = {}
data[index]
Out[173]:
0    1
1    1
2    1
3    1
4    0
5    1
6    1
7    1
8    1
9    1
Name: docnorm_procedimientos, dtype: int64
In [174]:
generateStats(index)
Mediana:  1.0000
Promedio: 0.9000
In [175]:
aggregateColumns(index, 'Manuales de procedimiento de la oficina de denuncia')
Out[175]:
docnorm_procedimientos
0    1
1    9
Name: docnorm_procedimientos, dtype: int64
In [176]:
byOffice(index, 'Manuales de procedimiento de la oficina de denuncia')
Out[176]:
institucion docnorm_procedimientos
0 TEG 1
1 MINSAL 1
2 I.JUDICIAL 1
3 PROBIDAD 1
4 SPTA 0
5 MINED 1
6 FGR 1
7 PNC 1
8 MH 1
9 CCR 1

Denuncias recibidas - sanciones impuestas - multas cobradas

In [177]:
index_1 = 'efectmulta'
meta[index_1] = {}
data[index_1] = formulario[index_1] / 5
data[index_1]
Out[177]:
0    0.8
1    0.6
2    1.0
3    0.6
4    0.2
5    0.2
6    0.8
7    0.6
8    0.2
9    0.6
Name: efectmulta, dtype: float64
In [178]:
index_2 = 'infosancion'
yesNoColumn(index_2)
Out[178]:
0    1
1    0
2    0
3    0
4    0
5    0
6    1
7    0
8    0
9    0
Name: infosancion, dtype: int64
In [179]:
index = 'multas_sanciones'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[179]:
0    0.9
1    0.3
2    0.5
3    0.3
4    0.1
5    0.1
6    0.9
7    0.3
8    0.1
9    0.3
Name: multas_sanciones, dtype: float64
In [180]:
generateStats(index)
Mediana:  0.3000
Promedio: 0.3800
In [181]:
aggregateColumns(index, 'Denuncias recibidas - sanciones impuestas - multas cobradas')
Out[181]:
multas_sanciones
0.1    3
0.3    4
0.5    1
0.9    2
Name: multas_sanciones, dtype: int64
In [182]:
byOffice(index, 'Denuncias recibidas - sanciones impuestas - multas cobradas')
Out[182]:
institucion multas_sanciones
0 TEG 0.9
1 MINSAL 0.3
2 I.JUDICIAL 0.5
3 PROBIDAD 0.3
4 SPTA 0.1
5 MINED 0.1
6 FGR 0.9
7 PNC 0.3
8 MH 0.1
9 CCR 0.3

Presupuesto asignado a la oficina de denuncia

In [183]:
index_1 = 'afirm01_ppto'
data[index_1]
Out[183]:
0    1
1    0
2    0
3    0
4    0
5    0
6    0
7    0
8    1
9    0
Name: afirm01_ppto, dtype: int64
In [184]:
index_2 = 'sufppto'
data[index_2] = formulario[index_2] / 5
data[index_2]
Out[184]:
0    0.4
1    0.8
2    0.6
3    0.2
4    0.4
5    0.8
6    0.2
7    0.6
8    0.6
9    0.6
Name: sufppto, dtype: float64
In [185]:
index_3 = 'ejppto'
data[index_3] = formulario[index_3] / 5
data[index_3]
Out[185]:
0    1.0
1    1.0
2    1.0
3    0.2
4    1.0
5    1.0
6    1.0
7    1.0
8    1.0
9    0.6
Name: ejppto, dtype: float64
In [186]:
index_4 = 'infopres'
yesNoColumn(index_4)
Out[186]:
0    1
1    0
2    0
3    0
4    0
5    0
6    1
7    0
8    0
9    0
Name: infopres, dtype: int64
In [187]:
index = 'presupuesto'
meta[index] = {}
data[index] = ((data[index_1] +  data[index_2] + data[index_3] + data[index_4]) / 4).round(4)
data[index]
Out[187]:
0    0.85
1    0.45
2    0.40
3    0.10
4    0.35
5    0.45
6    0.55
7    0.40
8    0.65
9    0.30
Name: presupuesto, dtype: float64
In [188]:
generateStats(index)
Mediana:  0.4250
Promedio: 0.4500
In [189]:
aggregateColumns(index, 'Presupuesto asignado a la oficina de denuncia')
Out[189]:
presupuesto
0.10    1
0.30    1
0.35    1
0.40    2
0.45    2
0.55    1
0.65    1
0.85    1
Name: presupuesto, dtype: int64
In [190]:
byOffice(index, 'Presupuesto asignado a la oficina de denuncia')
Out[190]:
institucion presupuesto
0 TEG 0.85
1 MINSAL 0.45
2 I.JUDICIAL 0.40
3 PROBIDAD 0.10
4 SPTA 0.35
5 MINED 0.45
6 FGR 0.55
7 PNC 0.40
8 MH 0.65
9 CCR 0.30

Planificación al interior de la oficina de denuncia

In [191]:
index_1 = 'lstacciones_planificacion'
data[index_1]
Out[191]:
0    1
1    1
2    1
3    1
4    1
5    1
6    1
7    1
8    1
9    1
Name: lstacciones_planificacion, dtype: int64
In [192]:
index_2 = 'ofiplan'
generateSet(formulario[index_2])
Out[192]:
{'Plan estratégico (mediano plazo)',
 'Plan operativo (año plazo)',
 'Programas de actividades'}
In [193]:
meta[index_2] = {}
meta[index_2]['labels'] = [
    'Plan estratégico (mediano plazo)',
    'Plan operativo (año plazo)', 
    'Programas de actividades',
    'Otro', 
    'Ninguno'
]
meta[index_2]['vars'] = [
    index_2 + '_estrategico',
    index_2 + '_operativo',
    index_2 + '_actividades',
    index_2 + '_otro',
    index_2 + '_ninguno'
]
meta_check_len(index_2)
Out[193]:
True
In [194]:
generateColumns(index_2)
Out[194]:
institucion ofiplan_estrategico ofiplan_operativo ofiplan_actividades ofiplan_otro ofiplan_ninguno
0 TEG 1 1 1 0 0
1 MINSAL 0 1 0 0 0
2 I.JUDICIAL 1 1 0 0 0
3 PROBIDAD 0 1 0 0 0
4 SPTA 1 1 0 0 0
5 MINED 1 1 0 0 0
6 FGR 1 1 1 0 0
7 PNC 1 1 1 0 0
8 MH 1 1 1 0 0
9 CCR 0 1 1 0 0
In [195]:
rankByOrderColumns(index_2)
Out[195]:
0    1.0000
1    0.6667
2    1.0000
3    0.6667
4    1.0000
5    1.0000
6    1.0000
7    1.0000
8    1.0000
9    0.6667
Name: ofiplan, dtype: float64
In [196]:
index = 'planificacion'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2)
data[index]
Out[196]:
0    1.00000
1    0.83335
2    1.00000
3    0.83335
4    1.00000
5    1.00000
6    1.00000
7    1.00000
8    1.00000
9    0.83335
Name: planificacion, dtype: float64
In [197]:
generateStats(index)
Mediana:  1.0000
Promedio: 0.9500
In [198]:
aggregateColumns(index, 'Planificación al interior de la oficina de denuncia')
Out[198]:
planificacion
0.83335    3
1.00000    7
Name: planificacion, dtype: int64
In [199]:
byOffice(index, 'Planificación al interior de la oficina de denuncia')
Out[199]:
institucion planificacion
0 TEG 1.00000
1 MINSAL 0.83335
2 I.JUDICIAL 1.00000
3 PROBIDAD 0.83335
4 SPTA 1.00000
5 MINED 1.00000
6 FGR 1.00000
7 PNC 1.00000
8 MH 1.00000
9 CCR 0.83335

Cumplimiento de los objetivos de la oficina de denuncia

In [200]:
index_1 = 'lstacciones_objetivos'
data[index_1]
Out[200]:
0    1
1    1
2    1
3    1
4    0
5    0
6    1
7    1
8    1
9    0
Name: lstacciones_objetivos, dtype: int64
In [201]:
index_2 = 'lstacciones_evaluacion_obj'
data[index_2]
Out[201]:
0    1
1    1
2    1
3    1
4    0
5    1
6    1
7    1
8    1
9    0
Name: lstacciones_evaluacion_obj, dtype: int64
In [202]:
index_3 = 'cumplobj'
data[index_3] = formulario[index_3] / 5
data[index_3]
Out[202]:
0    0.8
1    0.8
2    0.8
3    0.8
4    1.0
5    0.8
6    0.8
7    0.8
8    1.0
9    1.0
Name: cumplobj, dtype: float64
In [203]:
index = 'cumpl_objetivos'
meta[index] = {}
data[index] = ((data[index_1] +  data[index_2] +  data[index_3]) / 3).round(4)
data[index]
Out[203]:
0    0.9333
1    0.9333
2    0.9333
3    0.9333
4    0.3333
5    0.6000
6    0.9333
7    0.9333
8    1.0000
9    0.3333
Name: cumpl_objetivos, dtype: float64
In [204]:
generateStats(index)
Mediana:  0.9333
Promedio: 0.7866
In [205]:
aggregateColumns(index, 'Cumplimiento de los objetivos de la oficina de denuncia')
Out[205]:
cumpl_objetivos
0.3333    2
0.6000    1
0.9333    6
1.0000    1
Name: cumpl_objetivos, dtype: int64
In [206]:
byOffice(index, 'Cumplimiento de los objetivos de la oficina de denuncia')
Out[206]:
institucion cumpl_objetivos
0 TEG 0.9333
1 MINSAL 0.9333
2 I.JUDICIAL 0.9333
3 PROBIDAD 0.9333
4 SPTA 0.3333
5 MINED 0.6000
6 FGR 0.9333
7 PNC 0.9333
8 MH 1.0000
9 CCR 0.3333

Evaluación del personal de la oficina de denuncia

In [207]:
index_1 = 'docnorm_puestos'
data[index_1]
Out[207]:
0    1
1    1
2    1
3    1
4    0
5    1
6    1
7    1
8    1
9    1
Name: docnorm_puestos, dtype: int64
In [208]:
index_2 = 'lstacciones_evaluacion_pers'
data[index_2]
Out[208]:
0    1
1    1
2    1
3    1
4    1
5    1
6    1
7    1
8    1
9    0
Name: lstacciones_evaluacion_pers, dtype: int64
In [209]:
index = 'evaluacion_personal'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[209]:
0    1.0
1    1.0
2    1.0
3    1.0
4    0.5
5    1.0
6    1.0
7    1.0
8    1.0
9    0.5
Name: evaluacion_personal, dtype: float64
In [210]:
generateStats(index)
Mediana:  1.0000
Promedio: 0.9000
In [211]:
aggregateColumns(index, 'Evaluación del personal de la oficina de denuncia')
Out[211]:
evaluacion_personal
0.5    2
1.0    8
Name: evaluacion_personal, dtype: int64
In [212]:
byOffice(index, 'Evaluación del personal de la oficina de denuncia')
Out[212]:
institucion evaluacion_personal
0 TEG 1.0
1 MINSAL 1.0
2 I.JUDICIAL 1.0
3 PROBIDAD 1.0
4 SPTA 0.5
5 MINED 1.0
6 FGR 1.0
7 PNC 1.0
8 MH 1.0
9 CCR 0.5

Áreas sensibles identificadas para introducir mejoras

In [213]:
index_1 = 'lstacciones_ident_medidas'
data[index_1]
Out[213]:
0    0
1    1
2    1
3    1
4    1
5    1
6    1
7    1
8    1
9    0
Name: lstacciones_ident_medidas, dtype: int64
In [214]:
index_2 = 'lstacciones_informes'
data[index_2]
Out[214]:
0    0
1    1
2    0
3    1
4    0
5    0
6    1
7    1
8    1
9    0
Name: lstacciones_informes, dtype: int64
In [215]:
index_3 = 'lstacciones_impl_medidas'
data[index_3]
Out[215]:
0    1
1    1
2    1
3    1
4    1
5    1
6    1
7    1
8    1
9    1
Name: lstacciones_impl_medidas, dtype: int64
In [216]:
index = 'areas_sensibles'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2] + data[index_3]) / 3).round(4)
data[index]
Out[216]:
0    0.3333
1    1.0000
2    0.6667
3    1.0000
4    0.6667
5    0.6667
6    1.0000
7    1.0000
8    1.0000
9    0.3333
Name: areas_sensibles, dtype: float64
In [217]:
generateStats(index)
Mediana:  0.8334
Promedio: 0.7667
In [218]:
aggregateColumns(index, 'Áreas sensibles identificadas para introducir mejoras')
Out[218]:
areas_sensibles
0.3333    2
0.6667    3
1.0000    5
Name: areas_sensibles, dtype: int64
In [219]:
byOffice(index,'Áreas sensibles identificadas para introducir mejoras')
Out[219]:
institucion areas_sensibles
0 TEG 0.3333
1 MINSAL 1.0000
2 I.JUDICIAL 0.6667
3 PROBIDAD 1.0000
4 SPTA 0.6667
5 MINED 0.6667
6 FGR 1.0000
7 PNC 1.0000
8 MH 1.0000
9 CCR 0.3333

Se presenta información para dar a conocer los resultados

In [220]:
index_1 = 'intacciones'
generateSet(formulario[index_1])
Out[220]:
{'Acciones impulsadas desde la OIR',
 'Capacitación al personal sobre atención a usuarios',
 'Divulgación del trabajo de la oficina de denuncias por medio de reportes',
 'Elaboración de informes para dar a conocer resultados de las denuncias',
 'Eventos para informar sobre mecanismos de denuncia',
 'Plan de formación de Casa Presidencial',
 'capacitación técnica al personal',
 'certificaciones',
 'diplomados',
 'etc.'}
In [221]:
meta[index_1] = {}
meta[index_1]['labels'] = [
    'Eventos para informar sobre mecanismos de denuncia',
    'Capacitación al personal sobre atención a usuarios',
    'Elaboración de informes para dar a conocer resultados de las denuncias',
    'Divulgación del trabajo de la oficina de denuncias por medio de reportes',
    'Otro',
    'Ninguna'
]
meta[index_1]['vars'] = [
    index_1 + '_eventos',
    index_1 + '_capacitacion',
    index_1 + '_informes',
    index_1 + '_divulgacion',
    index_1 + '_otro',
    index_1 + '_ninguna'
]
meta_check_len(index_1)
Out[221]:
True
In [222]:
generateColumns(index_1)
Out[222]:
institucion intacciones_eventos intacciones_capacitacion intacciones_informes intacciones_divulgacion intacciones_otro intacciones_ninguna
0 TEG 1 0 1 1 0 0
1 MINSAL 0 1 1 1 0 0
2 I.JUDICIAL 0 0 1 1 0 1
3 PROBIDAD 0 1 1 1 0 0
4 SPTA 0 0 0 0 0 1
5 MINED 0 0 0 0 0 1
6 FGR 0 1 1 1 0 0
7 PNC 1 0 1 0 0 0
8 MH 1 1 1 1 0 0
9 CCR 1 1 0 0 0 0
In [223]:
index_2 = 'intacciones_informes'
data[index_2]
Out[223]:
0    1
1    1
2    1
3    1
4    0
5    0
6    1
7    1
8    1
9    0
Name: intacciones_informes, dtype: int64
In [224]:
index_3 = 'acdifofic'
generateSet(formulario[index_3])
Out[224]:
{'Eventos de difusión para dar a conocer los mecanismos de denuncia de la oficina',
 'Eventos públicos para concientizar sobre la importancia de la denuncia',
 'II',
 'III ciclo y educación media de la LEG',
 'Lecciones de ética para I',
 'Producción de material informativo para personas con discapacidades',
 'Producción de material sobre importancia de la participación ciudadana mediante la denuncia',
 'Publicación de resultados de los procesos de denuncia',
 'Rendiciones de cuentas'}
In [225]:
meta[index_3] = {}
meta[index_3]['labels'] = [
    'Publicación de resultados de los procesos de denuncia',
    'Eventos públicos para concientizar sobre la importancia de la denuncia',
    'Eventos de difusión para dar a conocer los mecanismos de denuncia de la oficina',
    'Producción de material sobre importancia de la participación ciudadana mediante la denuncia',
    'Producción de material informativo para personas con discapacidades',
    'Otro'
]
meta[index_3]['vars'] = [
    index_3 + '_pubres',
    index_3 + '_concient',
    index_3 + '_difmec',
    index_3 + '_imp_part',
    index_3 + '_disc',
    index_3 + '_otro'
]
meta_check_len(index_3)
Out[225]:
True
In [226]:
generateColumns(index_3)
Out[226]:
institucion acdifofic_pubres acdifofic_concient acdifofic_difmec acdifofic_imp_part acdifofic_disc acdifofic_otro
0 TEG 1 1 1 1 0 1
1 MINSAL 1 1 1 1 0 1
2 I.JUDICIAL 1 0 0 1 0 0
3 PROBIDAD 0 0 1 0 0 0
4 SPTA 1 0 1 1 1 0
5 MINED 0 1 0 0 0 0
6 FGR 1 1 0 1 0 0
7 PNC 1 0 0 0 0 0
8 MH 1 1 1 0 0 0
9 CCR 0 0 1 1 0 0
In [227]:
index_4 = 'acdifofic_pubres'
data[index_4]
Out[227]:
0    1
1    1
2    1
3    0
4    1
5    0
6    1
7    1
8    1
9    0
Name: acdifofic_pubres, dtype: int64
In [228]:
index_5 = 'lstacciones_stat_denuncias'
data[index_5]
Out[228]:
0    1
1    1
2    1
3    1
4    1
5    1
6    1
7    1
8    1
9    1
Name: lstacciones_stat_denuncias, dtype: int64
In [229]:
index_6 = 'lstacciones_stat_usuarios'
data[index_6]
Out[229]:
0    0
1    0
2    1
3    1
4    0
5    0
6    1
7    1
8    1
9    0
Name: lstacciones_stat_usuarios, dtype: int64
In [230]:
index = 'informacion_resultados'
meta[index] = {}
data[index] = ((
    data[index_2] +
    data[index_4] +
    data[index_5] +
    data[index_6]
) / 4).round(4)
data[index]
Out[230]:
0    0.75
1    0.75
2    1.00
3    0.75
4    0.50
5    0.25
6    1.00
7    1.00
8    1.00
9    0.25
Name: informacion_resultados, dtype: float64
In [231]:
generateStats(index)
Mediana:  0.7500
Promedio: 0.7250
In [232]:
aggregateColumns(index, 'Se presenta información para dar a conocer los resultados')
Out[232]:
informacion_resultados
0.25    2
0.50    1
0.75    3
1.00    4
Name: informacion_resultados, dtype: int64
In [233]:
byOffice(index, 'Se presenta información para dar a conocer los resultados')
Out[233]:
institucion informacion_resultados
0 TEG 0.75
1 MINSAL 0.75
2 I.JUDICIAL 1.00
3 PROBIDAD 0.75
4 SPTA 0.50
5 MINED 0.25
6 FGR 1.00
7 PNC 1.00
8 MH 1.00
9 CCR 0.25

Divulgación de mecanismos de denuncia

In [234]:
index_1 = 'intacciones_eventos'
data[index_1]
Out[234]:
0    1
1    0
2    0
3    0
4    0
5    0
6    0
7    1
8    1
9    1
Name: intacciones_eventos, dtype: int64
In [235]:
index_2 = 'acdifofic_difmec'
data[index_2]
Out[235]:
0    1
1    1
2    0
3    1
4    1
5    0
6    0
7    0
8    1
9    1
Name: acdifofic_difmec, dtype: int64
In [236]:
index = 'divulgacion_mecanismos'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[236]:
0    1.0
1    0.5
2    0.0
3    0.5
4    0.5
5    0.0
6    0.0
7    0.5
8    1.0
9    1.0
Name: divulgacion_mecanismos, dtype: float64
In [237]:
generateStats(index)
Mediana:  0.5000
Promedio: 0.5000
In [238]:
aggregateColumns(index, 'Divulgación de mecanismos de denuncia')
Out[238]:
divulgacion_mecanismos
0.0    3
0.5    4
1.0    3
Name: divulgacion_mecanismos, dtype: int64
In [239]:
byOffice(index, 'Divulgación de mecanismos de denuncia')
Out[239]:
institucion divulgacion_mecanismos
0 TEG 1.0
1 MINSAL 0.5
2 I.JUDICIAL 0.0
3 PROBIDAD 0.5
4 SPTA 0.5
5 MINED 0.0
6 FGR 0.0
7 PNC 0.5
8 MH 1.0
9 CCR 1.0

Herramientas disponibles para dar seguimiento a las denuncias

In [240]:
index_1 = 'afirm01_software_seg'
data[index_1]
Out[240]:
0    1
1    0
2    1
3    0
4    0
5    0
6    1
7    0
8    0
9    1
Name: afirm01_software_seg, dtype: int64
In [241]:
index_2 = 'viasegusr'
generateSet(formulario[index_2])
Out[241]:
{'De forma presencial',
 'Por medios electrónicos',
 'Por teléfono',
 'Se comunica con el ciudadano al día siguiente de interponer la queja o aviso',
 'Seguimiento automático en línea',
 'respuestas escritas'}
In [242]:
meta[index_2] = {}
meta[index_2]['labels'] = [
    'Seguimiento automático en línea',
    'Por medios electrónicos',
    'Por teléfono',
    'De forma presencial',
    'Otro'
]
meta[index_2]['vars'] = [
    index_2 + '_online',
    index_2 + '_electronico',
    index_2 + '_telefono',
    index_2 + '_presencial',
    index_2 + '_otro'
]
meta_check_len(index_2)
Out[242]:
True
In [243]:
generateColumns(index_2)
Out[243]:
institucion viasegusr_online viasegusr_electronico viasegusr_telefono viasegusr_presencial viasegusr_otro
0 TEG 0 1 1 1 0
1 MINSAL 0 1 1 1 0
2 I.JUDICIAL 0 0 0 1 0
3 PROBIDAD 0 0 0 1 0
4 SPTA 0 1 1 1 1
5 MINED 0 1 1 0 1
6 FGR 0 0 1 1 0
7 PNC 0 0 1 1 0
8 MH 0 1 1 1 0
9 CCR 1 0 0 1 0
In [244]:
meanColumns(index_2)
data[index_2]
Out[244]:
0    0.75
1    0.75
2    0.25
3    0.25
4    0.75
5    0.50
6    0.50
7    0.50
8    0.75
9    0.50
Name: viasegusr, dtype: float64
In [245]:
index = 'herramientas_seg'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[245]:
0    0.875
1    0.375
2    0.625
3    0.125
4    0.375
5    0.250
6    0.750
7    0.250
8    0.375
9    0.750
Name: herramientas_seg, dtype: float64
In [246]:
generateStats(index)
Mediana:  0.3750
Promedio: 0.4750
In [247]:
aggregateColumns(index, 'Herramientas disponibles para dar seguimiento a las denuncias')
Out[247]:
herramientas_seg
0.125    1
0.250    2
0.375    3
0.625    1
0.750    2
0.875    1
Name: herramientas_seg, dtype: int64
In [248]:
byOffice(index, 'Herramientas disponibles para dar seguimiento a las denuncias')
Out[248]:
institucion herramientas_seg
0 TEG 0.875
1 MINSAL 0.375
2 I.JUDICIAL 0.625
3 PROBIDAD 0.125
4 SPTA 0.375
5 MINED 0.250
6 FGR 0.750
7 PNC 0.250
8 MH 0.375
9 CCR 0.750

Retroalimentación al usuario

In [257]:
index_1 = 'afirm02_actualizacion'
data[index_1]
Out[257]:
0    1
1    1
2    1
3    0
4    1
5    0
6    1
7    1
8    1
9    1
Name: afirm02_actualizacion, dtype: int64
In [259]:
index_2 = 'usractual'
generateSet(formulario[index_2])
Out[259]:
{'Al finalizar el proceso',
 'Casi nunca porque muchas denuncias corresponde tramitarlas a las DDE y JCD.',
 'En cada etapa del proceso',
 'Hay continua comunicación con los interesados',
 'Nunca'}
In [260]:
meta[index_2] = {}
meta[index_2]['labels'] = [
    'En cada etapa del proceso',
    'Al finalizar el proceso',
    'Otro',
    'Nunca'
]
meta[index_2]['vars'] = [
    index_2 + '_etapa',
    index_2 + '_final',
    index_2 + '_otro',
    index_2 + '_nunca'
]
meta_check_len(index_2)
Out[260]:
True
In [261]:
generateColumns(index_2)
Out[261]:
institucion usractual_etapa usractual_final usractual_otro usractual_nunca
0 TEG 1 0 0 0
1 MINSAL 0 1 0 0
2 I.JUDICIAL 0 0 0 1
3 PROBIDAD 0 0 0 1
4 SPTA 0 0 0 1
5 MINED 0 0 0 1
6 FGR 1 0 0 0
7 PNC 1 0 0 0
8 MH 1 0 0 0
9 CCR 1 0 0 0
In [262]:
rankByOrderColumns(index_2)
Out[262]:
0    1.0
1    0.5
2    0.0
3    0.0
4    0.0
5    0.0
6    1.0
7    1.0
8    1.0
9    1.0
Name: usractual, dtype: float64
In [263]:
index = 'retroalimentacion'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[263]:
0    1.00
1    0.75
2    0.50
3    0.00
4    0.50
5    0.00
6    1.00
7    1.00
8    1.00
9    1.00
Name: retroalimentacion, dtype: float64
In [264]:
generateStats(index)
Mediana:  0.8750
Promedio: 0.6750
In [265]:
aggregateColumns(index, 'Retroalimentación al usuario')
Out[265]:
retroalimentacion
0.00    2
0.50    2
0.75    1
1.00    5
Name: retroalimentacion, dtype: int64
In [266]:
byOffice(index, 'Retroalimentación al usuario')
Out[266]:
institucion retroalimentacion
0 TEG 1.00
1 MINSAL 0.75
2 I.JUDICIAL 0.50
3 PROBIDAD 0.00
4 SPTA 0.50
5 MINED 0.00
6 FGR 1.00
7 PNC 1.00
8 MH 1.00
9 CCR 1.00

Accesibilidad

Documentación solicitada

In [267]:
index = 'reqdenun'
data[index]
Out[267]:
0    0.750
1    0.875
2    0.875
3    0.625
4    1.000
5    1.000
6    1.000
7    0.875
8    1.000
9    1.000
Name: reqdenun, dtype: float64
In [268]:
generateStats(index)
Mediana:  0.9375
Promedio: 0.9000
In [269]:
aggregateColumns(index, 'Documentación solicitada')
Out[269]:
reqdenun
0.625    1
0.750    1
0.875    3
1.000    5
Name: reqdenun, dtype: int64
In [270]:
byOffice(index, 'Documentación solicitada')
Out[270]:
institucion reqdenun
0 TEG 0.750
1 MINSAL 0.875
2 I.JUDICIAL 0.875
3 PROBIDAD 0.625
4 SPTA 1.000
5 MINED 1.000
6 FGR 1.000
7 PNC 0.875
8 MH 1.000
9 CCR 1.000

Cobro por tramitar denuncias en la oficina

In [271]:
index_1 = 'afirm02_gratuidad'
data[index_1]
Out[271]:
0    1
1    1
2    1
3    1
4    1
5    1
6    1
7    1
8    1
9    1
Name: afirm02_gratuidad, dtype: int64
In [272]:
index_2 = 'afirm02_fotocopias'
data[index_2]
Out[272]:
0    1
1    1
2    1
3    1
4    1
5    0
6    1
7    1
8    1
9    0
Name: afirm02_fotocopias, dtype: int64
In [273]:
index = 'cobro_denuncia'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[273]:
0    1.0
1    1.0
2    1.0
3    1.0
4    1.0
5    0.5
6    1.0
7    1.0
8    1.0
9    0.5
Name: cobro_denuncia, dtype: float64
In [274]:
generateStats(index)
Mediana:  1.0000
Promedio: 0.9000
In [275]:
aggregateColumns(index, 'Cobro por tramitar denuncias en la oficina')
Out[275]:
cobro_denuncia
0.5    2
1.0    8
Name: cobro_denuncia, dtype: int64
In [276]:
byOffice(index, 'Cobro por tramitar denuncias en la oficina')
Out[276]:
institucion cobro_denuncia
0 TEG 1.0
1 MINSAL 1.0
2 I.JUDICIAL 1.0
3 PROBIDAD 1.0
4 SPTA 1.0
5 MINED 0.5
6 FGR 1.0
7 PNC 1.0
8 MH 1.0
9 CCR 0.5

Condiciones propicias para atender personas con discapacidades

In [278]:
index_1 = 'accdiscap'
yesNoColumn(index_1)
Out[278]:
0    1
1    0
2    1
3    1
4    1
5    1
6    1
7    0
8    1
9    0
Name: accdiscap, dtype: int64
In [280]:
index_2 = 'acdifofic_disc'
data[index_2]
Out[280]:
0    0
1    0
2    0
3    0
4    1
5    0
6    0
7    0
8    0
9    0
Name: acdifofic_disc, dtype: int64
In [281]:
index_3 = 'webadap'
yesNoColumn(index_3)
Out[281]:
0    0
1    1
2    0
3    0
4    0
5    1
6    1
7    0
8    1
9    0
Name: webadap, dtype: int64
In [282]:
index = 'discapacidades'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2] + data[index_3]) / 3).round(4)
data[index]
Out[282]:
0    0.3333
1    0.3333
2    0.3333
3    0.3333
4    0.6667
5    0.6667
6    0.6667
7    0.0000
8    0.6667
9    0.0000
Name: discapacidades, dtype: float64
In [283]:
generateStats(index)
Mediana:  0.3333
Promedio: 0.4000
In [284]:
aggregateColumns(index, 'Condiciones propicias para atender personas con discapacidades')
Out[284]:
discapacidades
0.0000    2
0.3333    4
0.6667    4
Name: discapacidades, dtype: int64
In [285]:
byOffice(index, 'Condiciones propicias para atender personas con discapacidades')
Out[285]:
institucion discapacidades
0 TEG 0.3333
1 MINSAL 0.3333
2 I.JUDICIAL 0.3333
3 PROBIDAD 0.3333
4 SPTA 0.6667
5 MINED 0.6667
6 FGR 0.6667
7 PNC 0.0000
8 MH 0.6667
9 CCR 0.0000
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 

Documentos para reconocer derechos de los usuarios de la oficina

In [251]:
index = 'docnorm_derechos'
mandato.append(index)
meta[index] = {}
In [252]:
generateStats(index)
Mediana:  0.5000
Promedio: 0.5000
In [253]:
res = aggregateColumns(index, 'Documentos para reconocer derechos de los usuarios de la oficina')
res
Out[253]:
docnorm_derechos
0    5
1    5
Name: docnorm_derechos, dtype: int64
In [254]:
byOffice(index, 'Documentos para reconocer derechos de los usuarios de la oficina')
Out[254]:
institucion docnorm_derechos
0 TEG 1
1 MINSAL 1
2 I.JUDICIAL 0
3 PROBIDAD 0
4 SPTA 0
5 MINED 1
6 FGR 1
7 PNC 0
8 MH 1
9 CCR 0

Analisis de variables

Mandato

In [296]:
mandato = []
In [297]:
index = 'sv_disp_requisitos'
mandato.append(index)
data[index] = data[['viacomm', 'reqdenun', 'confidencialidad']].mean(axis=1)
data[index]
Out[297]:
0    0.916667
1    0.736100
2    0.791667
3    0.625000
4    0.777767
5    1.000000
6    0.694433
7    0.847233
8    1.000000
9    0.888900
Name: sv_disp_requisitos, dtype: float64
In [298]:
index = 'sv_confidencialidad'
mandato.append(index)
data[index] = data['confidencialidad']
data[index]
Out[298]:
0    1.0000
1    0.3333
2    1.0000
3    1.0000
4    0.3333
5    1.0000
6    0.3333
7    0.6667
8    1.0000
9    0.6667
Name: sv_confidencialidad, dtype: float64
In [300]:
index = 'sv_avisos_y_anonimos'
mandato.append(index)
data[index] = data['avisos_y_anonimos']
data[index]
Out[300]:
0    0.6667
1    1.0000
2    0.6667
3    0.3333
4    0.3333
5    1.0000
6    1.0000
7    0.6667
8    1.0000
9    0.3333
Name: sv_avisos_y_anonimos, dtype: float64
In [302]:
index = 'sv_investigacion'
mandato.append(index)
data[index] = data[['iniinvest', 'docnorm_validacion', 'afirm01_reg_no_validas']].mean(axis=1)
data[index]
Out[302]:
0    0.666667
1    0.666667
2    1.000000
3    0.666667
4    0.666667
5    0.333333
6    1.000000
7    1.000000
8    1.000000
9    0.666667
Name: sv_investigacion, dtype: float64
In [303]:
index = 'sv_independencia'
mandato.append(index)
data[index] = data[['lugrecep', 'potestad_investigar']].mean(axis=1)
data[index]
Out[303]:
0    0.95
1    0.80
2    1.00
3    0.65
4    0.80
5    0.80
6    0.90
7    0.85
8    0.80
9    0.80
Name: sv_independencia, dtype: float64
In [304]:
index = 'sv_lineamientos_tecnicos'
mandato.append(index)
data[index] = data['lineamientos_tecnicos']
data[index]
Out[304]:
0    0.5
1    0.5
2    0.5
3    0.5
4    0.0
5    1.0
6    1.0
7    0.5
8    0.5
9    0.5
Name: sv_lineamientos_tecnicos, dtype: float64
In [305]:
index = 'sv_capacidad_resolv'
mandato.append(index)
data[index] =  data[['viaproblem', 'recursos_asignados']].mean(axis=1)
data[index]
Out[305]:
0    0.95
1    0.10
2    0.15
3    0.05
4    0.40
5    0.10
6    0.45
7    0.10
8    0.85
9    0.15
Name: sv_capacidad_resolv, dtype: float64
In [307]:
index = 'sv_proteccion'
mandato.append(index)
data[index] = data[['proteccion_denunciantes', 'oportunidad', 'asesoria_legal']].mean(axis=1)
data[index]
Out[307]:
0    0.500000
1    0.222200
2    0.500000
3    0.333333
4    0.222200
5    0.500000
6    0.388867
7    0.444467
8    0.500000
9    0.388900
Name: sv_proteccion, dtype: float64
In [308]:
index = 'sv_coordinacion'
mandato.append(index)
data[index] = data['convenios']
data[index]
Out[308]:
0    0.5
1    0.0
2    0.0
3    0.0
4    0.0
5    0.0
6    0.0
7    0.0
8    0.0
9    0.0
Name: sv_coordinacion, dtype: float64
In [312]:
cols = data[['institucion'] + mandato]
cols
Out[312]:
institucion sv_disp_requisitos sv_avisos_y_anonimos sv_investigacion sv_investigacion sv_independencia sv_lineamientos_tecnicos sv_capacidad_resolv sv_proteccion sv_proteccion sv_coordinacion
0 TEG 0.916667 0.6667 0.666667 0.666667 0.95 0.5 0.95 0.500000 0.500000 0.5
1 MINSAL 0.736100 1.0000 0.666667 0.666667 0.80 0.5 0.10 0.222200 0.222200 0.0
2 I.JUDICIAL 0.791667 0.6667 1.000000 1.000000 1.00 0.5 0.15 0.500000 0.500000 0.0
3 PROBIDAD 0.625000 0.3333 0.666667 0.666667 0.65 0.5 0.05 0.333333 0.333333 0.0
4 SPTA 0.777767 0.3333 0.666667 0.666667 0.80 0.0 0.40 0.222200 0.222200 0.0
5 MINED 1.000000 1.0000 0.333333 0.333333 0.80 1.0 0.10 0.500000 0.500000 0.0
6 FGR 0.694433 1.0000 1.000000 1.000000 0.90 1.0 0.45 0.388867 0.388867 0.0
7 PNC 0.847233 0.6667 1.000000 1.000000 0.85 0.5 0.10 0.444467 0.444467 0.0
8 MH 1.000000 1.0000 1.000000 1.000000 0.80 0.5 0.85 0.500000 0.500000 0.0
9 CCR 0.888900 0.3333 0.666667 0.666667 0.80 0.5 0.15 0.388900 0.388900 0.0
In [322]:
ax = cols.plot(kind='box')
xticks = ax.get_xticklabels()
for tick in xticks:
    tick.set_rotation(90)
In [326]:
data['mandato'] = cols.mean(axis=1)
data['mandato']
Out[326]:
0    0.681670
1    0.491383
2    0.610837
3    0.415830
4    0.408880
5    0.556667
6    0.682217
7    0.585287
8    0.715000
9    0.478333
Name: mandato, dtype: float64
In [328]:
data[['institucion', 'mandato']].plot(kind='bar')
Out[328]:
<matplotlib.axes._subplots.AxesSubplot at 0x7fe580ea79e8>
In [324]:
cols.mean().mean()
Out[324]:
0.56261033333333332
In [ ]: