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

Se hace corrección en procesamiento de esta variable porque al revisar los resultados se observa ambiguedad entre la variable presencial y la de escritos. Por tanto, se omitirá la columna viacomm_escrito y se tomará como una vía que requiere presentar la denuncia de forma presencial. Se hará operación "Or", si tienen 1 en presencial o en escrita, el resultado de la nueva columna será 1

In [6]:
data["viacomm_presencial"]+=data["viacomm_escrito"]
data["viacomm_presencial"] = data["viacomm_presencial"].apply(lambda x:1 if x>=1 else 0)
del data['viacomm_escrito']
del meta[index]['labels'][3]
del meta[index]['vars'][3]
data["viacomm_presencial"]
Out[6]:
0    1
1    1
2    1
3    1
4    1
5    1
6    1
7    1
8    1
9    1
Name: viacomm_presencial, dtype: int64
In [7]:
showColumns(index, 'Vías de comunicación')
Out[7]:
0
viacomm_presencial 100.0
viacomm_telefonica 80.0
viacomm_electronica 70.0
viacomm_otra 70.0
In [8]:
meanColumns(index)
In [9]:
generateStats(index)
Mediana:  1.0000
Promedio: 0.8333
Desviación estandar: 0.2833
In [10]:
res = aggregateColumns(index, 'Vías de comunicación')
res
Out[10]:
viacomm
0.3333    2
0.6667    1
1.0000    7
Name: viacomm, dtype: int64
In [11]:
byOffice(index, 'Vías de comunicación por oficina')
Out[11]:
institucion viacomm
0 TEG 1.0000
1 MINSAL 1.0000
2 I.JUDICIAL 0.3333
3 PROBIDAD 0.3333
4 SPTA 1.0000
5 MINED 1.0000
6 FGR 0.6667
7 PNC 1.0000
8 MH 1.0000
9 CCR 1.0000

2. Documentación solicitada

