[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Re: [ABE-L]: Re: corroborando



Caro Elias,

excelentes ideias para exploração dos dados. Acho que precisamos fazer mais coisas assim para motivar e ensinar nossos alunos (de todos os níveis) que os dados já disponíveis permitem aprender muito sobre nosso país e sobre o mundo.

Saudações cordiais, e parabéns pela iniciativa.

Pedro.


Em 30 de agosto de 2013 15:46, Elias T Krainski <eliaskrainski@yahoo.com.br> escreveu:
Caro Prof. Pedro,

Realmente vivemos num mundo em temos muitos dados interessantes (publicos) a serem analisados. Esse e' apenas um deles. No portal da transparencia ha varios dados de despesas e receitas. E' possivel, por exemplo, saber quanto foi pago pelas ambulancias adquiridas para o municipio X.

Do site do DATASUS podemos ter quanto custou cada internacao. Do site do INEP podemos ter a resposta de cada participante do ENEM. E, e' claro, nao podemos esquecer os microdados das pesquisas do IBGE!

E podemos gerar dados tambem! Um colega nosso, por exemplo, monitora acessos a paginas de internet para avaliar popularidade. Outro colega nosso esta pensando em construir um indice de inflacao coletando estatisticas desse tipo de dados disponibilizadas num site que se baseia em dados brutos postados por usuarios.

Quanto aos comandos, eu havia postado-os ao final do e-mail. Seguem novamente abaixo com algumas alteracoes.

Alteracoes nos dados de professores:
 - Inclusao de outras areas
 - Consideracao de 'ATIVO_PERMANENTE' e 'DEDICACAO_EXCLUSIVA' para a geracao das tabelas

ALGO A MAIS (justamente por curiosidade):
Considerei a tabela de renda (de Julho de 2013) e notei que

 - o total da "REMUNERAÇÃO.BÁSICA.BRUTA..R.." nesse mes foi 4.163 bilhoes.
 - a presidente teve "REMUNERAÇÃO.BÁSICA.BRUTA..R.." = 26723.13
 - ha 11 servidores que receberam mais de 100 mil reais (executem os comandos e vejam os nomes)

Possibilidade:
  juncao da tabela de cadastro com a tabela de remuneracao para analisar dados de remuneracao. Porem e' preciso ter CUIDADO, pois ha pessoas com mais de um vinculo (aparecem mais de uma vez na tabela de cadastro) mas na tabela de renda, aparece em uma unica linha. Assim, precisaria entender melhor cada coluna (especificacao de varias fontes de remuneracao) para analisar renda com mais propriedade.

Abracos,
Elias

Anexo: comandos R para gerar tabela de docentes de alguns deptos e algumas curiosidade dos dados de renda.



dim(cad <- read.delim('20130630_Cadastro.csv'))

i.docentes <- grep('PROFESSOR DO MAGISTERIO SUPERIOR', cad$DESCRICAO_CARGO)
i.ativos <- which(cad$SITUACAO_VINCULO=='ATIVO PERMANENTE')
i.de <- which(cad$JORNADA_DE_TRABALHO=='DEDICACAO EXCLUSIVA')

dim(pms <- cad[intersect(intersect(i.docentes, i.ativos), i.de), ])

### Termos, tais como CONTABILIDADE e CONTABEIS devem ser somados!
depts <- list('ESTATISTICA', 'MATEMATICA', 'FISICA',
              'QUIMICA', 'COMPUTACAO', 'BIOLOGIA', 'PARASITOLOGIA',
              'ENGENHARIA', 'TECNOLOGIA', 'AGRONOMIA', 'AGRARIA',
              'MEDICINA', 'ENFERMAGEM', 'PSICOLOGIA',
              'DIREITO', 'SOCIOLOGIA', 'LETRAS', 'HISTORIA',
              'ADMINISTRACAO', 'CONTABILIDADE', 'CONTABEIS',
              'ECONOMIA', 'ECONOMICAS')
names(depts) <- depts

i.depts <- lapply(depts, grep, pms$UORG_LOTACAO)
### TOTAIS por departamentos
sapply(i.depts, length)

nivel.discret <- factor(substr(as.character(pms$NIVEL_CARGO),1,1))
(dpt.niveis <- t(sapply(i.depts, function(j)
                        table(nivel.discret[j]))))

### percentual por linha (curso)
round(100*prop.table(dpt.niveis, margin=1),2)
### percentual por coluna (nivel). primeiros 7:
round(100*prop.table(dpt.niveis[1:7,], margin=2),2)
### percentual por coluna (nivel). todos:
round(100*prop.table(dpt.niveis, margin=2),2)

### graficos
mosaicplot(t(dpt.niveis[1:7,]), las=1, col=rainbow(10))
mosaicplot(t(prop.table(dpt.niveis[1:7,], 1)),
           las=1, col=rainbow(10))
mosaicplot(t(prop.table(dpt.niveis[1:7,], 2)), las=1, col=rainbow(10))

### todos
mosaicplot(t(dpt.niveis), las=1, col=rainbow(10))
mosaicplot(t(prop.table(dpt.niveis, 1)), las=1, col=rainbow(10))
mosaicplot(t(prop.table(dpt.niveis, 2)), las=1, col=rainbow(10))

########################################################
#### REMUNERACAO
########################################################

dim(rem <- read.delim('20130630_Remuneracao.csv',
                      dec=',', fileEncod='latin1'))
sum(rem[,6])/1e6

rem[grep('ROUSSEFF',rem[,5]),]

summary(rem[,6]) ### sumario remuneracao basica bruta
hist(rem[,6]) ### histograma remuneracao basica bruta

### nao sei bem de que se trata as colunas (o que seria R e U?):
names(rem)[28:29]
summary(rem[,28]) ### sumario remuneracao APOS deducoes obrigatorias R
summary(rem[,29]) ### sumario remuneracao APOS deducoes obrigatorias U

hist(rem[,28]) ### histograma remuneracao APOS deducoes obrigatorias R
hist(rem[,29]) ### histograma remuneracao APOS deducoes obrigatorias U

### QUANTOS receberam mais que 100 mil????????
sum(rem[,28]>100000)
### QUEM recebeu mais que 100 mil????????
rem[rem[,28]>100000,5]

###############################################
### JUNCAO DE  AMBAS TABELAS
###############################################

### warning: HA PESSOAS COM MAIS DE UM VINCULO
###          E APARECEM DUPLICADAS NA TAB DE CADASTRO
table(duplicated(cad[,1])) ### ID
table(duplicated(cad[,2])) ### NOME
table(duplicated(cad[,3])) ### CPF (digitos do meio)
table(duplicated(paste(cad[,1], cad[,2]))) ### ID e NOME

### na tabela de remuneracoes, aparece uma vez
table(duplicated(rem[,3]))

###
dim(rem)
table(rem[,3]%in%cad[,1]) ### Todas Remuneracao estao em Cadastro

### A JUNCAO DAS TABELAS SERIA:
dim(join <- merge(cad, rem, by.x='Id_SERVIDOR_PORTAL',
                  by.y='ID_SERVIDOR_PORTAL', all.x=TRUE))
### Prorem renda fica invalido devido multiplos
###   registros em cadastro e renda fica duplicada
head(join)
### CUIDADO NAS ANALISES DA JUNCAO!!!!!





--
Pedro Luis do Nascimento Silva
IBGE - Escola Nacional de Ciências Estatísticas
Phone: +55 21 21424957