El diagnóstico
Elaboración de indicadores
Beatriz Valdez
Empleo R para elaborar indicadores que faciliten analizar data en la fase del diagnóstico
La diagnosis o diagnóstico
Diagnosis es un sustantivo proveniente del griego que significa, por un lado, diferencia, a través de: dia; y conocer, conocimiento: gnosis (RAE 2001RAE. 2001. “Diccionario de La Lengua Española.” Real Academia de la Lengua Española. www.rae.es.). Significa literalmente conocer/(obtener) conocimiento o (hacer) diferencia a través de. La palabra nos sugiere, por tanto, la capacidad de distinguir, discernir o reconocer. Diagnóstico, que tiene el mismo origen de diagnosis, pero es un adjetivo, se emplea desde finales del siglo. V a.C. para indicar la capacidad para distinguir, reconocer
(Dicciomed.es 2010Dicciomed.es. 2010. Diccionario Médico-Biológico, Histórico Y Etimológico.
marzo. www.dicciomed.es.).
De acuerdo con Mendoza (2001Mendoza, W. 2001. La Planificación Como Parte Del Proceso Administrativo.
https://tallerdeinvestigacionyensayo.files.wordpress.com/2008/05/la-planificacion-como-fase-de-l-proceso-administrativo.doc.), en la fase de diagnosis se investiga un sistema en un momento del tiempo (el presente) y en un período retrospectivo inmediato al presente
. El objetivo de la fase de diagnosis de la planificación, siguiendo al autor es identificar los problemas, deficiencias e insuficiencias del sistema y la evolución de ellos en el tiempo, así como los factores determinantes o causas de los problemas
(Ib)
En ocasiones, la información existente sobre un sistema es numérica. Las variables de ese sistema se han descompuesto para ofrecer los elementos mensurables. En estos casos, para identificar las deficiencias e insuficiencias, y mejoras del sistema es necesario interpretar la data. La planificación emplea la estadística, la demografía, la economía y otras disciplinas auxiliares en estos casos.
La información numérica generalmente se ofrece en cifras absolutas. Esto es, indicando la magnitud o cantidad nominal de la variable de interés, o del conjunto de ellas. Por ejemplo, en Venezuela existían 74 instituciones de educación superior en 1980. De éstas, 49 eran oficiales y 25 privadas. Para el año 2005, este número se había incrementado a 169, 76 oficiales y 96 privadas:
Venezuela. Instituciones de educación superior, 1980, 2005
Año | Total | Oficiales | Privadas |
---|---|---|---|
1980 | 74 | 49 | 25 |
2005 | 169 | 73 | 96 |
Las cifras absolutas son útiles especialmente para indicar asignación de recursos económicos, financieros, humanos y tecnológicos. Las cifras absolutas, sin embargo, presentan limitaciones. Siguiendo con el ejemplo sobre instituciones de educación superior en Venezuela, en 1980 había más instituciones públicas de educación superior que instituciones privadas. En 2005, la situación es inversa. Hay más instituciones privadas de educación superior que instituciones publicas. Aún así, no podemos valorar con sólo un vistazo la profundidad de ese cambio.
Las cifras absolutas no ofrecen toda la riqueza de información que podría obtenerse de los datos. Riqueza que podemos obtener construyendo indicadores. La gran mayoría de los indicadores, independientemente del nombre que reciban, según la disciplina desde la que se les emplean, se elaboran usando razones, tasas, proporciones, índices, entre otros.
Para evaluar las deficiencias, insuficiencias o mejoras del sistema analizado, es preferible emplear indicadores
Repasaremos la forma de crear indicadores así como la interpretación en el contexto del diagnóstico. Usaré R durante ese procedimiento.
Construcción de indicadores
Existen numerosas definiciones de indicadores. Eligiremos la que nos ofrece Simone Cecchini (2005Cecchini, Simone. 2005. Indicadores Sociales En América Latina Y El Caribe. CEPAL.):
términos generales se puede denominarindicador a un instrumento construido a partir de un conjunto de valores numéricos o de categorías ordinales o nominales que sintetiza aspectos importantes de un fenómeno con propósitos analíticos.
Los indicadores nos permiten conocer los distintos aspectos de un (sub)sistemas, en particular los avances, retrocesos o estabilidad de sus componentes y, dentro de éstos, de sus elementos. Entre los diferentes instrumentos que se usan para construir indicadores tenemos:
Los indicadores nos permiten conocer los avances, retrocesos o estabilidad de los componentes y elementos de un sistema
- Razones,
- Proporciones,
- Porcentajes,
- Tasas, e
- Indices
Razón o relación
Las razones establecen la relación que existe entre dos subconjuntos (Briones 2003Briones, Guillermo. 2003. Métodos de Investigación Para Las Ciencias Sociales. Trillas.), por ejemplo entre hombres y mujeres. Con este instrumento, obtenemos información sobre cuántos elemento de uno de los subconjuntos, en este caso hombres, existenten en relación con el otro subconjunto, mujeres. Para ello uno de los subconjuntos se coloca en el numerador, y el otro en el denominador. El resultado se múltiplica por 100, 1000, 10000, etc, es decir por un amplificador, para facilitar la interpretación.
Las relaciones nos permiten saber cuántos elementos de un conjunto existen en relación con los elementos de otro subconjunto
Las relaciones presenta la siguiente forma:
\[\frac{Subconjunto.A}{Subconjunto.B}\cdot amplificador\]
Podemos encontrar razones o relaciones en indicadores tales como:
- el índice de masculinidad,
- indice Generacional de Ancianos,
- relación de hombre/mujeres en educación
Tasas
Cuando se construye una razón para indicar un suceso que ocurre en un lapso determinado (la cifra se coloca en el numerador) y se relaciona con el número de sucesos similares,o con un grupo de personas (cifra en el denominador), se le denomina tasa. Así, tenemos por ejemplo:
- la tasa de atención de salud (total de horas de atención de salud/total de población del municipio);
- La tasa de empleo
- La tasa de mortalidad bruta, entre otras
Tasa: Relaciona un suceso que ocurre en un lapso determinado con el número de sucesos similares o una grupo de personas
Una tasa importante que se emplea bastante en el seguimiento, control y evaluación de plans/programas/proyectos/políticas públicas, es la tasa de variación. Con ellas se mide qué tanto ha mejorado o no una realidad específica.
La tasa de variación tiene esta forma:
\[tasa de variacion\ = \frac{\left(fecha\ t2\ -fecha\ t1\right)}{fecha\ t1}\cdot100\]
Supongamos que se desea evaluar qué tanto ha variado el empleo entre 1980 y 1985. Al valor de 1985 se le resta el valor de 1980 y esa diferencia se divide entre el valor de 1980. El cociente obtenido se múltiplica por cien.
Proporción
La proporción es una razón en la que se compara el subconjunto, por ejemplo IOES , en relación al conjunto, todas las instituciones de educación superior. las proporciones se pueden multiplicar por 10, 100, 1000, o incluso 5, 20, etc. para facilitar la interpretación. Si la proporción se multiplica por cien, se tiene un porcentaje.También se pueden multiplicar por diez, y el resultado, entonces, se lee en tanto por diez. Las proporciones toman esta forma:
\[proporcion\ =\ \frac{subconjunto}{conjunto} \]
La proporción relaciona un subconjunto con el total, es decir con el conjunto
Indices
Un índice es una cifra que expresa en términos porcentuales, el cambio en una variable dada, tomando como referencia el valor de esa variable en un lapso determinado (Martínez-Bencardino 2003Martínez-Bencardino, Ciro. 2003. Estadística Y Muestreo. Ecoe Ediciones.). El año tomado como referencia se denomina año base.
Los índices expresan porcentualmente el cambio de una variable en el tiempo, tomando como base el valor de esa varible en un momento específico
Es necesario tener presente que un índice no mide el valor de la variable. Sólo señala la variación en sus precios, cantidades y valores. Por esta razón Briones (2003Briones, Guillermo. 2003. Métodos de Investigación Para Las Ciencias Sociales. Trillas.) nos advierte, particularmente para el caso de los índices socioeconómicos:
No está por demás expresar que estos procedimientos no son adecuados, ni aún desde el punto de vista cuantitativo, para el estudio de las clases sociales, como es frecuente en los llamados estudios de estratificación social. Desde luego, las categorías que pueden establecerse a partir de estas mediciones no tienen ni siquiera el carácter de cuasigrupos, ni mucho menos otras características deffinitorias, sociológicamente, de una clase social
En otras palabras, es necesario ser muy cuidadosos al derivar conclusiones sobre la situación social de un grupo de personas, tomando sólo como referencia el resultado de la aplicación de índices socioeconómicos. Los índices pueden ser simples, o pueden ser complejos. Pueden ser sumatorios o utilizar cualquier otro tipo de operación para relacionar los indicadores.
Los índices simples comparan la variación de una sola variable en e tiempo; los complejos, dos o más variables y Son sumatorios si los indicadores se suman para obtener el índice.
Entre los índices más usados para el diagnóstico tenemos:
- Indices de precios al consumidor
- Indice de Gini
- Indice de Desarrollo Humano
- Indice de Necesidades Básicas Insatisfechas
La construcción de índices toma diversas formas. Por ejemplo, un:a de las maneras de calcular el índice de Gini es
\[\frac{\sum_{i=1}^{n-1}\left(P_i-Y_i\right)}{\sum_{i=1}^{n-1}P_i}\]
En tanto que la forma global para calcular el Indice de Desarrollo Humano es:
\[indice\ del\ componente\ =\frac{\left(valor\ real\ -valor\ mínimo\right)}{\left(valor\ máximo\ -\ valor\ mínimo\right)}\]
Tipologia de indicadores
rnewthought("Existennumerosasclasificaciones")
paralodicadores (veáse, por ejemplo Cecchini (2005Cecchini, Simone. 2005. Indicadores Sociales En América Latina Y El Caribe. CEPAL.), pp.13-16). La más general es aquella que los divide en cuantitativos y en cualitativos. Una serie1 Nos referimos a una serie cronológica: una colección de datos tomados en diferentes periodos temporales (Martínez Bencadino, op. cit) de tasas de escolaridad se consideraría como una serie de indicadores cuantitativos porque proporcionan la cantidad. Por otra parte, si esa serie en lugar de mostrar el tanto por mil de estudiantes que asistieron a la educación formal en el lapso marcado por la serie, indica la calidad de esa educación (por ejemplo: deficiente, satisfactoria, muy buena), entonces se consideran indicadores cualitativos.
Consideramos que una tipología de indicadores de mayor interés para la planificación es aquella que los divide, a partir del modelo insumo-productos, en indicadores de
- Insumos
- Procesos o actividades
- Productos
- Resultados finales
El modelo insumo-producto considera los insumos necesarios para desarrollar una actividad; los procesos que deben seguirse para transformar los insumos en un producto. Luego, considera también los efecos de ese producto en el entorno, así como sus impactos. Es decir, los efectos de los efectos
De acuerdo con el modelo insumo-productos, para llevar a cabo cualquier plan, programa, proyecto, política pública, etc., se necesitarán unos insumos. Por ejemplo, supongamos que se desea aumentar el número de centros de capacitación laboral para personas de tercera edad. Un insumo necesario para llevar a cabo este objetivo es presupuesto. También lo son los facilitadores, los programas de instrucción, las aulas, los pupitres, etc. Un insumo es toda materia prima
, los medios
, necesaria para elaborar algo. Incluso si ese algo es la prestación de un servicio.
Los insumos deben procesarse para generar los productos. Siguiedo con nuestro ejemplo, los procesos son las horas de clase. Un indicador proxy de las horas de clase es la matrícula y, dentro de esta, el número de aplazados y el número de aprobados de un periodo a otro. Sería interesante que pudiera medirse el número de clase establecido en el curriculum, y el número de clases efectivamente impartido. La matrícula, además, se analiza por sectores (oficial, no oficial), por áreas (urbana, rural), por niveles (inicial, primaria, media, diversificada, terciaria, de cuarto nivel), entre otras posibilidades. Los procesos, en el caso de educación/formación tienen que ver con el funcionamiento del sistema educativo.
Los insumos y lo procesos de la educación dan como resultado los egresado (el producto
). Los egresados además pueden dividirse en graduado, y los que no continuaron con su formación. Estos últimos, si son progresivamente mayores que los graduados, nos sugieren una falla estructural del sistema educativo. Finalmente, los resultados de la educación pueden ser de dos tipos. Unos resultados inmediatos (efectos), que es, por ejemplo, el nivel educativo de la población. Y otros resultados finales (impacto), los cuales suelen ser más amplios: movilidad social; califación de la fuerza laboral, desarrollo social y económico.
Los indicadores deben poder medir con precisión y en forma directa el evento o fenómeno dado. Deben dar información capaz de satisfacer las preguntas y preocupaciones que el fenómeno analizado puede generar en un momento dado, a un costo razonable. En otras palabras; los indicadores deben ser precisos, mensurables y económicos.
Para facilitar el análisis del (sub)sistema los indicadores deben desagregarse,2 Cecchini (op. cit, p. 20), allí donde sea posible, en:
- Áreas geográficas.
- Sexo.
- Grupos de edad.
- Tamaño y composición del hogar / Jefatura del hogar.
- Ingreso, consumo o propiedad de bienes.
- Nivel educativo.
- Rama de actividad económica.
- Ocupación.
- Categoría laboral.
- Grupos sociales específicos.
Así, por ejemplo, al construir indicadores de proceso en el área de educación, podemos desagregarlos en egresados por área geográfica (parroquia, municipio, entidad; o zonas rurales y zonas urbanas); egresados según sexo. O incluso, aumentando el nivel de precisión: egresados según sexo, área geográfica y nivel de ocupación.
El nivel de desagregación, por supuesto, dependerá del tipo de información disponible. Generalmente se opera con datos provenientes de censos o de encuestas. En el primer caso, es posible alcanzar buenos niveles de desagregación. Pero la información no sólo se actualiza cada diez años. En el segundo caso, la información suele ser reciente, pero, a menos que sea un estudio desarrollado directamente por quienes desean construir los indicadores, el nivel de desagregación posible para los indicadores es limitado.
Indicadores en el diagnóstico. Pre-procesamientos
Es una buena idea elaborar un listado de los posibles componentes del sistema en el que estamos interesados, y, luego, tratar de determinar las variables de cada uno de esos subcomponentes. No tiene que ser un listado exhaustivo. Pero sí uno que nos ayude a organizar el análisis. Por ejemplo, entre las áreas que nos interesa diagnosticar está el área social. Cuando decimos área, también queremos decir sector, o (sub)sistema. Algunos de los elementos que se consideran parte de este componentes son (tomado con pequeñas modificaciones de 2005Cecchini, Simone. 2005. Indicadores Sociales En América Latina Y El Caribe. CEPAL., op. cit):
- Población
- Familias y hogares
- Educación
- Salud
- Vivienda y servicios básicos
- Trabajo
- Pobreza y distribución del ingreso
- Ingreso y consumo
- Seguridad social
- Seguridad pública, crimen y justicia
- Participación ciudadana
- Derechos humanos
- Gobernabilidad
- Tecnologías de información y comunicación
- Transporte
- Niños, niñas y adolescentes
- Situación de los jóvenes
- Situación de los adultos mayores
- Medio ambiente
- Grupos étnicos
- Cultura
- Deportes y tiempo libre
- Personas con discapacidad
Algunos indicadores de población, los que pueden, además, desagregarse:
- Número de habitantes
- Tasa de crecimiento de la población
- Estructura de la población por edades
- Relación de dependencia
- Tasa bruta de natalidad
- Tasa bruta de mortalidad
Exploración de la data
Antes de iniciar las exploraciones, si ha recibido la data para seguir este procedimiento, debe verificar cuál es el directorio de trabajo. Para ello, emplee la función getwd()
getwd()
Su directorio de trabajo debería ser una carpeta con el nombre que identifique los procedimientos que se realizan en este análisis. Por ejemplo: indicadores o elaboracioIndicadores. Generalmente acostumbramos a dejar espacios en los nombres de las carpetas y acentuamos las palabras que lo requieran. Aquí le aconsejamos no hacerlo. Si el nombre es compuesto, le sugerimos que escriba la primera parte del nombre con letra inicial minúscula y la segunda parte, sin dejar espacios, con letra inicial mayúscula. O, también, separando ambas partes con underscore: elaboracion_indicadores
Desde R puede crear una carpeta. Por ejemplo, crearé en la unidad “D:/”, un directorio -más bien un subdirectorio-, al que llamaré analisisIndicadores
dir.create("D:/analisisIndicadores")
Después de crear (y verificar que existe) el subdirectorio, entonces podemos cambiar nuestro directorio de trabajo hasta esa carpeta. Coloque allí, en ese subdirectorio, el environment que se le ha hecho llegar. Para cargar el environment a su cónsola de R, escriba el siguiente codigo
Si está trabajando con un markdown, cree un nuevo chunk y escriba en él ese mismo código. Si no hace esto, la data estará en la cónsola principal de R, pero no en la sub-consola que es el markdown.
# para cambiar el directorio
setwd("d./analisisIndicadores")
# para subir el environment
load("d:/clasesInsumos/datosIndicadores")
En el environment tiene toda la data que requiere para los ejercicios. Si quiere ver qué data hay, use la funciónn ls():
ls()
Debemos explorar la información En R existen diferentes vías. Veamos cuántos casos u observaciones (personas que han sido entrevistadas, distintos años en una serie, etc.) hay en una de las bases llamada misionSucre, así como el número de variables:
¿Cuántos casos y cuántas variables tiene el marco de dato?
# numero de casos
nrow(misionSucre)
## [1] 823
# numero de variables
ncol(misionSucre)
## [1] 54
# podemos obtener esa informacion de una sola vez
dim(misionSucre)
## [1] 823 54
¿Al observar los nombres de las variables, qué tipo de información cree usted que contiene este marco de datos?
Veamos ahora los nombres de las variables
names(misionSucre)
## [1] "estrato" "orga" "mil" "egreso"
## [5] "depen" "modalidad" "turno" "ingresp"
## [9] "programa" "jhog" "neduca" "confr"
## [13] "grup" "mision" "proingre" "ingre"
## [17] "ubifi" "tene" "tipocons" "sala"
## [21] "comedor" "salcom" "coc" "concom"
## [25] "habitaciones" "baños" "unvialente" "agua"
## [29] "aservida" "recbas" "gasdir" "gasenv"
## [33] "luz" "tel" "paredes" "techo"
## [37] "piso" "vialidad" "camino" "escalera"
## [41] "veredad" "rio" "quebrada" "callj"
## [45] "metro" "camione" "jeep" "taxi"
## [49] "transubv" "vehpro" "enfermedad" "tipenf"
## [53] "estudia" "trabaja"
Analicemos ahora el tipo de variable (numérica, o cualitativa). Para R las variables numéricas pueden ser de tipo integer o numeric. Aprendamos a leer la información que nos entrega la función str() Nos indica que tenemos un data.frame (marco de datos, o matriz de datos, u hoja de datos) con 823 casos (observaciones) y 54 variables. Luegos nos lista cada una de las variables, nos dice el tipo y nos da los 10 primeros valores de cada variable.Por ejemplo, la variable ‘estrato’ es de tipo ‘Factor’ (es decir, cualitativa de tipo ordinal) con 4 niveles (categorías). En el primer caso son números enteros y en el segundo caso se trata de valores continuos. Las variables que normalmente denominamos cualitativas, bien sea de tipo nominal u ordinal, en R se denomina factors. Esta información la obtenemos con la funcion str():
str(misionSucre)
## 'data.frame': 823 obs. of 54 variables:
## $ estrato : Factor w/ 4 levels "II","III","IV",..: 1 3 3 4 3 3 3 3 3 3 ...
## $ orga : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 2 1 1 1 ...
## $ mil : Factor w/ 2 levels "Milita","No milita": 2 2 2 2 2 2 1 1 1 2 ...
## $ egreso : chr "2003" "2002" "2003" "2003" ...
## $ depen : Factor w/ 3 levels "Privada","Pública",..: 2 1 2 2 2 2 1 2 1 1 ...
## $ modalidad : Factor w/ 3 levels "Misión","Parasistema",..: 3 3 3 3 3 3 2 3 3 3 ...
## $ turno : Factor w/ 4 levels " ","Diurno","Nocturno",..: 1 2 2 2 2 2 2 2 2 2 ...
## $ ingresp : int 2003 2003 2003 2003 2003 2003 2003 2003 2003 2003 ...
## $ programa : Factor w/ 9 levels "10","11","Arquitectura",..: 4 4 4 4 4 4 4 4 4 4 ...
## $ jhog : Factor w/ 13 levels "Abuela","Abuelo",..: 9 9 9 9 6 9 9 9 9 8 ...
## $ neduca : Factor w/ 7 levels "Analfabeta","Bachillerato",..: 5 6 3 4 5 3 6 2 4 4 ...
## $ confr : Factor w/ 7 levels "Extendida otros familiares",..: 4 4 4 5 2 7 7 4 5 2 ...
## $ grup : int 4 5 4 4 2 1 5 4 6 1 ...
## $ mision : Factor w/ 2 levels "Misión Riva",..: 1 1 1 1 1 2 1 1 1 1 ...
## $ proingre : Factor w/ 6 levels "Becado","Desempleado",..: 4 4 4 4 4 5 4 4 4 4 ...
## $ ingre : Factor w/ 3 levels "Menor del sueldo mínimo",..: 3 1 1 1 1 2 1 1 1 1 ...
## $ ubifi : Factor w/ 3 levels "Barrio","Poblado",..: 2 1 1 1 1 3 1 1 1 1 ...
## $ tene : Factor w/ 5 levels "Alquilada","Comodato",..: 3 5 4 4 4 4 5 5 4 5 ...
## $ tipocons : Factor w/ 5 levels "Apartamento",..: 3 1 2 2 2 2 1 2 2 1 ...
## $ sala : Factor w/ 2 levels "No","Si": 2 1 2 1 1 1 2 1 1 2 ...
## $ comedor : Factor w/ 2 levels "No","Si": 2 1 2 1 1 1 2 1 1 2 ...
## $ salcom : Factor w/ 2 levels "No","Si": 1 2 1 2 2 1 1 2 2 1 ...
## $ coc : Factor w/ 2 levels "No","Si": 2 2 2 2 2 1 2 2 2 2 ...
## $ concom : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 1 1 1 ...
## $ habitaciones: int 2 3 2 4 2 2 2 3 3 1 ...
## $ baños : int 2 2 1 1 1 1 1 2 1 1 ...
## $ unvialente : Factor w/ 2 levels "No","Si": 1 1 1 1 1 2 1 1 1 1 ...
## $ agua : Factor w/ 2 levels "No","Si": 1 2 2 2 2 2 2 2 2 2 ...
## $ aservida : Factor w/ 2 levels "No","Si": 1 2 2 2 2 1 2 2 2 2 ...
## $ recbas : Factor w/ 2 levels "No","Si": 1 2 2 2 2 2 2 2 2 2 ...
## $ gasdir : Factor w/ 2 levels "No","Si": 1 2 1 1 1 1 1 1 1 2 ...
## $ gasenv : Factor w/ 2 levels "No","Si": 2 1 2 2 2 2 2 2 2 1 ...
## $ luz : Factor w/ 2 levels "No","Si": 1 2 2 2 2 2 2 2 2 2 ...
## $ tel : Factor w/ 2 levels "No","Si": 2 2 1 2 1 1 2 2 2 2 ...
## $ paredes : chr "Bloques" "Bloques" "Bloques" "Bloques" ...
## $ techo : Factor w/ 7 levels "5","6","7","Asbesto",..: 5 5 4 6 7 7 5 5 5 5 ...
## $ piso : Factor w/ 4 levels "4","Cemento",..: 2 2 2 2 2 2 4 3 3 4 ...
## $ vialidad : Factor w/ 2 levels "No","Si": 2 2 2 2 2 2 2 2 2 2 ...
## $ camino : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 1 1 1 ...
## $ escalera : Factor w/ 2 levels "No","Si": 1 1 1 1 1 2 1 1 1 1 ...
## $ veredad : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 1 1 1 ...
## $ rio : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 1 1 1 ...
## $ quebrada : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 1 1 1 ...
## $ callj : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 1 1 1 ...
## $ metro : Factor w/ 2 levels "No","Si": 2 1 2 1 2 1 1 1 1 2 ...
## $ camione : Factor w/ 2 levels "No","Si": 1 2 1 1 2 2 2 2 1 2 ...
## $ jeep : Factor w/ 2 levels "No","Si": 1 2 1 1 1 1 1 1 1 1 ...
## $ taxi : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 1 1 1 ...
## $ transubv : Factor w/ 2 levels "No","Si": 1 1 2 1 1 1 2 2 1 1 ...
## $ vehpro : Factor w/ 2 levels "No","Si": 1 1 1 1 1 1 1 1 1 1 ...
## $ enfermedad : Factor w/ 2 levels "No","Si": 2 1 2 1 1 1 1 2 2 1 ...
## $ tipenf : Factor w/ 13 levels "Cardiocirculatoria",..: 9 10 1 10 10 10 10 1 9 10 ...
## $ estudia : Factor w/ 4 levels "3","5","No","Si": 3 3 3 3 3 3 3 3 4 3 ...
## $ trabaja : Factor w/ 2 levels "No","Si": 2 1 2 1 1 1 1 2 1 1 ...
Exploremos cada categoría para verificar: si están bien escritas, si son consistentes o si tienen sentido. Si encontramos errores, entoces debemos limpiar esas categorías. Esos quiere decir, afectuar las correcciones a que haya lugar. Para esta exploración podemos emplear la función table(). La función table nos indica el número de personas en cada nivel (categoría). Fíjese que para pedir esta ‘tabla’, se escribió misionSucre$estrato. El nombre del marco de datos, seguido por el símbolo de dólar, y luego el nombre de la variable deseada. Esta función rinde mejores resultados si la empleamos con variables cualitativas.
table(misionSucre$estrato)
##
## II III IV V
## 2 19 709 93
También podría haber solicitado lo siguiente Entendamos este procedimiento. Un marco o matriz de dato es una matriz con n número de filas, los casos, y n número de columnas, las variables. Por eso es que, por ejemplo, podemos pedirle a R que nos muestre el número de casos usando la función nrow(), número de filas. El marco de datos, entonces, se puede ‘modelar’ de la siguiente forma: misionSucre[nrow, ncol] :
table(misionSucre[,1])
##
## II III IV V
## 2 19 709 93
En el ejemplo anterior, sabemos que la variable estrato en la primera, [,1], y como queremmos todos los casos, dejamos el espacio correspondiente a las filas vacío. R entiende que deseo la distribución de la primera variable tomando en cuenta todos los casos: misionSucre[,1].
Si sólo queremos trabajar con los seis primeros casos de toda el marco de datos (todas las variables, pero sólo para los primeros seis casos) Le estamos pidiendo a R que de los casos 1 al seis, nos muestre todas las variables
misionSucre[1:6,]
## estrato orga mil egreso depen modalidad turno ingresp
## 1 II No No milita 2003 Pública Regular 2003
## 2 IV No No milita 2002 Privada Regular Diurno 2003
## 3 IV No No milita 2003 Pública Regular Diurno 2003
## 4 V No No milita 2003 Pública Regular Diurno 2003
## 5 IV No No milita 2002 Pública Regular Diurno 2003
## 6 IV No No milita 2003 Pública Regular Diurno 2003
## programa jhog neduca
## 1 Comunicacion Social Padre Secundaria incompleta
## 2 Comunicacion Social Padre Superior
## 3 Comunicacion Social Padre Básica
## 4 Comunicacion Social Padre Primaria incompleta
## 5 Comunicacion Social Hermana Secundaria incompleta
## 6 Comunicacion Social Padre Básica
## confr grup mision proingre
## 1 Nuclear 4 Misión Riva Pensionado
## 2 Nuclear 5 Misión Riva Pensionado
## 3 Nuclear 4 Misión Riva Pensionado
## 4 Nuclear extendida 4 Misión Riva Pensionado
## 5 Matricentrada 2 Misión Riva Pensionado
## 6 Patricentrada extendida 1 Misión Robinson Trabajo a destajo
## ingre ubifi tene tipocons sala comedor
## 1 Superior al sueldo mínimo Poblado Invadida Habitación Si Si
## 2 Menor del sueldo mínimo Barrio propia Apartamento No No
## 3 Menor del sueldo mínimo Barrio Pagandp Casa Si Si
## 4 Menor del sueldo mínimo Barrio Pagandp Casa No No
## 5 Menor del sueldo mínimo Barrio Pagandp Casa No No
## 6 Sueldo mínimo Urbanizacion Pagandp Casa No No
## salcom coc concom habitaciones baños unvialente agua aservida recbas
## 1 No Si No 2 2 No No No No
## 2 Si Si No 3 2 No Si Si Si
## 3 No Si No 2 1 No Si Si Si
## 4 Si Si No 4 1 No Si Si Si
## 5 Si Si No 2 1 No Si Si Si
## 6 No No No 2 1 Si Si No Si
## gasdir gasenv luz tel paredes techo piso vialidad camino escalera
## 1 No Si No Si Bloques Concreto Cemento Si No No
## 2 Si No Si Si Bloques Concreto Cemento Si No No
## 3 No Si Si No Bloques Asbesto Cemento Si No No
## 4 No Si Si Si Bloques Otro Cemento Si No No
## 5 No Si Si No Bloques Zinz Cemento Si No No
## 6 No Si Si No Bloques Zinz Cemento Si No Si
## veredad rio quebrada callj metro camione jeep taxi transubv vehpro
## 1 No No No No Si No No No No No
## 2 No No No No No Si Si No No No
## 3 No No No No Si No No No Si No
## 4 No No No No No No No No No No
## 5 No No No No Si Si No No No No
## 6 No No No No No Si No No No No
## enfermedad tipenf estudia trabaja
## 1 Si Osteomusculares No Si
## 2 No Otro No No
## 3 Si Cardiocirculatoria No Si
## 4 No Otro No No
## 5 No Otro No No
## 6 No Otro No No
Pero, podríamos analizar sólo los
Note: tantos los casos, como las variables seleccionadas se encierran en paréntesis y se coloca, antes del paréntesis, la letra c. Esta es en realidad la función concatenar c(). Luego, todo se encierra entre corchetes planos. No confunda las comas internas de cada vector (vector-fila y vector-columna), con la coma que separa los casos de las variables. 1,6,14, 25, 823, y las variables, 7,20,45:
misionSucre[c(1,6,14,25,823), c(7,20,45)]
## turno sala metro
## 1 Si Si
## 6 Diurno No No
## 14 Diurno No No
## 25 Diurno Si No
## 823 Diurno Si No
¿Con la información obtenida hasta ahora, qué puede decir del marco de datos misionSucre
Finalmente, veamos los primeros seis casos de cada variable para tener una mejor idea del contenido del marco de datos
head(misionSucre)
## estrato orga mil egreso depen modalidad turno ingresp
## 1 II No No milita 2003 Pública Regular 2003
## 2 IV No No milita 2002 Privada Regular Diurno 2003
## 3 IV No No milita 2003 Pública Regular Diurno 2003
## 4 V No No milita 2003 Pública Regular Diurno 2003
## 5 IV No No milita 2002 Pública Regular Diurno 2003
## 6 IV No No milita 2003 Pública Regular Diurno 2003
## programa jhog neduca
## 1 Comunicacion Social Padre Secundaria incompleta
## 2 Comunicacion Social Padre Superior
## 3 Comunicacion Social Padre Básica
## 4 Comunicacion Social Padre Primaria incompleta
## 5 Comunicacion Social Hermana Secundaria incompleta
## 6 Comunicacion Social Padre Básica
## confr grup mision proingre
## 1 Nuclear 4 Misión Riva Pensionado
## 2 Nuclear 5 Misión Riva Pensionado
## 3 Nuclear 4 Misión Riva Pensionado
## 4 Nuclear extendida 4 Misión Riva Pensionado
## 5 Matricentrada 2 Misión Riva Pensionado
## 6 Patricentrada extendida 1 Misión Robinson Trabajo a destajo
## ingre ubifi tene tipocons sala comedor
## 1 Superior al sueldo mínimo Poblado Invadida Habitación Si Si
## 2 Menor del sueldo mínimo Barrio propia Apartamento No No
## 3 Menor del sueldo mínimo Barrio Pagandp Casa Si Si
## 4 Menor del sueldo mínimo Barrio Pagandp Casa No No
## 5 Menor del sueldo mínimo Barrio Pagandp Casa No No
## 6 Sueldo mínimo Urbanizacion Pagandp Casa No No
## salcom coc concom habitaciones baños unvialente agua aservida recbas
## 1 No Si No 2 2 No No No No
## 2 Si Si No 3 2 No Si Si Si
## 3 No Si No 2 1 No Si Si Si
## 4 Si Si No 4 1 No Si Si Si
## 5 Si Si No 2 1 No Si Si Si
## 6 No No No 2 1 Si Si No Si
## gasdir gasenv luz tel paredes techo piso vialidad camino escalera
## 1 No Si No Si Bloques Concreto Cemento Si No No
## 2 Si No Si Si Bloques Concreto Cemento Si No No
## 3 No Si Si No Bloques Asbesto Cemento Si No No
## 4 No Si Si Si Bloques Otro Cemento Si No No
## 5 No Si Si No Bloques Zinz Cemento Si No No
## 6 No Si Si No Bloques Zinz Cemento Si No Si
## veredad rio quebrada callj metro camione jeep taxi transubv vehpro
## 1 No No No No Si No No No No No
## 2 No No No No No Si Si No No No
## 3 No No No No Si No No No Si No
## 4 No No No No No No No No No No
## 5 No No No No Si Si No No No No
## 6 No No No No No Si No No No No
## enfermedad tipenf estudia trabaja
## 1 Si Osteomusculares No Si
## 2 No Otro No No
## 3 Si Cardiocirculatoria No Si
## 4 No Otro No No
## 5 No Otro No No
## 6 No Otro No No
Limpieza de datos
En ocasiones la data que recibimos o que obtenemos no tienen el formato necesario para hacer nuestros análisis. Por ejemplo:
head(criminesCcs)
## parroquia poblacion homicidios personales violfam cpersonas hurto
## 1 altagracia 39291 19 85 0 12 125
## 2 antimano 127708 172 246 211 53 223
## 3 candelaria 53473 12 86 9 5 290
## 4 san bernardino 143048 18 49 6 15 148
## 5 caricuao 4831 70 291 281 37 202
## 6 el junquito 51029 31 107 21 26 97
## hurtoauto robo rob.auto estafa violación desvalij
## 1 68 121 36 86 3 6
## 2 106 298 157 27 27 38
## 3 179 249 87 188 5 17
## 4 148 131 123 81 1 7
## 5 193 232 310 35 24 21
## 6 71 81 56 12 10 12
En la variable poblacion el punto separa las unidades de mil. Para R el punto separa número decimales. Si sólo quisieramos operar con esa variable, no habría ningún problema. Todas las unidades estarían divididas entre mil. Pero si deseamos obtener la tasa de cualquiera de las variables restantes, sí que tendríamos problemas.
Si quisiéramos obtener la tasa de homicidios de la parroquia Altagracia, por cada 10 mil habitantes, deberíamos dividir 19 entre 39291 y multiplicar el cociente por, digamos 10 mil. El resultado sería 5, redondeando, 5 homicidios por cada 10 mil habitantes. Si empleo los valores como están el resultado seria de 5000 mil homicidios por cada 10 mil habitantes. ¡Una catástrofe!. En realidad, si tenemos el cuidado suficiente, podríamos operar con los valores tal como están, diviendo luego el resultado entre mil. Tal cosa es más bien fastidiosa y podriamos cometer errores. Por ello mejor limpiamos esta columna. Empleamos la función gsub() Le pedimos a R que busque allí donde hay un punto . y que lo sustituya con nada , las comillas vacías. Pero dado que no guardé ese procedimiento, R lo ejecuta, pero en nuestro marcos de datos, la variable poblacion sigue exactamente igual :
gsub(".", "",criminesCcs$poblacion, fixed = TRUE)
## [1] "39291" "127708" "53473" "143048" "4831" "51029" "96162"
## [8] "134503" "51029" "56373" "80188" "122189" "43191" "4084"
## [15] "36269" "93076" "99208" "105123" "35204" "76721"
Este es el procedimiento para eliminar los puntos, pero dado que no hemos guardado el proceso, nuestro marco de datos no incorpora esas transformaciones:
criminesCcs$poblacion
## [1] 39291 127708 53473 143048 4831 51029 96162 134503 51029 56373
## [11] 80188 122189 43191 4084 36269 93076 99208 105123 35204 76721
Para que haya un cambio, debemos guardar la variable, bien sobre escribiéndola, o creando una nueva. Vamos a sobre escribirla
criminesCcs$poblacion<-gsub(".", "",criminesCcs$poblacion, fixed = TRUE)
Verifiquemos
criminesCcs$poblacion
## [1] "39291" "127708" "53473" "143048" "4831" "51029" "96162"
## [8] "134503" "51029" "56373" "80188" "122189" "43191" "4084"
## [15] "36269" "93076" "99208" "105123" "35204" "76721"
Cuando en R los números aparecen entre comillas, quiere decir que R los está considerando como caracteres/factores y no como número. Eso lo solucionamos de la siguientes forma:
criminesCcs$poblacion <-as.numeric(criminesCcs$poblacion)
# verificamos el tipo de dato
criminesCcs$poblacion
## [1] 39291 127708 53473 143048 4831 51029 96162 134503 51029 56373
## [11] 80188 122189 43191 4084 36269 93076 99208 105123 35204 76721
# primero seis casos
head(criminesCcs$poblacion)
## [1] 39291 127708 53473 143048 4831 51029
Veamos ahora la structura de este marco de datos:
str(criminesCcs)
## 'data.frame': 20 obs. of 13 variables:
## $ parroquia : chr "altagracia" "antimano" "candelaria" "san bernardino" ...
## $ poblacion : num 39291 127708 53473 143048 4831 ...
## $ homicidios: int 19 172 12 18 70 31 109 169 61 22 ...
## $ personales: int 85 246 86 49 291 107 273 298 132 77 ...
## $ violfam : int 0 211 9 6 281 21 78 217 90 18 ...
## $ cpersonas : int 12 53 5 15 37 26 48 47 35 15 ...
## $ hurto : int 125 223 290 148 202 97 707 200 126 282 ...
## $ hurtoauto : int 68 106 179 148 193 71 946 231 132 865 ...
## $ robo : int 121 298 249 131 232 81 755 238 209 271 ...
## $ rob.auto : int 36 157 87 123 310 56 665 198 244 609 ...
## $ estafa : int 86 27 188 81 35 12 406 62 39 126 ...
## $ violación : int 3 27 5 1 24 10 20 15 10 4 ...
## $ desvalij : int 6 38 17 7 21 12 46 6 17 24 ...
La variable “parroquia” aparece como una variable ordinal, sin embargo es una variable categórica. Solucionamos ese problema
criminesCcs$parroquia <-as.character(criminesCcs$parroquia)
# Verificamos
str(criminesCcs)
## 'data.frame': 20 obs. of 13 variables:
## $ parroquia : chr "altagracia" "antimano" "candelaria" "san bernardino" ...
## $ poblacion : num 39291 127708 53473 143048 4831 ...
## $ homicidios: int 19 172 12 18 70 31 109 169 61 22 ...
## $ personales: int 85 246 86 49 291 107 273 298 132 77 ...
## $ violfam : int 0 211 9 6 281 21 78 217 90 18 ...
## $ cpersonas : int 12 53 5 15 37 26 48 47 35 15 ...
## $ hurto : int 125 223 290 148 202 97 707 200 126 282 ...
## $ hurtoauto : int 68 106 179 148 193 71 946 231 132 865 ...
## $ robo : int 121 298 249 131 232 81 755 238 209 271 ...
## $ rob.auto : int 36 157 87 123 310 56 665 198 244 609 ...
## $ estafa : int 86 27 188 81 35 12 406 62 39 126 ...
## $ violación : int 3 27 5 1 24 10 20 15 10 4 ...
## $ desvalij : int 6 38 17 7 21 12 46 6 17 24 ...
Tengo ese marco de datos limpio. Pero como en ocasiones los acentos en las palabras pueden crear problemas en algunas visualizaciones, mejor eliminamos los acentos
# cambio la i acentuada
criminesCcs$parroquia<-gsub("í","i" ,
criminesCcs$parroquia )
# cambio la e acentuada
criminesCcs$parroquia<-gsub("é","e" ,
criminesCcs$parroquia )
# Verifico
criminesCcs$parroquia
## [1] "altagracia" "antimano" "candelaria" "san bernardino"
## [5] "caricuao" "el junquito" "el recreo" "el valle"
## [9] "coche" "san pedro" "la pastora" "la vega"
## [13] "macarao" "san agustin" "san jose" "san juan"
## [17] "el paraiso" "santa rosalia" "sucre" "23 de enero"
El mismo procedimiento se sigue para el caso de variables.
Antes de construir indicadores y en general, antes de iniciar cualquier análisis, es necesario verificar que la data esté limpia y haga sentido. Si se lleva adelante un análisis con data no limpia, el resultado que se obtenga será cuestionable. Dicho en término harto coloquiales y el el argot venezolano: si la data está piche, el análisis resultante estará piche también.
Data limpia
Sabremos que nuestra data es limpia y, por tanto, es analizable si:
- Las columnas contienen nombre de variables y no valores
- Cada columna guarda una, y solo una variables
- Cada fila guarda uno, y solo un caso
- Cada tabla/marco/matriz de dato solo almacena un solo tipo de unidades de observación
- Un mismo tipo de unidad observacional se almacena en una tabla
Veamos algunos ejemplos.
La data que obtenemos del INE generalmente se ha creado en hoja de excel para ser presentadas, más que para ser directamente analizada. Por eso nos vamos a encontrar que en esas hojas en una columna hay dos y mas variables; o en las filas se almacenan dos o mas casos. También es posible que en esas hojas de cálculo, una misma unidad de observación se divida en varias tablas, o diversas unidades de información se presenten en una sola tabla. Por ejemplo, la tabla sobre la concentración anual de particulas suspendidas, la columna ciudad mezcla dos tipos de observaciones: ciudad y el punto de la ciudad; de igual forma, los nombres de las variables son números, es decir, valores, no variables. En este marco de datos en realidad tenemos tres variables: ciudad, con cuatro categorías; localización, una variable nominal; y año, con cinco categorías.
El marco de datos colegiosUniv :
require(knitr)
kable(colegiosuniv, row.names = FALSE)
lapso | Totalmat | matOficial | matPrivado | docenteOficial | docentePrivado | Totalegr | egrOficial | egrPrivado |
---|---|---|---|---|---|---|---|---|
1980 | 63713 | 49875.000 | 13838 | 5229 | 1408 | 4923 | 3919 | 1004 |
1981 | 71667 | 51225.000 | 20442 | 5307 | 1622 | 5313 | 4172 | 1141 |
1982 | 80479 | 58717.000 | 21762 | 5736 | 1720 | 8430 | 6145 | 2285 |
1983 | 97059 | 72267.000 | 24792 | 5798 | 2045 | 9233 | 7322 | 1911 |
1984 | 97752 | 69657.000 | 28095 | 5830 | 2575 | 9336 | 6717 | 2619 |
1985 | 117848 | 88200.000 | 29648 | 7792 | 2742 | 9473 | 6579 | 2894 |
1986 | 127538 | 92072.000 | 35466 | 7539 | 3181 | 10676 | 6384 | 4292 |
1987 | 141860 | 95219.000 | 46641 | 9169 | 3800 | 11277 | 6594 | 4683 |
1988 | 172562 | 106527.000 | 66035 | 9670 | 4823 | 12383 | 6345 | 6038 |
1989 | 147093 | 58700.000 | 88393 | 5298 | 5791 | 13774 | 5773 | 8001 |
1990 | 161998 | 60165.000 | 101833 | 5371 | 6131 | 17597 | 6352 | 11245 |
1991 | 161086 | 55905.000 | 105181 | 4889 | 6386 | 20379 | 6280 | 14099 |
1992 | 174142 | 58449.000 | 115693 | 6263 | 7752 | 22338 | 7340 | 14998 |
1993 | 211736 | 63859.000 | 147877 | 5814 | 8493 | 25901 | 7197 | 18704 |
1994 | 215439 | 63175.000 | 152264 | 5514 | 9705 | 25782 | 6570 | 19212 |
1995 | 214488 | 68624.000 | 145864 | 5839 | 8589 | 28057 | 7300 | 20757 |
1996 | 235657 | 73613.000 | 162044 | 5667 | 10467 | 30887 | 7230 | 23657 |
1997 | 270691 | 73602.000 | 197089 | 6676 | 14288 | 30932 | 7943 | 22989 |
1998 | 256949 | 72779.000 | 184170 | 5748 | 12447 | 29882 | 8030 | 21852 |
1999 | 261244 | 78561.000 | 182683 | 6114 | 14104 | 32812 | 9518 | 23294 |
2000 | 292788 | 79903.000 | 212885 | 5762 | 13836 | 35282 | 7983 | 27299 |
2001 | 376894 | 122239.000 | 254655 | 8096 | 16174 | 48236 | 12016 | 36220 |
2002 | 400240 | 120.167 | 280073 | 10824 | 18320 | 51029 | 12749 | 38280 |
2003 | 396605 | 135790.000 | 260815 | 8850 | 15054 | 51789 | 15779 | 36010 |
Hay cuatro variables: lapso, personal docente, matrícula y egreso. Los totales no hacen falta porque se pueden recontruir fácilmente. La matrícula tiene dos categorías: oficiales, y privadas. Vale lo mismo para egresos y personal docente.
Iremos limpiando progresivamente en la medida en que la necesitemos.
Elaboración de indicadores. Aplicación
Ejemplo 1. Instituciones de educación superior en Venezuela
Vamos a elaborar e interpretar algunos indicadores en el marco del diagnóstico. Tengo algunas matrices de datos relacionadas con educación superior, obtenidas en el año 2005, de la sección Estadística la OPSU. Entre los indicadores de insumo de la educación y que pueden obtenerse de nuestra data sobre la educación superior, tenemos:
- Número de profesores
- Número de matriculados
- Número de instituciones
Exploro la data:
head(esCantidad2)
## Anios Total Oficial Privada
## 1 1980 74 49 25
## 2 1981 78 51 27
## 3 1982 83 54 29
## 4 1983 90 56 34
## 5 1984 90 56 34
## 6 1985 91 57 34
dim(esCantidad2)
## [1] 26 4
head(matricula)
## lapso matUnivTotal ioesMat X ipesMat
## 1 1980 307133 267541 NA 39592
## 2 1981 331115 282430 NA 48685
## 3 1982 349766 296334 NA 53432
## 4 1983 379218 315467 NA 63751
## 5 1984 383537 312617 NA 70920
## 6 1985 438908 362804 NA 76104
dim(matricula)
## [1] 25 5
head(egresados)
## lapso Total Oficial Privado
## 1 1980 15819 12973 2846
## 2 1981 18261 15200 3061
## 3 1982 20120 16571 3549
## 4 1983 25212 20719 4493
## 5 1984 26625 21484 5141
## 6 1985 28406 22491 5941
Creo un marco de dato con la información del total de instituciones, el total de la matricula y el total de los egresados. La matriz de datos sobre la cantidad de instituciones de educación superior tiene un caso más que las matrices de egresados y de matriculados. Verifico usando la función sapply(): Le estamos diciendo a R que pase por cada una de las columnas(sapply) de la matriz de dato y le aplique a cada una la función range. Esto es para obtener los valores máximos y mínimos de cada columna.
sapply(esCantidad2, range)
## Anios Total Oficial Privada
## [1,] 1980 74 49 25
## [2,] 2005 169 73 96
sapply(matricula, range)
## lapso matUnivTotal ioesMat X ipesMat
## [1,] 1980 307133 267541 NA 39592
## [2,] 2004 1074350 589523 NA 447045
sapply(egresados, range)
## lapso Total Oficial Privado
## [1,] "1980" "15819" "12973" "2846"
## [2,] "2004 (E)" "112722" "59106" "57593"
sapply(doscentes, range)
## lapso Total Oficial Privado
## [1,] 1980 28052 24324 2892
## [2,] 2004 82123 51011 31112
Observamos que la matriz de datos de matrícula tiene una columna vacia, x. Adicionalmente, los valores de la matriz de datos egresados parecen ser todos tipo caracter. Además, estos dos últimos marcos de datos llegan hasta el años 2004.
Le hemos pedido a R que nos cree un marco de datos al que debe llamar educacionInsumos,
Lo primero que haremos es quedarnos con sólo 25 casos del marco de datos esCantidad2. Luego crearé un nuevo marco de datos con las variables que me interesan de matricula y egresados
educacionInsumos <-data.frame(lapso= esCantidad2[1:25,1],
instituciones = esCantidad2[1:25,2],
matricula = matricula[,2],
egresados = egresados[,2],
docentes = doscentes[,2])
head(educacionInsumos)
## lapso instituciones matricula egresados docentes
## 1 1980 74 307133 15819 28052
## 2 1981 78 331115 18261 28567
## 3 1982 83 349766 20120 29160
## 4 1983 90 379218 25212 29055
## 5 1984 90 383537 26625 29196
## 6 1985 91 438908 28406 30908
Las variables de este marco de datos serán:
- las observaciones 1 al 25 de la variable 1, del marco de datos esCantidad2
- las observaciones 1 al 25 de la variables 2, del marco de datos esCantidad2
- la segunda variable del marco matricula
- la segunda variable del marco egresados
- la segunda variable del marco __doscentes_
Podemos crear ahora varios indicadores para analizar la situción de la educación superior en el lapso estudiado:
- la matricula promedio,
- los egresados promedio,
- la variación en cada variable,
- la tasa egresado por matriculado (indicador de producto),
- Alumnos por docente, (indicador de proceso)
Observe que hemos empleado otras de las formas de operar de R para crear marcos de datos. Hemos usado la función with(). Esta función indica primero el nombre del marco de datos y luego el procedimiento que R debe ejecutar. Note que usando esta función, las variables se usand directamente, sin necesidad de anteponer el signo de dólar, o de indicar filas y columnas. Esto es así porque ya se le está diciendo a R dónde debe buscar y qué buscar.
matriculaPromedio <-with(educacionInsumos, round(matricula/instituciones),2)
egresadoPromedio <- with(educacionInsumos, round(egresados/instituciones),2)
varInstuciones <-diff(educacionInsumos$instituciones)/educacionInsumos$instituciones[1:24]*100
varMa<-diff(educacionInsumos$matricula)/educacionInsumos$matricula[1:24]*100
varEgreso <-diff(educacionInsumos$egresados)/educacionInsumos$egresados[1:24]*100
varDocentes <-diff(educacionInsumos$docentes)/educacionInsumos$docentes[1:24]*100
egresadoMatriculado <-round(educacionInsumos$egresados/educacionInsumos$matricula *1000)
alumnosDocentes <-round(educacionInsumos$matricula/educacionInsumos$docentes,2)
La función diff() nos ayuda a hacer la resta del numerador con facilidad.
Para crear la tasa de variación hemos empleado la función diff() de R. Esta función nos permite obtener la diferencia entre los elementos de un vector de datos, retrasando en uno cada elemento. Recordemos que la fórmula para la tasa de variación es:
\[variacion\ =\ \frac{\left(fecha2-fecha1\right)}{fechar1}\cdot100\]
# el vector de fechas original es
esCantidad2$Total
## [1] 74 78 83 90 90 91 93 96 96 103 106 108 110 112 112 112 117
## [18] 130 140 146 146 150 158 163 168 169
#debemos restar cada vez:
78-74; 83-78; 90-91 ;169-169
## [1] 4
## [1] 5
## [1] -1
## [1] 0
# la funcion diff() hace esa operacion
diff(esCantidad2$Total)
## [1] 4 5 7 0 1 2 3 0 7 3 2 2 2 0 0 5 13 10 6 0 4 8 5
## [24] 5 1
Con la instrucción par(mfrow=c(2,2)) le estamos diciendo a R que nos divida el dispositivo gráfico en 2 filas y dos columnas. Es decir, en 4 partes. De esta forma podremos obtener, en un mismo espacio, cuatro gráficos. Este procedimiento facilita hacer comparaciones. Si quisiéramos, por ejemplo, crear 6 gráfico, en dos filas y tres columnas, la instrucción sería: par(mfrow=c(2,3))
Visualización e interpretaciones:
par(mfrow=c(2,2))
plot(matriculaPromedio~educacionInsumos$lapso, type="l")
plot(egresadoPromedio~educacionInsumos$lapso, type="l")
plot(egresadoMatriculado~educacionInsumos$lapso, type="l")
plot(alumnosDocentes~educacionInsumos$lapso, type="l")
La matrícula promedio experimentó al menos cuatro picos entre 1984-1985, en 1986-1987, en 1991-1994, en 1998-2002. Cae entre 1985 y 1986; 1988-1992, y entre 1995-1998. Esta última caída es la más pronunciado de todo el perido, y, a la vez, es seguida por la recuperación más grande de la serie analizada. Las caídas en la matrícula de educación superior parece rlacionarse con momentos difíciles en la vida del país: 1989, y en el lapso 1996-1998.
Si los egresados, por el contrario, tendieron a aumentar con el paso de los años, salvo en el periodo 93-98, época en la que parece disminuir el número, hasta ubicarse en niveles similares o inferiores a los años finales de la década del 80. En el 99 el número de egresado se incremeta sustancialmente, y parecían empezar un nuevo nivel de descenso.
Al graficar la relación entre egresados y matriculados, a finales de los 80 y principio de los 90 se produce un incremento en el número de graduados por matriculado. Aproximadamente en el 1992 esta relación empieza a decaer y retrocede a niveles similares a los de finales de los 80. Se produce una recuperación entre 1995 y aproximadamente el 2002, para empezar nuevamente a retroceder.
La relación entre el número de profesores y el número de alumnos nos refuerza lo que veíamos en el párrafo anterior. En general hay pocos alumnos por profesor. El número cae en el 86, el 89, y el 96, y fluctúa entre altas y bajas a partir del año 98.
la matrícula promedio en las instituciones de educación superior ha tendido a ser creciente, con fuertes retrocesos en algunos momenos. Los estudiantes que han estado en el sistema han tendido a culminar sus carreras, si bien en los noventas, en los primeros cinco años, pareció disminuir la tendencia. En general, el producto obtenido, egresados, estuvo muy por debajo del ingreso. No se cuenta con otros elementos relacionados con el proceso y con los propios insumos para profundizar el análisis.
Las tasas de variación nos permitirán observar mejor los ciclos de crecimiento y decrecimiento en las variables analizadas:
par(mfrow=c(2,2))
plot(varInstuciones~educacionInsumos$lapso[2:25], type="l")
plot(varMa~educacionInsumos$lapso[2:25], type="l")
plot(varEgreso~educacionInsumos$lapso[2:25], type="l")
plot(varDocentes~educacionInsumos$lapso[2:25], type="l")
A principio de los 80 hay un crecimiento grande en las institucioness de educación superior. Este número retrocede con alguna recuperación entre el 85 y principio de los 90. En el 91 y hasta el 95 se produce un decrecimiento grande en el número de instituciones yluego salta entre entre el 95 y el 96, momento en el que el crecimiento alcanza su mayor nivel, incluso superior a la década del 80. Se produce una nueva caída, y otra recuperación, modesta, entre el 2000 y el 2002 aproximadamente.
Si bien la matrícula promedio, con todo y los de decrecimiento, tuvo una tendencia creciente, cuando analizamos la tasa de variación observamos que solo ha habido dos grandes momentos para el crecimiento de la matricula en la educación superior en el 85 y luego entre el 99 y el 2000. Hay, ciertamente, crecimientos en otros momentos del lapso analizado, pero no tienen la misma fuerza de esos dos años. Con respecto a los egresados, se observan tres grandes picos: en el 84, en el 90 y en el año 2000.
Finalmente, el número de alumnos por profesores nos muestra una historia curiosa. El aumento de la matrícula no necesariamente parece coincidir con el aumento en el número de docentes, salvo en el periodo 1999-2000. No pareciera haber una correpondencia entre el personal docente y el número de alumnos que ingresan al sistema. No poseemos suficiente data para explorar a fondo esto que parece ser una particularidad. Si tal cosa se confirmara, implicaría que hay un divorcio en la planificación de los insumos en estas dos áreas.
Podríamos cruzar otra información, por ejemplo el precio del petróleo, su variación, y la variación en esos insumos de la educación superior:
head(preciosPetroleo)
## anio precio
## 1 1920 2.69
## 2 1921 1.23
## 3 1922 1.31
## 4 1923 1.46
## 5 1924 1.74
## 6 1925 6.10
tail(preciosPetroleo)
## anio precio
## 87 2006 61.08
## 88 2007 69.08
## 89 2008 94.45
## 90 2009 61.06
## 91 2010 71.97
## 92 2011 101.06
La data comprende los años 1920 a 2011. Extraemos los años 1980 a 2004, calculamos la variación y graficamos:
petroleo <-preciosPetroleo[61:85,]
varPetroleo <-round(diff(petroleo$precio)/petroleo$anio[1:24]*100,2)
En esta ocasión graficaremos la data usando dos ejes. Si empleamos uno solo, la variación del precio del petróleo al tener un rango mucho menor que la variación de, por ejemplo, la matrícula, aparecería en el gráfico como una línea plana.
Nota: primero creamos el primer gráfico. Luego le decimos a R que imponga un dispositivo de graficación nuevo sobre el anterior. Creamos el segungo gráfico, pero le dicimos a R que no genere el eje x: xact, ni el eje y: yaxt seguidos de n entre comillas, lo que significana, nada. Luego, le indicamos a R que genere un eje en la posición 4 (es decir, en el lado derecho). R automáticamente asigna los valores correspondientes a la variable del segundo eje a este eje recién creado. Le asignamos el título al eje, indicando de nuevo que debe aparecer en el lado derecho, en la línea 3. Finalmente creamos la leyenda para todo el gráfico.
plot(petroleo$anio[1:24], varInstuciones, type="l", col="darkblue")
par(new=TRUE)
plot(petroleo$anio[1:24], varPetroleo, col="darkred", type="l",
xaxt="n",yaxt="n",xlab="",ylab="")
axis(4)
mtext("precio petroleo",side=4,line=3)
legend("topleft",col=c("darkblue","darkred"),lty=1,legend=c("instituciones","petroleo"))
Petroleo y matricula.
plot(petroleo$anio[1:24], varMa, type="l", col="darkgreen")
par(new=TRUE)
plot(petroleo$anio[1:24], varPetroleo, col="darkred", type="l",
xaxt="n",yaxt="n",xlab="",ylab="")
axis(4)
mtext("precio petroleo",side=4,line=3)
legend("topleft",col=c("darkgreen","darkred"),lty=1,legend=c("matricula","petroleo"))
Petroleo y egresos.
plot(petroleo$anio[1:24], varEgreso, type="l", col="green4")
par(new=TRUE)
plot(petroleo$anio[1:24], varPetroleo, col="darkred", type="l",
xaxt="n",yaxt="n",xlab="",ylab="")
axis(4)
mtext("precio petroleo",side=4,line=3)
legend("topleft",col=c("green4","darkred"),lty=1,legend=c("egreso","petroleo"))
Petroleo y numero de docentes.
plot(petroleo$anio[1:24], varDocentes, type="l", col="blue4")
par(new=TRUE)
plot(petroleo$anio[1:24], varPetroleo, col="darkred", type="l",
xaxt="n",yaxt="n",xlab="",ylab="")
axis(4)
mtext("precio petroleo",side=4,line=3)
legend("topleft",col=c("blue4","darkred"),lty=1,legend=c("docente","petroleo"))
De las cuatro variables, el número de docentes parece tener mayor relaciónn con el precio del petróleo. El número de egresos pareciera aumentar en épocas en las que baja el petróleo. En tanto que el número de instituciones no pareciera guardar relación. Finalmente, a partir de finales de los 90 pareciera existir relación entre el aumento en los precios del petróleo y la matrícula.
Al visualizar esas relaciones con un gráficos de dispersión y aplicar los coeficientes de correlación respectivos, observamos que la relación Es necesario recordar que relación no implica causa. No tenemos, en primer lugar, data suficiente para mostrar que una variable causa el incremento o decrecimiento de la otra, y, además, si contaramos con esa información, tendríamos que hacer pruebas de hipótesis, luego de haber eliminado otras variables intervinientes que podrían estar generando el resultado. Pero este ejercicio nos ayuda a formularnos preguntas cuyas respuestas nos serían de gran valor para nuestro diagnóstico entre las instituciones y el precio del petróleo es casi inexistente, pero aún así pareciera es negativa. Las instituciones parecieran disminuir cuando se incrementa el precio del petróleo. La relación entre las otras variables y el precio del petróleo parece ser moderada y directa, particularmente en el caso del número de docentes
cor(varPetroleo,varInstuciones)
## [1] -0.09881681
cor(varPetroleo,varMa)
## [1] 0.2454577
cor(varPetroleo, varEgreso)
## [1] 0.2162753
cor(varPetroleo, varDocentes)
## [1] 0.4105701
Relacion petroleo e algunos insumos de educacion.
par(mfrow=c(2,2))
plot(varPetroleo,varInstuciones, pch=19, col="darkblue")
plot(varPetroleo, varMa, pch=19, col="darkgreen")
plot(varPetroleo, varEgreso, pch=19, col="green4")
plot(varPetroleo,varDocentes, pch=19, col="blue2")
Ejemplo 2. Valor real de una magnitud
Dentro de nuestros análisis, el petróleo es fundamental. Es el insumo fundamental que mueve a este gran sistema llamado Venezuela. Debemos, entonces observar el comportamiento de este insumo, porque, dada la forma en que se ha estructurado la economía Venezolana, lo que ocurra con el petróleo, le ocurre al país.
Tenemos un marco de datos con información sobre la evolución de los precios del petróleo entre 1920 y agosto de 2016. Lo hemos creado a partir información obtenida del Ministerio de Petróleo de Venezuela, el Boletín Estadístico de la OPEP, 2016, y Asdrúbal Baptista (2003Baptista, Asdrubal. 2003. Bases Cuantitativas de La Economía Venezolana 1830-2002. Fundación Empresas Polar.). Tenemos que hacer algunas modificaciones:
Note que hemos unido los marcos de dato pPetroleo y preciosPetroleo. le hemos dicho a R que los una por las filas rbind(). R, entonces tomó el contenido del segundo marco de datos y lo empató
a la parte final del primer marcos de datos.
sapply(preciosPetroleo, range)
## anio precio
## [1,] 1920 0.61
## [2,] 2011 101.06
Dado que a data está hasta el año 2011, vamos a actualizar con los precios del petróleo venezolano 2012-2016
# precios del petroleo 2012-2016
pPetroleo <- data.frame(anio=c(2012, 2013, 2014, 2015, 2016),
precio = c(100.6, 96.66, 86.88,
41.11, 33.22))
# inspecciono
pPetroleo
## anio precio
## 1 2012 100.60
## 2 2013 96.66
## 3 2014 86.88
## 4 2015 41.11
## 5 2016 33.22
#uno los dos marcos de datos por las filas
petroleoPrecios <-rbind(preciosPetroleo, pPetroleo)
# inspecciono
head(petroleoPrecios)
## anio precio
## 1 1920 2.69
## 2 1921 1.23
## 3 1922 1.31
## 4 1923 1.46
## 5 1924 1.74
## 6 1925 6.10
tail(petroleoPrecios)
## anio precio
## 92 2011 101.06
## 93 2012 100.60
## 94 2013 96.66
## 95 2014 86.88
## 96 2015 41.11
## 97 2016 33.22
Si visualizamos la data encontramos que Los precios del petróleo parecen haberse incrementado particularmente en los años setenta, con algunas fluctuaciones en los 80 y 90, para luego dispararse a comienzos del año 2000. Se hunde aproximadamente en 2008, para dispararse luego en el 2012, aproximadamente. Desde ese momento, el precio del petróleo experimenta la mayor caída de todo el lapso analizado.
Evolucion de los precios del petroleo venezolano.
plot(petroleoPrecios, type="l", xlab="Años",
ylab="barril/US. dolar")
Para calcular el valor real de una cantidad dada, se toma en cuenta el índice de precios al consumidor. Esto es, el incremento generalizado de los precios en un periodo dado. Si usted produce 100 pares de zapatos, en 2014 y vende la unidad en 2 bolívares, el ingreso es de 200 bolívares. Si usted produce los mismo 100 pares de zapatos en el año 2015 y los vende en 3 bolívares, el ingreso que obtiene es de 300 bolívares. Pareciera que usted ganó 100 bolívares de un año a otro. Sin embargo, eso no es cierto. Estos cien bolívares adicionales se deben al incremento de los precios, no de la producción. En realidad la variación en su producción es 0. Los índices de precios al consumidor, cuya variación conocemos con el nombre de inflación, nos ayudan a determinar si las variaciones se deben a un incremento real o a un efecto de los precios.
Esta gráfica, sin embargo, sería engañosa. Estamos evaluando la evolución de los precios del barril del petróleo partiendo del supuesto de que un dólar del año 2016 vale lo mismo, se puede adquirir lo mismo, que un dólar del año 1920. Eso no es cierto. En 1920, con un dólar se podía comprar muchísimo más servicios y productos que lo que se puede adquirir con esa misma cantidad en 2016. Es necesario, por consiguiente, reflejar la pérdida de valor de la moneda antes evaluar si en verdad el precio del barril de petróleo venezolano en el perido 2000-2012 ha sido el más alto de toda la historia. Es decir, la gráfica anterior refleja los precios nominales del barril de petróleo venezolano desde 1920 a la fecha. Necesitamos calcular el valor real del precio del barril.
Los Bancos Centrales de cada país, o las instituciones que hagan las veces, promedian el valor de una serie de bienes en las principales ciudades de cada país, en un año específico. El año base. Posteriormente, actualizan ese valor. Las variaciones que se obtienen de un año específico, con respecto al año base nos permiten calcular la inflación.
Dado que el valor del petróleo se expresa en dólares de Estados Unidos, usaremos el índice de precios al consumidor de ese país. El año base de ese índice es 1984. Por tanto, los resultados se leen como dólares del año 1984.
Tenemos la información del índice de precios al consumidor de Estados unidos desde 1913 a la fecha, 2016. Vamos a seleccionar la información que nos interesa, 1920-2016. Para calcular 2016, tomaremos el índice promedio de los meses disponibles
head(uscpiR)
## Year Jan Feb Mar Apr May June July Aug Sep Oct Nov Dec
## 1 1913 9.8 9.8 9.8 9.8 9.7 9.8 9.9 9.9 10.0 10.0 10.1 10.0
## 2 1914 10.0 9.9 9.9 9.8 9.9 9.9 10.0 10.2 10.2 10.1 10.2 10.1
## 3 1915 10.1 10.0 9.9 10.0 10.1 10.1 10.1 10.1 10.1 10.2 10.3 10.3
## 4 1916 10.4 10.4 10.5 10.6 10.7 10.8 10.8 10.9 11.1 11.3 11.5 11.6
## 5 1917 11.7 12.0 12.0 12.6 12.8 13.0 12.8 13.0 13.3 13.5 13.5 13.7
## 6 1918 14.0 14.1 14.0 14.2 14.5 14.7 15.1 15.4 15.7 16.0 16.3 16.5
## AnnualAvg Dec.Dec Avg.Avg
## 1 9.9
## 2 10.0 1.0 1.0
## 3 10.1 2.0 1.0
## 4 10.9 12.6 7.9
## 5 12.8 18.1 17.4
## 6 15.1 20.4 18.0
tail(uscpiR)
## Year Jan Feb Mar Apr May June July Aug
## 99 2011 220.223 221.309 223.467 224.906 225.964 225.722 225.922 226.545
## 100 2012 226.655 227.663 229.392 230.085 229.815 229.478 229.104 230.379
## 101 2013 230.280 232.166 232.773 232.531 232.945 233.504 233.596 233.877
## 102 2014 233.916 234.781 236.293 237.072 237.900 238.343 238.250 237.852
## 103 2015 233.707 234.722 236.119 236.599 237.805 238.638 238.654 238.316
## 104 2016 236.916 237.111 238.132 239.261 240.236 241.038 240.647 240.853
## Sep Oct Nov Dec AnnualAvg Dec.Dec Avg.Avg
## 99 226.889 226.421 226.230 225.672 224.939 3.0 3.2
## 100 231.407 231.317 230.221 229.601 229.594 1.7 2.1
## 101 234.149 233.546 233.069 233.049 232.957 1.5 1.5
## 102 238.031 237.433 236.151 234.812 236.736 0.8 1.6
## 103 237.945 237.838 237.336 236.525 237.017 0.7 0.1
## 104 NA NA NA NA NA
Hacemos alguna modificaciones:
Hemos creado nuestro marco de datos con el índice de precios al consumidor de Estados Unidos desde 1920 a 2016.
# inspecciono las variables del marco de datos
names(uscpiR)
## [1] "Year" "Jan" "Feb" "Mar" "Apr"
## [6] "May" "June" "July" "Aug" "Sep"
## [11] "Oct" "Nov" "Dec" "AnnualAvg" "Dec.Dec"
## [16] "Avg.Avg"
# verifico que meses del año 2016 estan disponibles en el marco
uscpiR[104,]
## Year Jan Feb Mar Apr May June July Aug
## 104 2016 236.916 237.111 238.132 239.261 240.236 241.038 240.647 240.853
## Sep Oct Nov Dec AnnualAvg Dec.Dec Avg.Avg
## 104 NA NA NA NA NA
# creo el marco de datos desde 1920 hasta 2015
ipcUs<-uscpiR[8:103,c(1,14)]
#inspecciono
head(ipcUs)
## Year AnnualAvg
## 8 1920 20.0
## 9 1921 17.9
## 10 1922 16.8
## 11 1923 17.1
## 12 1924 17.1
## 13 1925 17.5
tail(ipcUs)
## Year AnnualAvg
## 98 2010 218.056
## 99 2011 224.939
## 100 2012 229.594
## 101 2013 232.957
## 102 2014 236.736
## 103 2015 237.017
# promedio 2016 y lo agrego al marco de datos
a2016<-data.frame(Year=2016, AnnualAvg=rowMeans(uscpiR[104,2:9]))
# uno los dos marcos
ipcUs<-rbind(ipcUs, a2016)
tail(ipcUs)
## Year AnnualAvg
## 99 2011 224.9390
## 100 2012 229.5940
## 101 2013 232.9570
## 102 2014 236.7360
## 103 2015 237.0170
## 104 2016 239.2742
Con esta información podemos calcular y visualizar la evolución de la inflación en Estados Unidos hasta nuestros día.
Evolucion de la inflacion en Estados Unidos, 1913-2016 (1984=100).
inflacionUsa<-diff(ipcUs$AnnualAvg)/ipcUs$AnnualAvg[1:96]
plot(inflacionUsa~ipcUs$Year[2:97], type="l")
Calculemos el precio real del barril de petróleo
# creamos una nueva variable en el marco de datos petroleoPrecios
petroleoPrecios$precioReal<-round(petroleoPrecios$precio/ipcUs$AnnualAvg*100,2)
tail(petroleoPrecios)
## anio precio precioReal
## 92 2011 101.06 44.93
## 93 2012 100.60 43.82
## 94 2013 96.66 41.49
## 95 2014 86.88 36.70
## 96 2015 41.11 17.34
## 97 2016 33.22 13.88
Veamos ahora la evolución de los precios reales del barril del petróleo venezolano desde 1920 a la fecha y comparemos esta evolución con la de los precios nominales del barril
plot(petroleoPrecios$precioReal~petroleoPrecios$anio,
type="l",
main= "Evolución del barril de petróleo venezolano.\n1984=100",
ylab="Precio real (Us.$" ,
xlab="Años")
plot(petroleoPrecios$precio~petroleoPrecios$anio,
type="l",
main= "Evolución del barril de petróleo venezolano.\n Precios nominales",
ylab="Precio (Us.$" ,
xlab="Años")
Si tomamos en cuenta la evolución de los precios nominales, efectivamente los precios del petróleo más altos de la historia se han obtendio entre aproximadamente 2010 y 2012. Sin Embargo, cuando tomamos en cuenta el precio real, notamos que:
- En 1974 no se obtuvo el mayor precio histórico del petróleo. En 1925, aproximadamente, los precios reales del petróleo fueron mucho más altos.
- A principio de los años 30, el petróleo alcanzó un nuevo pico, no tan alto como a mediados de los 20, pero mucho más alto que en los periodos subsiguientes, únicamente superado por la subida en los años 70.
- A finales de los 70, el precio real del barril venezolano cae, pero se recupera de nuevo en los 80. Hacia el 82 el precio inicia un hundimiento sostenido, hasta alcanzar su nivel mas bajo a finales de los 90, épocase en la que el barril se ubica en un valor smilar al que se tuvo a principios de los años 60.
- a principios de la primera década del 2000 el petróleo venezolano recupera su valor real, hasta alcanzar el nivel más alto de precio en la historia del crudo venezolano, tanto en 2008 como en 2012. Estos dos picos tienen el mismo valor real. y desde el 2013 el valor real se ha hundido hasta colocar su precio a valores similares a los de los inicios de la primera década del año 2000.
- Las crisis políticas en Venezuela parecieran estar relacionadas con el valor real del petróleo. El final de los años 30 e inicios de los 40, con el trienio adeco y el golpe de estado; la década del 60 y los movimientos insurgentes. Los 90 y los dos intentos de golpe de estado.
Observemos ahora la variación real de los precios de este producto:
variacionreal<-diff(petroleoPrecios$precioReal)/petroleoPrecios$precioReal[1:96]
plot(variacionreal~petroleoPrecios$anio[2:97], type="l")
abline(h=0, col="darkred", lwd=2)
En términos de crecimiento real, el petróleo experimentó dos crecimientos espectaculares en la década del 20 y a principios del 30, tomando en cuenta, además, que esos crecimientos se produjeron luego de caídas fuertes en el valor del barril. Eso implica que hubo un chorro inmenso de dólares que ingresaron a las arcas del estado y pasaron al manejo discrecional de los grupos en el poder. El tercer chorro ingresa a finales de los 80. Desde entonces, el crecimiento real del valor del barril del petróleo no ha sido tan grande y se ha caracerizado por fluctuaciones permanentes.
No hay comentarios.:
Publicar un comentario