In [12]:
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[12]:
True
In [13]:
generateSet(formulario[index])
Out[13]:
{'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 [14]:
generateColumns(index)
Out[14]:
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 [15]:
res = showColumns(index, 'Vías de comunicación')
res
Out[15]:
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 [16]:
discountColumns(index)
In [17]:
generateStats(index)
Mediana:  0.9375
Promedio: 0.9000
Desviación estandar: 0.1291
In [18]:
res = aggregateColumns(index, 'Requisitos para denunciar')
res
Out[18]:
reqdenun
0.625    1
0.750    1
0.875    3
1.000    5
Name: reqdenun, dtype: int64
In [19]:
byOffice(index, 'Requisitos para denunciar por oficina')
Out[19]:
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 [20]:
index = 'confidencialidad'
generateSet(formulario[index])
Out[20]:
{'En Ley que rige la institución', 'En normas internas', 'En reglamentos'}
In [21]:
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[21]:
True
In [22]:
generateColumns(index)
Out[22]:
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 [23]:
res = showColumns(index, 'Disposiciones para garantizar confidencialidad')
res
Out[23]:
0
confidencialidad_ley 50.0
confidencialidad_reglamento 20.0
confidencialidad_norma_interna 40.0
confidencialidad_ninguna 0.0
confidencialidad_otro 0.0
In [24]:
rankByOrderColumns(index)
Out[24]:
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 [25]:
generateStats(index)
Mediana:  0.8334
Promedio: 0.7333
Desviación estandar: 0.3063
In [26]:
res = aggregateColumns(index, 'Disposiciones para garantizar confidencialidad')
res
Out[26]:
confidencialidad
0.3333    3
0.6667    2
1.0000    5
Name: confidencialidad, dtype: int64
In [27]:
byOffice(index, 'Disposiciones para garantizar confidencialidad por oficina')
Out[27]:
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 [28]:
index = 'tipodncia'
generateSet(formulario[index])
Out[28]:
{'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 [29]:
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[29]:
True
In [30]:
generateColumns(index)
Out[30]:
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 [31]:
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[31]:
True
In [32]:
generateColumns(index)
Out[32]:
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 [33]:
del data[index + '_ninguno']
del meta[index]['labels'][-1]
del meta[index]['vars'][-1]
In [34]:
data[meta[index]['vars']]
Out[34]:
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 [35]:
oneIfAnyColumns(index)
data[index]
Out[35]:
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 [36]:
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[36]:
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 [37]:
generateStats(index)
Mediana:  0.6667
Promedio: 0.7000
Desviación estandar: 0.2919
In [38]:
res = aggregateColumns(index, 'Recepción de Avisos, denuncias anónimas o quejas / reclamos')
res
Out[38]:
avisos_y_anonimos
0.3333    3
0.6667    3
1.0000    4
Name: avisos_y_anonimos, dtype: int64
In [39]:
byOffice(index, 'Recepción de Avisos, denuncias anónimas o quejas / reclamos')
Out[39]:
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 [40]:
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[40]:
True
In [41]:
generateColumns(index)
Out[41]:
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 [42]:
del data[index + '_ninguno']
del meta[index]['labels'][-1]
del meta[index]['vars'][-1]
data[meta[index]['vars']]
Out[42]:
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 [43]:
res = showColumns(index, 'Inicio de investigaciones')
res
Out[43]:
0
iniinvest_oficiosa 70.0
iniinvest_denuncias 100.0
iniinvest_avisos 70.0
iniinvest_quejas 40.0
iniinvest_otro 0.0
In [44]:
oneIfAnyColumns(index)
In [45]:
generateStats(index)
Mediana:  1.0000
Promedio: 1.0000
Desviación estandar: 0.0000
In [46]:
res = aggregateColumns(index, 'Investigación de casos de presunta corrupción')
res
Out[46]:
iniinvest
1    10
Name: iniinvest, dtype: int64
In [47]:
byOffice(index, 'Investigación de casos de presunta corrupción')
Out[47]:
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 [48]:
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[48]:
True
In [49]:
generateSet(formulario[index])
Out[49]:
{'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 [50]:
generateColumns(index)
Out[50]:
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 [51]:
index = 'docnorm_validacion'
mandato.append(index)
meta[index] = {}
In [52]:
generateStats(index)
Mediana:  0.0000
Promedio: 0.4000
Desviación estandar: 0.5164
In [53]:
res = aggregateColumns(index, 'Validación del contenido de la denuncia')
res
Out[53]:
docnorm_validacion
0    6
1    4
Name: docnorm_validacion, dtype: int64
In [54]:
byOffice(index, 'Validación del contenido de la denuncia')
Out[54]:
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 [55]:
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[55]:
True
In [56]:
generateColumns(index)
Out[56]:
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 [57]:
index = 'afirm01_reg_no_validas'
mandato.append(index)
meta[index] = {}
In [58]:
generateStats(index)
Mediana:  1.0000
Promedio: 0.9000
Desviación estandar: 0.3162
In [59]:
res = aggregateColumns(index, 'Registro de las denuncias maliciosas o sin fundamento recibidas')
res
Out[59]:
afirm01_reg_no_validas
0    1
1    9
Name: afirm01_reg_no_validas, dtype: int64
In [60]:
byOffice(index, 'Registro de las denuncias maliciosas o sin fundamento recibidas')
Out[60]:
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 [61]:
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[61]:
True
In [62]:
generateSet(formulario[index])
Out[62]:
{'Por medio de las CEG',
 'Se reciben directamente en la oficina',
 'Se reciben por medio de otra(s) oficina(s)'}
In [63]:
generateColumns(index)
Out[63]:
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 [64]:
del data[index + '_ninguno']
del meta[index]['labels'][-1]
del meta[index]['vars'][-1]
data[meta[index]['vars']]
Out[64]:
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 [65]:
rankByOrderColumns(index)
Out[65]:
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 [66]:
generateStats(index)
Mediana:  1.0000
Promedio: 1.0000
Desviación estandar: 0.0000
In [67]:
aggregateColumns(index, 'Recepción directa de las denuncias')
Out[67]:
lugrecep
1.0    10
Name: lugrecep, dtype: int64
In [68]:
byOffice(index, 'Recepción directa de las denuncias')
Out[68]:
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 [69]:
index = 'indprocden'
meta[index] = {}
data[index] = formulario[index] / 5
index_1 = index
In [70]:
index = 'indsancion'
meta[index] = {}
data[index] = formulario[index] / 5
index_2 = index
In [71]:
index = 'potestad_investigar'
meta[index] = {}
mandato.append(index)
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[71]:
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 [72]:
generateStats(index)
Mediana:  0.6000
Promedio: 0.6700
Desviación estandar: 0.1947
In [73]:
aggregateColumns(index, 'Potestad para investigar')
Out[73]:
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 [74]:
byOffice(index, 'Potestad para investigar')
Out[74]:
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 [75]:
index_1 = 'docnorm_procedimientos'
meta[index_1] = {}
index_2 = 'afirm01_jefe_confianza'
meta[index_2] = {}
In [76]:
index = 'lineamientos_tecnicos'
mandato.append(index)
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
In [77]:
generateStats(index)
Mediana:  0.5000
Promedio: 0.5500
Desviación estandar: 0.2838
In [78]:
res = aggregateColumns(index, 'Lineamientos técnicos que regulan el trabajo')
res
Out[78]:
lineamientos_tecnicos
0.0    1
0.5    7
1.0    2
Name: lineamientos_tecnicos, dtype: int64
In [79]:
byOffice(index, 'Lineamientos técnicos que regulan el trabajo')
Out[79]:
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 [80]:
index = 'viaproblem'
mandato.append(index)
meta[index] = {}
catalogo[catalogo['label'] == index]
Out[80]:
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 [81]:
generateSet(formulario[index])
Out[81]:
{'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 [82]:
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[82]:
True
In [83]:
generateColumns(index)
Out[83]:
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 [84]:
rankByOrderColumns(index)
Out[84]:
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 [85]:
generateStats(index)
Mediana:  0.0000
Promedio: 0.3000
Desviación estandar: 0.4216
In [86]:
aggregateColumns(index, 'Resolución directa de problemas')
Out[86]:
viaproblem
0.0    6
0.5    2
1.0    2
Name: viaproblem, dtype: int64
In [87]:
byOffice(index,'Resolución directa de problemas')
Out[87]:
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 [88]:
index_1 = 'afirm01_ppto'
meta[index_1] = {}
data[index_1]
Out[88]:
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 [89]:
index_2 = 'rectecn'
meta[index_2] = {}
catalogo[catalogo['label'] == index_2]
Out[89]:
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 [90]:
generateSet(formulario[index_2])
Out[90]:
{'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 [91]:
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[91]:
True
In [92]:
generateColumns(index_2)
Out[92]:
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 [93]:
meanColumns(index_2)
data[index_2]
Out[93]:
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 [94]:
index = 'recursos_asignados'
mandato.append(index)
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[94]:
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 [95]:
generateStats(index)
Mediana:  0.3000
Promedio: 0.3600
Desviación estandar: 0.2503
In [96]:
aggregateColumns(index, 'Recursos asignados específicamente para la oficina')
Out[96]:
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 [97]:
byOffice(index, 'Recursos asignados específicamente para la oficina')
Out[97]:
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 [98]:
index_1 = 'beneficios'
meta[index_1] = {}
catalogo[catalogo['label'] == index_1]
Out[98]:
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 [99]:
generateSet(formulario[index_1])
Out[99]:
{'No está establecido'}
In [100]:
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[100]:
True
In [101]:
generateColumns(index_1)
Out[101]:
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 [102]:
rankByOrderColumns(index_1)
Out[102]:
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 [103]:
index_2 = 'proteccion'
meta[index_2] = {}
catalogo[catalogo['label'] == index_2]
Out[103]:
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 [104]:
generateSet(formulario[index_2])
Out[104]:
{'En Ley que rige la institución',
 'En normas internas',
 'En reglamentos',
 'No está establecido'}
In [105]:
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[105]:
True
In [106]:
generateColumns(index_2)
Out[106]:
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 [107]:
rankByOrderColumns(index_2)
Out[107]:
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 [108]:
index= 'proteccion_denunciantes'
meta[index] = {}
mandato.append(index)
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[108]:
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 [109]:
generateStats(index)
Mediana:  0.4167
Promedio: 0.3333
Desviación estandar: 0.1925
In [110]:
aggregateColumns(index, 'Lineamientos para proteger a denunciantes')
Out[110]:
proteccion_denunciantes
0.0000    1
0.1666    3
0.3334    1
0.5000    5
Name: proteccion_denunciantes, dtype: int64
In [111]:
byOffice(index, 'Lineamientos para proteger a denunciantes')
Out[111]:
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 [112]:
index = 'oportunidad'
mandato.append(index)
meta[index] = {}
catalogo[catalogo['label'] == index]
Out[112]:
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 [113]:
generateSet(formulario[index])
Out[113]:
{'En reglamentos', 'No está establecido'}
In [114]:
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[114]:
True
In [115]:
generateColumns(index)
Out[115]:
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 [116]:
showColumns(index, 'Oportunidad de criterio para auto denuncias')
Out[116]:
0
oportunidad_ley 0.0
oportunidad_reglamento 10.0
oportunidad_norma_interna 0.0
oportunidad_ninguna 90.0
oportunidad_otro 0.0
In [117]:
rankByOrderColumns(index)
Out[117]:
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 [118]:
generateStats(index)
Mediana:  0.0000
Promedio: 0.0667
Desviación estandar: 0.2108
In [119]:
aggregateColumns(index, 'Oportunidad de criterio para auto denuncias')
Out[119]:
oportunidad
0.0000    9
0.6667    1
Name: oportunidad, dtype: int64
In [120]:
byOffice(index, 'Oportunidad de criterio para auto denuncias')
Out[120]:
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 [121]:
index_1 = 'afirm02'
meta[index_1] = {}
catalogo[catalogo['label'] == index_1]
Out[121]:
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 [122]:
generateSet(formulario[index_1])
Out[122]:
{'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 [123]:
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[123]:
True
In [124]:
generateColumns(index_1)
Out[124]:
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 [125]:
index_2 = 'lstacciones'
meta[index_2] = {}
catalogo[catalogo['label'] == index_2]
Out[125]:
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 [126]:
generateSet(formulario[index_2])
Out[126]:
{'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 [127]:
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[127]:
True
In [128]:
generateColumns(index_2)
Out[128]:
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 [129]:
index = 'asesoria_legal'
mandato.append(index)
meta[index] = {}
data[index] = ((data['afirm02_asesoria'] + data['lstacciones_registro_usuarios']) / 2).round(4)
data[index]
Out[129]:
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 [130]:
generateStats(index)
Mediana:  1.0000
Promedio: 0.8000
Desviación estandar: 0.2582
In [131]:
aggregateColumns(index, 'Asesoría legal brindada al usuario')
Out[131]:
asesoria_legal
0.5    4
1.0    6
Name: asesoria_legal, dtype: int64
In [132]:
byOffice(index, 'Asesoría legal brindada al usuario')
Out[132]:
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 [133]:
index_1 = 'convprot'
meta[index_1] = {}
catalogo[catalogo['label'] == index_1]
Out[133]:
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 [134]:
yesNoColumn(index_1)
Out[134]:
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 [135]:
index_2 = 'convinv'
meta[index_2] = {}
catalogo[catalogo['label'] == index_2]
Out[135]:
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 [136]:
yesNoColumn(index_2)
Out[136]:
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 [137]:
index = 'convenios'
mandato.append(index)
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[137]:
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 [138]:
generateStats(index)
Mediana:  0.0000
Promedio: 0.0500
Desviación estandar: 0.1581
In [139]:
aggregateColumns(index, 'Acuerdos o convenios establecidos con otras instituciones')
Out[139]:
convenios
0.0    9
0.5    1
Name: convenios, dtype: int64
In [140]:
byOffice(index, 'Acuerdos o convenios establecidos con otras instituciones')
Out[140]:
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 [141]:
len(mandato)
Out[141]:
16
In [142]:
mandato
Out[142]:
['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 [143]:
index = 'mandato'
meta[index] = {}
meta[index]['vars'] = mandato
In [144]:
meanColumns(index)
In [145]:
generateStats(index)
Mediana:  0.6414
Promedio: 0.6364
Desviación estandar: 0.1098
In [146]:
byOffice(index, 'Mandato')
Out[146]:
institucion mandato
0 TEG 0.7478
1 MINSAL 0.5450
2 I.JUDICIAL 0.6783
3 PROBIDAD 0.4794
4 SPTA 0.5155
5 MINED 0.6200
6 FGR 0.7244
7 PNC 0.6628
8 MH 0.8200
9 CCR 0.5711

Desempeño

In [147]:
desempeno = []

Eficiencia en admisión de denuncias

In [148]:
index_1 = 'tpoadminnorm'
In [149]:
yesNoColumn(index_1)
Out[149]:
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 [150]:
index_2 = 'tpoadminefect'
meta[index_2] = {}
In [151]:
generateSet(formulario[index_2])
Out[151]:
{'A lo sumo una semana', 'Menos un día hábil', 'Más de un mes'}
In [152]:
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[152]:
True
In [153]:
generateColumns(index_2)
Out[153]:
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 [154]:
rankByOrderColumns(index_2)
Out[154]:
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 [155]:
index_3 = 'agilidad'
data[index_3] = formulario[index_3] / 5
data[index_3]
Out[155]:
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 [156]:
index = 'eficiencia_admision'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2] + data[index_3]) / 3).round(4)
data[index]
Out[156]:
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 [157]:
generateStats(index)
Mediana:  0.8833
Promedio: 0.7333
Desviación estandar: 0.3270
In [158]:
aggregateColumns(index, 'Eficiencia en admisión de denuncias')
Out[158]:
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 [159]:
byOffice(index, 'Eficiencia en admisión de denuncias')
Out[159]:
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 [160]:
index = 'afirm01_personal_exclusivo'
data[index]
meta[index] = {}
In [161]:
generateStats(index)
Mediana:  1.0000
Promedio: 0.6000
Desviación estandar: 0.5164
In [162]:
aggregateColumns(index, 'Distribución de tareas del personal')
Out[162]:
afirm01_personal_exclusivo
0    4
1    6
Name: afirm01_personal_exclusivo, dtype: int64
In [163]:
byOffice(index, 'Distribución de tareas del personal')
Out[163]:
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 [164]:
index_1 = 'eficpers'
data[index_1] = formulario[index_1] / 5
data[index_1]
Out[164]:
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 [165]:
index_2 = 'sufpers'
data[index_2] = formulario[index_2] / 5
data[index_2]
Out[165]:
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 [166]:
index = 'desempeno_personal'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[166]:
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 [167]:
generateStats(index)
Mediana:  0.8000
Promedio: 0.7900
Desviación estandar: 0.1370
In [168]:
aggregateColumns(index, 'Desempeño del personal')
Out[168]:
desempeno_personal
0.6    2
0.7    2
0.8    2
0.9    3
1.0    1
Name: desempeno_personal, dtype: int64
In [169]:
byOffice(index, 'Desempeño del personal')
Out[169]:
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 [170]:
index = 'docnorm_conducta'
meta[index] = {}
data[index]
Out[170]:
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 [171]:
generateStats(index)
Mediana:  0.5000
Promedio: 0.5000
Desviación estandar: 0.5270
In [172]:
aggregateColumns(index, 'Código de conducta de la oficina de denuncia')
Out[172]:
docnorm_conducta
0    5
1    5
Name: docnorm_conducta, dtype: int64
In [173]:
byOffice(index, 'Código de conducta de la oficina de denuncia')
Out[173]:
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 [174]:
index = 'docnorm_procedimientos'
meta[index] = {}
data[index]
Out[174]:
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 [175]:
generateStats(index)
Mediana:  1.0000
Promedio: 0.9000
Desviación estandar: 0.3162
In [176]:
aggregateColumns(index, 'Manuales de procedimiento de la oficina de denuncia')
Out[176]:
docnorm_procedimientos
0    1
1    9
Name: docnorm_procedimientos, dtype: int64
In [177]:
byOffice(index, 'Manuales de procedimiento de la oficina de denuncia')
Out[177]:
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 [178]:
index_1 = 'efectmulta'
meta[index_1] = {}
data[index_1] = formulario[index_1] / 5
data[index_1]
Out[178]:
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 [179]:
index_2 = 'infosancion'
yesNoColumn(index_2)
Out[179]:
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 [180]:
index = 'multas_sanciones'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[180]:
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 [181]:
generateStats(index)
Mediana:  0.3000
Promedio: 0.3800
Desviación estandar: 0.3011
In [182]:
aggregateColumns(index, 'Denuncias recibidas - sanciones impuestas - multas cobradas')
Out[182]:
multas_sanciones
0.1    3
0.3    4
0.5    1
0.9    2
Name: multas_sanciones, dtype: int64
In [183]:
byOffice(index, 'Denuncias recibidas - sanciones impuestas - multas cobradas')
Out[183]:
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 [184]:
index_1 = 'afirm01_ppto'
data[index_1]
Out[184]:
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 [185]:
index_2 = 'sufppto'
data[index_2] = formulario[index_2] / 5
data[index_2]
Out[185]:
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 [186]:
index_3 = 'ejppto'
data[index_3] = formulario[index_3] / 5
data[index_3]
Out[186]:
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 [187]:
index_4 = 'infopres'
yesNoColumn(index_4)
Out[187]:
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 [188]:
index = 'presupuesto'
meta[index] = {}
data[index] = ((data[index_1] +  data[index_2] + data[index_3] + data[index_4]) / 4).round(4)
data[index]
Out[188]:
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 [189]:
generateStats(index)
Mediana:  0.4250
Promedio: 0.4500
Desviación estandar: 0.2028
In [190]:
aggregateColumns(index, 'Presupuesto asignado a la oficina de denuncia')
Out[190]:
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 [191]:
byOffice(index, 'Presupuesto asignado a la oficina de denuncia')
Out[191]:
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 [192]:
index_1 = 'lstacciones_planificacion'
data[index_1]
Out[192]:
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 [193]:
index_2 = 'ofiplan'
generateSet(formulario[index_2])
Out[193]:
{'Plan estratégico (mediano plazo)',
 'Plan operativo (año plazo)',
 'Programas de actividades'}
In [194]:
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[194]:
True
In [195]:
generateColumns(index_2)
Out[195]:
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 [196]:
rankByOrderColumns(index_2)
Out[196]:
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 [197]:
index = 'planificacion'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2)
data[index]
Out[197]:
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 [198]:
generateStats(index)
Mediana:  1.0000
Promedio: 0.9500
Desviación estandar: 0.0805
In [199]:
aggregateColumns(index, 'Planificación al interior de la oficina de denuncia')
Out[199]:
planificacion
0.83335    3
1.00000    7
Name: planificacion, dtype: int64
In [200]:
byOffice(index, 'Planificación al interior de la oficina de denuncia')
Out[200]:
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 [201]:
index_1 = 'lstacciones_objetivos'
data[index_1]
Out[201]:
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 [202]:
index_2 = 'lstacciones_evaluacion_obj'
data[index_2]
Out[202]:
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 [203]:
index_3 = 'cumplobj'
data[index_3] = formulario[index_3] / 5
data[index_3]
Out[203]:
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 [204]:
index = 'cumpl_objetivos'
meta[index] = {}
data[index] = ((data[index_1] +  data[index_2] +  data[index_3]) / 3).round(4)
data[index]
Out[204]:
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 [205]:
generateStats(index)
Mediana:  0.9333
Promedio: 0.7866
Desviación estandar: 0.2626
In [206]:
aggregateColumns(index, 'Cumplimiento de los objetivos de la oficina de denuncia')
Out[206]:
cumpl_objetivos
0.3333    2
0.6000    1
0.9333    6
1.0000    1
Name: cumpl_objetivos, dtype: int64
In [207]:
byOffice(index, 'Cumplimiento de los objetivos de la oficina de denuncia')
Out[207]:
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 [208]:
index_1 = 'docnorm_puestos'
data[index_1]
Out[208]:
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 [209]:
index_2 = 'lstacciones_evaluacion_pers'
data[index_2]
Out[209]:
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 [210]:
index = 'evaluacion_personal'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[210]:
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 [211]:
generateStats(index)
Mediana:  1.0000
Promedio: 0.9000
Desviación estandar: 0.2108
In [212]:
aggregateColumns(index, 'Evaluación del personal de la oficina de denuncia')
Out[212]:
evaluacion_personal
0.5    2
1.0    8
Name: evaluacion_personal, dtype: int64
In [213]:
byOffice(index, 'Evaluación del personal de la oficina de denuncia')
Out[213]:
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 [214]:
index_1 = 'lstacciones_ident_medidas'
data[index_1]
Out[214]:
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 [215]:
index_2 = 'lstacciones_informes'
data[index_2]
Out[215]:
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 [216]:
index_3 = 'lstacciones_impl_medidas'
data[index_3]
Out[216]:
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 [217]:
index = 'areas_sensibles'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2] + data[index_3]) / 3).round(4)
data[index]
Out[217]:
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 [218]:
generateStats(index)
Mediana:  0.8334
Promedio: 0.7667
Desviación estandar: 0.2744
In [219]:
aggregateColumns(index, 'Áreas sensibles identificadas para introducir mejoras')
Out[219]:
areas_sensibles
0.3333    2
0.6667    3
1.0000    5
Name: areas_sensibles, dtype: int64
In [220]:
byOffice(index,'Áreas sensibles identificadas para introducir mejoras')
Out[220]:
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 [221]:
index_1 = 'intacciones'
generateSet(formulario[index_1])
Out[221]:
{'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 [222]:
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[222]:
True
In [223]:
generateColumns(index_1)
Out[223]:
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 [224]:
index_2 = 'intacciones_informes'
data[index_2]
Out[224]:
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 [225]:
index_3 = 'acdifofic'
generateSet(formulario[index_3])
Out[225]:
{'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 [226]:
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[226]:
True
In [227]:
generateColumns(index_3)
Out[227]:
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 [228]:
index_4 = 'acdifofic_pubres'
data[index_4]
Out[228]:
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 [229]:
index_5 = 'lstacciones_stat_denuncias'
data[index_5]
Out[229]:
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 [230]:
index_6 = 'lstacciones_stat_usuarios'
data[index_6]
Out[230]:
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 [231]:
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[231]:
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 [232]:
generateStats(index)
Mediana:  0.7500
Promedio: 0.7250
Desviación estandar: 0.2993
In [233]:
aggregateColumns(index, 'Se presenta información para dar a conocer los resultados')
Out[233]:
informacion_resultados
0.25    2
0.50    1
0.75    3
1.00    4
Name: informacion_resultados, dtype: int64
In [234]:
byOffice(index, 'Se presenta información para dar a conocer los resultados')
Out[234]:
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 [235]:
index_1 = 'intacciones_eventos'
data[index_1]
Out[235]:
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 [236]:
index_2 = 'acdifofic_difmec'
data[index_2]
Out[236]:
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 [237]:
index = 'divulgacion_mecanismos'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[237]:
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 [238]:
generateStats(index)
Mediana:  0.5000
Promedio: 0.5000
Desviación estandar: 0.4082
In [239]:
aggregateColumns(index, 'Divulgación de mecanismos de denuncia')
Out[239]:
divulgacion_mecanismos
0.0    3
0.5    4
1.0    3
Name: divulgacion_mecanismos, dtype: int64
In [240]:
byOffice(index, 'Divulgación de mecanismos de denuncia')
Out[240]:
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 [241]:
index_1 = 'afirm01_software_seg'
data[index_1]
Out[241]:
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 [242]:
index_2 = 'viasegusr'
generateSet(formulario[index_2])
Out[242]:
{'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 [243]:
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[243]:
True
In [244]:
generateColumns(index_2)
Out[244]:
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 [245]:
meanColumns(index_2)
data[index_2]
Out[245]:
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 [246]:
index = 'herramientas_seg'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[246]:
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 [247]:
generateStats(index)
Mediana:  0.3750
Promedio: 0.4750
Desviación estandar: 0.2555
In [248]:
aggregateColumns(index, 'Herramientas disponibles para dar seguimiento a las denuncias')
Out[248]:
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 [249]:
byOffice(index, 'Herramientas disponibles para dar seguimiento a las denuncias')
Out[249]:
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 [250]:
index_1 = 'afirm02_actualizacion'
data[index_1]
Out[250]:
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 [251]:
index_2 = 'usractual'
generateSet(formulario[index_2])
Out[251]:
{'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 [252]:
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[252]:
True
In [253]:
generateColumns(index_2)
Out[253]:
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 [254]:
rankByOrderColumns(index_2)
Out[254]:
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 [255]:
index = 'retroalimentacion'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[255]:
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 [256]:
generateStats(index)
Mediana:  0.8750
Promedio: 0.6750
Desviación estandar: 0.4091
In [257]:
aggregateColumns(index, 'Retroalimentación al usuario')
Out[257]:
retroalimentacion
0.00    2
0.50    2
0.75    1
1.00    5
Name: retroalimentacion, dtype: int64
In [258]:
byOffice(index, 'Retroalimentación al usuario')
Out[258]:
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 [259]:
index = 'reqdenun'
data[index]
Out[259]:
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 [260]:
generateStats(index)
Mediana:  0.9375
Promedio: 0.9000
Desviación estandar: 0.1291
In [261]:
aggregateColumns(index, 'Documentación solicitada')
Out[261]:
reqdenun
0.625    1
0.750    1
0.875    3
1.000    5
Name: reqdenun, dtype: int64
In [262]:
byOffice(index, 'Documentación solicitada')
Out[262]:
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 [263]:
index_1 = 'afirm02_gratuidad'
data[index_1]
Out[263]:
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 [264]:
index_2 = 'afirm02_fotocopias'
data[index_2]
Out[264]:
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 [265]:
index = 'cobro_denuncia'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[265]:
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 [266]:
generateStats(index)
Mediana:  1.0000
Promedio: 0.9000
Desviación estandar: 0.2108
In [267]:
aggregateColumns(index, 'Cobro por tramitar denuncias en la oficina')
Out[267]:
cobro_denuncia
0.5    2
1.0    8
Name: cobro_denuncia, dtype: int64
In [268]:
byOffice(index, 'Cobro por tramitar denuncias en la oficina')
Out[268]:
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 [269]:
index_1 = 'accdiscap'
yesNoColumn(index_1)
Out[269]:
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 [270]:
index_2 = 'acdifofic_disc'
data[index_2]
Out[270]:
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 [271]:
index_3 = 'webadap'
yesNoColumn(index_3)
Out[271]:
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 [272]:
index = 'discapacidades'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2] + data[index_3]) / 3).round(4)
data[index]
Out[272]:
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 [273]:
generateStats(index)
Mediana:  0.3333
Promedio: 0.4000
Desviación estandar: 0.2630
In [274]:
aggregateColumns(index, 'Condiciones propicias para atender personas con discapacidades')
Out[274]:
discapacidades
0.0000    2
0.3333    4
0.6667    4
Name: discapacidades, dtype: int64
In [275]:
byOffice(index, 'Condiciones propicias para atender personas con discapacidades')
Out[275]:
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

Oficinas territoriales de la oficina de denuncia

In [276]:
index = 'numofi'
tmp = pd.DataFrame(formulario[index])
tmp[tmp.numofi == '4 o más'] = 4
data[index] = tmp / 4
meta[index] = {}
data[index]
Out[276]:
0     0.5
1       1
2    0.25
3    0.25
4    0.25
5       1
6       1
7    0.25
8    0.25
9       1
Name: numofi, dtype: object
In [277]:
generateStats(index)
Mediana:  0.3750
Promedio: 0.5750
Desviación estandar: 0.3736
In [278]:
aggregateColumns(index, 'Oficinas territoriales de la oficina de denuncia')
Out[278]:
numofi
0.25    5
0.50    1
1.00    4
Name: numofi, dtype: int64
In [279]:
byOffice(index, 'Oficinas territoriales de la oficina de denuncia')
Out[279]:
institucion numofi
0 TEG 0.5
1 MINSAL 1
2 I.JUDICIAL 0.25
3 PROBIDAD 0.25
4 SPTA 0.25
5 MINED 1
6 FGR 1
7 PNC 0.25
8 MH 0.25
9 CCR 1

Horarios de atención de la oficina de denuncia

In [280]:
index = 'horario'
meta[index] = {}
meta[index]['labels'] = [
    '24/7',
    'Horario de oficina (sin cerrar a medio día)',
    'Horario de oficina (cerrando a medio día)',
    'Tiempo parcial (menor a una jornada de trabajo)',
    'Otro',
    'Dummy'
]
meta[index]['vars'] = [
    index + '_24_7',
    index + '_sin_cerrar_medio',
    index + '_cerrado_medio_dia',
    index + '_timepo_parcial',
    index + '_otro',
    index + '_dummy'
]
meta_check_len(index)
Out[280]:
True
In [281]:
generateSet(formulario[index])
Out[281]:
{'24/7',
 'Horario de oficina (cerrando a medio día)',
 'Horario de oficina (sin cerrar a medio día)'}
In [282]:
generateColumns(index)
Out[282]:
institucion horario_24_7 horario_sin_cerrar_medio horario_cerrado_medio_dia horario_timepo_parcial horario_otro horario_dummy
0 TEG 0 1 0 0 0 0
1 MINSAL 0 0 1 0 0 0
2 I.JUDICIAL 0 0 1 0 0 0
3 PROBIDAD 0 1 0 0 0 0
4 SPTA 0 1 0 0 0 0
5 MINED 0 0 1 0 0 0
6 FGR 1 0 0 0 0 0
7 PNC 1 0 0 0 0 0
8 MH 0 1 0 0 0 0
9 CCR 0 0 1 0 0 0
In [283]:
rankByOrderColumns(index)
Out[283]:
0    0.75
1    0.50
2    0.50
3    0.75
4    0.75
5    0.50
6    1.00
7    1.00
8    0.75
9    0.50
Name: horario, dtype: float64
In [284]:
aggregateColumns(index, 'Horarios de atención de la oficina de denuncia')
Out[284]:
horario
0.50    4
0.75    4
1.00    2
Name: horario, dtype: int64
In [285]:
byOffice(index, 'Horarios de atención de la oficina de denuncia')
Out[285]:
institucion horario
0 TEG 0.75
1 MINSAL 0.50
2 I.JUDICIAL 0.50
3 PROBIDAD 0.75
4 SPTA 0.75
5 MINED 0.50
6 FGR 1.00
7 PNC 1.00
8 MH 0.75
9 CCR 0.50

Vías de denuncia

In [286]:
index = 'viacomm'
data[index]
Out[286]:
0    1.0000
1    1.0000
2    0.3333
3    0.3333
4    1.0000
5    1.0000
6    0.6667
7    1.0000
8    1.0000
9    1.0000
Name: viacomm, dtype: float64
In [287]:
generateStats(index)
Mediana:  1.0000
Promedio: 0.8333
Desviación estandar: 0.2833
In [288]:
aggregateColumns(index, 'Vías de denuncia')
Out[288]:
viacomm
0.3333    2
0.6667    1
1.0000    7
Name: viacomm, dtype: int64
In [289]:
byOffice(index, 'Vías de denuncia')
Out[289]:
institucion viacomm
0 TEG 1.0000
1 MINSAL 1.0000
2 I.JUDICIAL 0.3333
3 PROBIDAD 0.3333
4 SPTA 1.0000
5 MINED 1.0000
6 FGR 0.6667
7 PNC 1.0000
8 MH 1.0000
9 CCR 1.0000

Accesibilidad de las instalaciones

In [290]:
index_1 = 'parqueo'
yesNoColumn(index_1)
Out[290]:
0    1
1    0
2    0
3    0
4    1
5    0
6    0
7    1
8    1
9    0
Name: parqueo, dtype: int64
In [291]:
index_2 = 'buses'
yesNoColumn(index_2)
Out[291]:
0    0
1    1
2    1
3    1
4    1
5    1
6    1
7    1
8    1
9    1
Name: buses, dtype: int64
In [292]:
index_3 = 'acceso'
yesNoColumn(index_3)
Out[292]:
0    0
1    1
2    1
3    1
4    0
5    0
6    1
7    1
8    1
9    1
Name: acceso, dtype: int64
In [293]:
index = 'acceso_instalacion'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2] + data[index_3]) / 3).round(4)
data[index]
Out[293]:
0    0.3333
1    0.6667
2    0.6667
3    0.6667
4    0.6667
5    0.3333
6    0.6667
7    1.0000
8    1.0000
9    0.6667
Name: acceso_instalacion, dtype: float64
In [294]:
generateStats(index)
Mediana:  0.6667
Promedio: 0.6667
Desviación estandar: 0.2222
In [295]:
aggregateColumns(index, 'Accesibilidad de las instalaciones')
Out[295]:
acceso_instalacion
0.3333    2
0.6667    6
1.0000    2
Name: acceso_instalacion, dtype: int64
In [296]:
byOffice(index, 'Accesibilidad de las instalaciones')
Out[296]:
institucion acceso_instalacion
0 TEG 0.3333
1 MINSAL 0.6667
2 I.JUDICIAL 0.6667
3 PROBIDAD 0.6667
4 SPTA 0.6667
5 MINED 0.3333
6 FGR 0.6667
7 PNC 1.0000
8 MH 1.0000
9 CCR 0.6667

Información visible en oficinas o instituciones

In [297]:
index = 'rotulos'
meta[index] = {}
yesNoColumn(index)
Out[297]:
0    0
1    0
2    1
3    1
4    0
5    0
6    1
7    1
8    0
9    1
Name: rotulos, dtype: int64
In [298]:
generateStats(index)
Mediana:  0.5000
Promedio: 0.5000
Desviación estandar: 0.5270
In [299]:
aggregateColumns(index, 'Información visible en oficinas o instituciones')
Out[299]:
rotulos
0    5
1    5
Name: rotulos, dtype: int64
In [300]:
byOffice(index, 'Información visible en oficinas o instituciones')
Out[300]:
institucion rotulos
0 TEG 0
1 MINSAL 0
2 I.JUDICIAL 1
3 PROBIDAD 1
4 SPTA 0
5 MINED 0
6 FGR 1
7 PNC 1
8 MH 0
9 CCR 1

Información en línea para orientar a los usuarios

In [301]:
index_1 = 'infoweb'
yesNoColumn(index_1)
Out[301]:
0    1
1    1
2    1
3    0
4    0
5    1
6    1
7    1
8    0
9    1
Name: infoweb, dtype: int64
In [302]:
index_2 = 'reqweb'
yesNoColumn(index_2)
Out[302]:
0    1
1    1
2    1
3    1
4    0
5    1
6    1
7    1
8    0
9    0
Name: reqweb, dtype: int64
In [303]:
index = 'info_online'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[303]:
0    1.0
1    1.0
2    1.0
3    0.5
4    0.0
5    1.0
6    1.0
7    1.0
8    0.0
9    0.5
Name: info_online, dtype: float64
In [304]:
generateStats(index)
Mediana:  1.0000
Promedio: 0.7000
Desviación estandar: 0.4216
In [305]:
aggregateColumns(index, 'Información en línea para orientar a los usuarios')
Out[305]:
info_online
0.0    2
0.5    2
1.0    6
Name: info_online, dtype: int64
In [306]:
byOffice(index, 'Información en línea para orientar a los usuarios')
Out[306]:
institucion info_online
0 TEG 1.0
1 MINSAL 1.0
2 I.JUDICIAL 1.0
3 PROBIDAD 0.5
4 SPTA 0.0
5 MINED 1.0
6 FGR 1.0
7 PNC 1.0
8 MH 0.0
9 CCR 0.5

Atención inmediata en la oficina de denuncia (no demorar trámites)

In [307]:
index = 'tpoatencion'
meta[index] = {}
data[index] = 1
data[index]
Out[307]:
0    1
1    1
2    1
3    1
4    1
5    1
6    1
7    1
8    1
9    1
Name: tpoatencion, dtype: int64
In [308]:
generateStats(index)
Mediana:  1.0000
Promedio: 1.0000
Desviación estandar: 0.0000
In [309]:
aggregateColumns(index, 'Atención inmediata en la oficina de denuncia')
Out[309]:
tpoatencion
1    10
Name: tpoatencion, dtype: int64
In [310]:
byOffice(index, 'Atención inmediata en la oficina de denuncia')
Out[310]:
institucion tpoatencion
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

Empoderamiento al ciudadano

Divulgación sobre importancia de la participación y denuncia ciudadana

In [311]:
index_1 = 'acdifofic_imp_part'
data[index_1]
Out[311]:
0    1
1    1
2    1
3    0
4    1
5    0
6    1
7    0
8    0
9    1
Name: acdifofic_imp_part, dtype: int64
In [312]:
index_2 = 'infciud'
generateSet(formulario[index_2])
Out[312]:
{'Brochures',
 'Campañas publicitarias',
 'Carteles o afiches',
 'Divulgación en capacitaciones o eventos a los que han sido invitados',
 'Documentos',
 'Redes sociales',
 'Videos',
 'radio',
 'tv'}
In [313]:
meta[index_2] = {}
meta[index_2]['labels'] = [
    'Redes sociales',
    'Brochures',
    'Campañas publicitarias',
    'Carteles o afiches',
    'Otro'
]
meta[index_2]['vars'] = [
    index_2 + '_redes',
    index_2 + '_broshure',
    index_2 + '_campanas',
    index_2 + '_carteles',
    index_2 + '_otro'
]
meta_check_len(index_2)
Out[313]:
True
In [314]:
generateColumns(index_2)
Out[314]:
institucion infciud_redes infciud_broshure infciud_campanas infciud_carteles infciud_otro
0 TEG 1 1 1 1 1
1 MINSAL 1 1 0 1 0
2 I.JUDICIAL 1 1 0 0 0
3 PROBIDAD 1 0 0 0 0
4 SPTA 1 1 0 1 0
5 MINED 0 1 0 0 1
6 FGR 1 1 1 1 0
7 PNC 1 0 0 1 0
8 MH 0 0 0 1 1
9 CCR 1 0 0 0 0
In [315]:
meanColumns(index_2)
In [316]:
index = 'divulgacion_imp'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[316]:
0    1.000
1    0.875
2    0.750
3    0.125
4    0.875
5    0.125
6    1.000
7    0.250
8    0.125
9    0.625
Name: divulgacion_imp, dtype: float64
In [317]:
generateStats(index)
Mediana:  0.6875
Promedio: 0.5750
Desviación estandar: 0.3782
In [318]:
aggregateColumns(index, 'Divulgación sobre importancia de la participación y denuncia ciudadana')
Out[318]:
divulgacion_imp
0.125    3
0.250    1
0.625    1
0.750    1
0.875    2
1.000    2
Name: divulgacion_imp, dtype: int64
In [319]:
byOffice(index, 'Divulgación sobre importancia de la participación y denuncia ciudadana')
Out[319]:
institucion divulgacion_imp
0 TEG 1.000
1 MINSAL 0.875
2 I.JUDICIAL 0.750
3 PROBIDAD 0.125
4 SPTA 0.875
5 MINED 0.125
6 FGR 1.000
7 PNC 0.250
8 MH 0.125
9 CCR 0.625

Formación ciudadana concientizar sobre la importancia de la denuncia

In [320]:
index_1 = 'acdifofic_concient'
data[index_1]
Out[320]:
0    1
1    1
2    0
3    0
4    0
5    1
6    1
7    0
8    1
9    0
Name: acdifofic_concient, dtype: int64
In [321]:
index_2 = 'concciud'
generateSet(formulario[index_2])
Out[321]:
{'Actividad propia de la OIR o de las DDE',
 'Campañas para promover el respeto a la ley',
 'Capacitaciones',
 'Charlas de orientación y prevención a diferentes instituciones públicas y privadas conforme lo establecido en el plan estratégico',
 'Charlas en establecimientos de salud u hospitales',
 'Ferias universitarias',
 'No se han realizado actividades',
 'Reuniones informativas',
 'Talleres',
 'la paz y convivencia'}
In [322]:
meta[index_2] = {}
meta[index_2]['labels'] = [
    'Talleres',
    'Capacitaciones',
    'Reuniones informativas',
    'Otro',
    'No se han realizado actividades'
]
meta[index_2]['vars'] = [
    index_2 + '_talleres',
    index_2 + '_capacitaciones',
    index_2 + '_reuniones',
    index_2 + '_otros',
    index_2 + '_ninguno'
]
meta_check_len(index_2)
Out[322]:
True
In [323]:
generateColumns(index_2)
Out[323]:
institucion concciud_talleres concciud_capacitaciones concciud_reuniones concciud_otros concciud_ninguno
0 TEG 0 1 1 0 1
1 MINSAL 0 0 0 0 1
2 I.JUDICIAL 0 0 0 0 1
3 PROBIDAD 1 0 0 0 0
4 SPTA 0 1 1 0 0
5 MINED 0 0 0 0 1
6 FGR 1 1 1 0 1
7 PNC 0 0 1 0 1
8 MH 1 1 0 0 0
9 CCR 0 0 0 0 1
In [324]:
rankByOrderColumns(index_2)
Out[324]:
0    0.6667
1    0.0000
2    0.0000
3    1.0000
4    0.6667
5    0.0000
6    1.0000
7    0.3333
8    1.0000
9    0.0000
Name: concciud, dtype: float64
In [325]:
index = 'formacion_ciudadana'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[325]:
0    0.8334
1    0.5000
2    0.0000
3    0.5000
4    0.3334
5    0.5000
6    1.0000
7    0.1666
8    1.0000
9    0.0000
Name: formacion_ciudadana, dtype: float64
In [326]:
generateStats(index)
Mediana:  0.5000
Promedio: 0.4833
Desviación estandar: 0.3723
In [327]:
aggregateColumns(index, 'Formación ciudadana concientizar sobre la importancia de la denuncia')
Out[327]:
formacion_ciudadana
0.0000    2
0.1666    1
0.3334    1
0.5000    3
0.8334    1
1.0000    2
Name: formacion_ciudadana, dtype: int64
In [328]:
byOffice(index, 'Formación ciudadana concientizar sobre la importancia de la denuncia')
Out[328]:
institucion formacion_ciudadana
0 TEG 0.8334
1 MINSAL 0.5000
2 I.JUDICIAL 0.0000
3 PROBIDAD 0.5000
4 SPTA 0.3334
5 MINED 0.5000
6 FGR 1.0000
7 PNC 0.1666
8 MH 1.0000
9 CCR 0.0000

Formación en la institución concientizar sobre la importancia de la denuncia

In [329]:
index = 'intacciones_capacitacion'
data[index]
meta[index] = {}
In [330]:
generateStats(index)
Mediana:  0.5000
Promedio: 0.5000
Desviación estandar: 0.5270
In [331]:
aggregateColumns(index, 'Formación en la institución concientizar sobre la importancia de la denuncia')
Out[331]:
intacciones_capacitacion
0    5
1    5
Name: intacciones_capacitacion, dtype: int64
In [332]:
byOffice(index, 'Formación en la institución concientizar sobre la importancia de la denuncia')
Out[332]:
institucion intacciones_capacitacion
0 TEG 0
1 MINSAL 1
2 I.JUDICIAL 0
3 PROBIDAD 1
4 SPTA 0
5 MINED 0
6 FGR 1
7 PNC 0
8 MH 1
9 CCR 1

Divulgación del trabajo de la oficina

In [333]:
index_1 = 'intacciones_divulgacion'
data[index_1]
Out[333]:
0    1
1    1
2    1
3    1
4    0
5    0
6    1
7    0
8    1
9    0
Name: intacciones_divulgacion, dtype: int64
In [334]:
index_2 = 'infclasif'
generateSet(formulario[index_2])
Out[334]:
{'Oficiosa', 'Pública (mediante solicitud)', 'Reservada'}
In [335]:
meta[index_2] = {}
meta[index_2]['labels'] = [
    'Oficiosa',
    'Pública (mediante solicitud)',
    'Reservada',
    'Confidencial'
]
meta[index_2]['vars'] = [
    index_2 + '_oficiosa',
    index_2 + '_solicitud',
    index_2 + '_reservada',
    index_2 + '_confidencial'
]
meta_check_len(index_2)
Out[335]:
True
In [336]:
generateColumns(index_2)
Out[336]:
institucion infclasif_oficiosa infclasif_solicitud infclasif_reservada infclasif_confidencial
0 TEG 0 1 0 0
1 MINSAL 0 1 0 0
2 I.JUDICIAL 1 0 0 0
3 PROBIDAD 0 1 0 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 0 0 1 0
9 CCR 1 0 0 0
In [337]:
rankByOrderColumns(index_2)
Out[337]:
0    0.5
1    0.5
2    1.0
3    0.5
4    0.5
5    0.0
6    0.5
7    0.0
8    0.0
9    1.0
Name: infclasif, dtype: float64
In [338]:
index = 'divulgacion_trabajo'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[338]:
0    0.75
1    0.75
2    1.00
3    0.75
4    0.25
5    0.00
6    0.75
7    0.00
8    0.50
9    0.50
Name: divulgacion_trabajo, dtype: float64
In [339]:
generateStats(index)
Mediana:  0.6250
Promedio: 0.5250
Desviación estandar: 0.3426
In [340]:
aggregateColumns(index, 'Divulgación del trabajo de la oficina')
Out[340]:
divulgacion_trabajo
0.00    2
0.25    1
0.50    2
0.75    4
1.00    1
Name: divulgacion_trabajo, dtype: int64
In [341]:
byOffice(index, 'Divulgación del trabajo de la oficina')
Out[341]:
institucion divulgacion_trabajo
0 TEG 0.75
1 MINSAL 0.75
2 I.JUDICIAL 1.00
3 PROBIDAD 0.75
4 SPTA 0.25
5 MINED 0.00
6 FGR 0.75
7 PNC 0.00
8 MH 0.50
9 CCR 0.50

Atención al usuario

In [342]:
index_1 = 'intacciones_capacitacion'
data[index_1]
Out[342]:
0    0
1    1
2    0
3    1
4    0
5    0
6    1
7    0
8    1
9    1
Name: intacciones_capacitacion, dtype: int64
In [343]:
index_2 = 'calatenc'
data[index_2] = formulario[index_2] / 5
data[index_2]
Out[343]:
0    1.0
1    1.0
2    1.0
3    0.8
4    1.0
5    0.8
6    1.0
7    0.8
8    1.0
9    1.0
Name: calatenc, dtype: float64
In [344]:
index = 'atencion_usuario'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[344]:
0    0.5
1    1.0
2    0.5
3    0.9
4    0.5
5    0.4
6    1.0
7    0.4
8    1.0
9    1.0
Name: atencion_usuario, dtype: float64
In [345]:
generateStats(index)
Mediana:  0.7000
Promedio: 0.7200
Desviación estandar: 0.2781
In [346]:
aggregateColumns(index, 'Atención al usuario')
Out[346]:
atencion_usuario
0.4    2
0.5    3
0.9    1
1.0    4
Name: atencion_usuario, dtype: int64
In [347]:
byOffice(index, 'Atención al usuario')
Out[347]:
institucion atencion_usuario
0 TEG 0.5
1 MINSAL 1.0
2 I.JUDICIAL 0.5
3 PROBIDAD 0.9
4 SPTA 0.5
5 MINED 0.4
6 FGR 1.0
7 PNC 0.4
8 MH 1.0
9 CCR 1.0

Documentos para reconocer derechos de los usuarios de la oficina

In [348]:
index = 'docnorm_derechos'
mandato.append(index)
meta[index] = {}
In [349]:
generateStats(index)
Mediana:  0.5000
Promedio: 0.5000
Desviación estandar: 0.5270
In [350]:
res = aggregateColumns(index, 'Documentos para reconocer derechos de los usuarios de la oficina')
res
Out[350]:
docnorm_derechos
0    5
1    5
Name: docnorm_derechos, dtype: int64
In [351]:
byOffice(index, 'Documentos para reconocer derechos de los usuarios de la oficina')
Out[351]:
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

Orientación al denunciante sobre dónde y cómo presentar la denuncia

In [352]:
index = 'medorient'
generateSet(formulario[index])
Out[352]:
{'En la oficina de denuncia',
 'En los hospitales Nacionales y oficinas regionales',
 'En recepción de la institución',
 'Material producido en MINED',
 'Redes sociales',
 'Sitio web',
 'Teléfono'}
In [353]:
meta[index] = {}
meta[index]['labels'] = [
    'Sitio web',
    'Redes sociales',
    'Teléfono',
    'En recepción de la institución',
    'En la oficina de denuncia',
    'Otro'
]
meta[index]['vars'] = [
    index + '_sitio_web',
    index + '_redes',
    index + '_telefono',
    index + '_recepcion',
    index + '_oficina',
    index + '_otro'
]
meta_check_len(index)
Out[353]:
True
In [354]:
generateColumns(index)
Out[354]:
institucion medorient_sitio_web medorient_redes medorient_telefono medorient_recepcion medorient_oficina medorient_otro
0 TEG 1 1 1 1 1 0
1 MINSAL 1 0 1 0 1 1
2 I.JUDICIAL 1 1 1 0 1 0
3 PROBIDAD 1 0 0 0 1 0
4 SPTA 1 1 1 0 1 0
5 MINED 1 0 1 1 1 1
6 FGR 1 0 1 0 1 0
7 PNC 1 1 1 0 1 0
8 MH 1 0 1 0 1 0
9 CCR 1 0 1 0 1 0
In [355]:
meanColumns(index)
In [356]:
generateStats(index)
Mediana:  0.7000
Promedio: 0.7000
Desviación estandar: 0.1700
In [357]:
aggregateColumns(index, 'Orientación al denunciante sobre dónde y cómo presentar la denuncia')
Out[357]:
medorient
0.4    1
0.6    4
0.8    4
1.0    1
Name: medorient, dtype: int64
In [358]:
byOffice(index, 'Orientación al denunciante sobre dónde y cómo presentar la denuncia')
Out[358]:
institucion medorient
0 TEG 1.0
1 MINSAL 0.6
2 I.JUDICIAL 0.8
3 PROBIDAD 0.4
4 SPTA 0.8
5 MINED 0.8
6 FGR 0.6
7 PNC 0.8
8 MH 0.6
9 CCR 0.6

Involucramiento de los denunciantes

In [359]:
index = 'viasuger_sum'
meta[index] = meta['viasuger']
In [360]:
meta[index]
Out[360]:
{'labels': ['Buzón de sugerencias',
  'Mensajes electrónicos',
  'Teléfono',
  'Otro'],
 'vars': ['viasuger_buzon',
  'viasuger_msjs_electronicos',
  'viasuger_tel',
  'viasuger_otro']}
In [361]:
meanColumns(index)
In [362]:
data[index]
Out[362]:
0    0.0000
1    1.0000
2    0.3333
3    0.6667
4    1.0000
5    0.6667
6    0.3333
7    0.0000
8    1.0000
9    0.0000
Name: viasuger_sum, dtype: float64
In [363]:
generateStats(index)
Mediana:  0.5000
Promedio: 0.5000
Desviación estandar: 0.4231
In [364]:
aggregateColumns(index, 'Involucramiento de los denunciantes')
Out[364]:
viasuger_sum
0.0000    3
0.3333    2
0.6667    2
1.0000    3
Name: viasuger_sum, dtype: int64
In [365]:
byOffice(index, 'Involucramiento de los denunciantes')
Out[365]:
institucion viasuger_sum
0 TEG 0.0000
1 MINSAL 1.0000
2 I.JUDICIAL 0.3333
3 PROBIDAD 0.6667
4 SPTA 1.0000
5 MINED 0.6667
6 FGR 0.3333
7 PNC 0.0000
8 MH 1.0000
9 CCR 0.0000

Confidencialidad garantizada

In [366]:
index_1 = 'afirm02_confiden'
data[index_1]
Out[366]:
0    1
1    1
2    1
3    1
4    1
5    1
6    0
7    1
8    1
9    1
Name: afirm02_confiden, dtype: int64
In [367]:
index_2 = 'tipodncia_anonimas'
data[index_2]
Out[367]:
0    1
1    1
2    0
3    0
4    0
5    1
6    1
7    1
8    1
9    1
Name: tipodncia_anonimas, dtype: int64
In [368]:
index = 'confidencialidad_garant'
meta[index] = {}
data[index] = ((data[index_1] + data[index_2]) / 2).round(4)
data[index]
Out[368]:
0    1.0
1    1.0
2    0.5
3    0.5
4    0.5
5    1.0
6    0.5
7    1.0
8    1.0
9    1.0
Name: confidencialidad_garant, dtype: float64
In [369]:
generateStats(index)
Mediana:  1.0000
Promedio: 0.8000
Desviación estandar: 0.2582
In [370]:
aggregateColumns(index, 'Confidencialidad garantizada')
Out[370]:
confidencialidad_garant
0.5    4
1.0    6
Name: confidencialidad_garant, dtype: int64
In [371]:
byOffice(index, 'Confidencialidad garantizada')
Out[371]:
institucion confidencialidad_garant
0 TEG 1.0
1 MINSAL 1.0
2 I.JUDICIAL 0.5
3 PROBIDAD 0.5
4 SPTA 0.5
5 MINED 1.0
6 FGR 0.5
7 PNC 1.0
8 MH 1.0
9 CCR 1.0

Herramientas disponibles para dar seguimiento a las denuncias

In [372]:
index = 'viasegusr'
data[index]
Out[372]:
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 [373]:
generateStats(index)
Mediana:  0.5000
Promedio: 0.5500
Desviación estandar: 0.1972
In [374]:
aggregateColumns(index, 'Herramientas disponibles para dar seguimiento a las denuncias')
Out[374]:
viasegusr
0.25    2
0.50    4
0.75    4
Name: viasegusr, dtype: int64
In [375]:
byOffice(index, 'Herramientas disponibles para dar seguimiento a las denuncias')
Out[375]:
institucion viasegusr
0 TEG 0.75
1 MINSAL 0.75
2 I.JUDICIAL 0.25
3 PROBIDAD 0.25
4 SPTA 0.75
5 MINED 0.50
6 FGR 0.50
7 PNC 0.50
8 MH 0.75
9 CCR 0.50

Garantías a la protección de usuarios y datos personales

In [376]:
index = 'afirm02_prot_dat_pers'
meta[index] = {}
data[index]
Out[376]:
0    1
1    1
2    1
3    1
4    0
5    1
6    0
7    1
8    1
9    1
Name: afirm02_prot_dat_pers, dtype: int64
In [377]:
generateStats(index)
Mediana:  1.0000
Promedio: 0.8000
Desviación estandar: 0.4216
In [378]:
aggregateColumns(index, 'Garantías a la protección de usuarios y datos personales')
Out[378]:
afirm02_prot_dat_pers
0    2
1    8
Name: afirm02_prot_dat_pers, dtype: int64
In [379]:
byOffice(index, 'Garantías a la protección de usuarios y datos personales')
Out[379]:
institucion afirm02_prot_dat_pers
0 TEG 1
1 MINSAL 1
2 I.JUDICIAL 1
3 PROBIDAD 1
4 SPTA 0
5 MINED 1
6 FGR 0
7 PNC 1
8 MH 1
9 CCR 1

Estabilidad para denunciantes

In [380]:
index = 'linprotec'
generateSet(formulario[index])
Out[380]:
{'El aviso anónimo se garantiza protección a los denunciantes',
 'No aplica',
 'No aplica porque depende de cada caso. Sobre todo las denuncia por extorsión suelen ir con régimen de protección especial.',
 'No aplica pues depende del caso',
 'No se tienen',
 'No se tienen garantías especiales establecidas',
 'No se tienen lineamientos ',
 'existe estricta confidencialidad',
 'no aplica',
 'no lo tenemos contemplado'}
In [381]:
meta[index] = {}
meta[index]['labels'] = [
    'Cuando la denuncia la presenta un servidor público, se garantiza que conservará su empleo',
    'Cuando la denuncia la presentan beneficiarios de proyectos, se garantiza que mantendrán los beneficios',
    'Cuando la denuncia es presentada por contratistas, se garantiza mantener los contratos',
    'Otro'
]
meta[index]['vars'] = [
    index + '_empleo',
    index + '_beneficios',
    index + '_contrato',
    index + '_otro'
]
meta_check_len(index)
Out[381]:
True
In [382]:
generateColumns(index)
Out[382]:
institucion linprotec_empleo linprotec_beneficios linprotec_contrato linprotec_otro
0 TEG 0 0 0 1
1 MINSAL 0 0 0 1
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 0 0 0 1
7 PNC 0 0 0 1
8 MH 0 0 0 1
9 CCR 0 0 0 1
In [383]:
meanColumns(index)
In [384]:
generateStats(index)
Mediana:  0.0000
Promedio: 0.0000
Desviación estandar: 0.0000
In [385]:
aggregateColumns(index, 'Estabilidad para denunciantes')
Out[385]:
linprotec
0.0    10
Name: linprotec, dtype: int64
In [386]:
byOffice(index, 'Estabilidad para denunciantes')
Out[386]:
institucion linprotec
0 TEG 0.0
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

Derechos de usuarios

In [387]:
index = 'ddusarios'
yesNoColumn(index)
Out[387]:
0    1
1    1
2    0
3    0
4    0
5    1
6    0
7    1
8    1
9    0
Name: ddusarios, dtype: int64
In [388]:
meta[index]= {}
generateStats(index)
Mediana:  0.5000
Promedio: 0.5000
Desviación estandar: 0.5270
In [389]:
aggregateColumns(index, 'Derechos de usuarios')
Out[389]:
ddusarios
0    5
1    5
Name: ddusarios, dtype: int64
In [390]:
byOffice(index, 'Derechos de usuarios')
Out[390]:
institucion ddusarios
0 TEG 1
1 MINSAL 1
2 I.JUDICIAL 0
3 PROBIDAD 0
4 SPTA 0
5 MINED 1
6 FGR 0
7 PNC 1
8 MH 1
9 CCR 0

Dataset resultante

In [391]:
data.to_csv('resultados.csv', index=False)
In [ ]: