Vous êtes sur la page 1sur 10

Predizendo sexo a partir de nomes próprios com o genderBR Fernando Meireles Ciência Política.

pdf
Salvo no Dropbox • 28 de jul de 2018 23I02

About Research CV Teaching Software Data Blog Links

Predizendo sexo a partir de nomes próprios com o


genderBR
Com um exemplo de classi/cação de autores de mais de 200 mil teses
defendidas no Brasil

19 Apr 2018 por Fernando Meireles

! Facebook " Twitter + Google

Para quem trabalha com bases de dados públicas, não é incomum encontrar o seguinte
problema: ter disponível em alguma coluna o nome de várias pessoas, mas não a
informação sobre o sexo delas. Para lidar com esse problema, há alguns meses desenvolvi
um pacote para R, o genderBR, que oferece um método simples para resolvê-lo: usando
dados do Censo de 2010 do IBGE, ele inferie o sexo de uma pessoa a partir de seu nome
próprio (como descrito em maiores detalhes aqui). Comparado à tarefa manual de
classiXcar sexo a partir desses nomes, o método não só é inXnitamente mais rápido, mas
também evita erros de imputação, tornando replicável qualquer pesquisa que o use.

Apesar da utilidade do pacote para resolver esse problema, ele fazia isso com algumas
limitações. A principal delas é a de tempo gasto na tarefa, às vezes na casa de horas ou
dias. Basicamente, isso ocorre por causa da forma com que a principal função do pacote,
get_gender, faz predições: para cada nome solicitado, ela envia uma requisição ao serviço
online de nomes do IBGE (daqui para frente, API), recebe as informações necessárias e, com
base nelas, calcula a probabilidade desse nome pertencer a um a homem ou a uma mulher.
Como esse processo consome cerca de 0.1 segundos, as consequências são inevitáveis:
para 10 mil nomes, a função pode facilmente rodar por mais de 15 horas.

A partir da recém lançada versão do pacote, contudo, isso deixou de ser um problema.
Aproveitando que o IBGE divulgou a base de dados que alimenta a API do serviço de nomes,
agora o genderBR dispõe internamente dessas informações. EspeciXcamente, a função
get_gender ganhou um argumento opcional, internal, que permite escolher entre usar
os dados internos do pacote (internal = TRUE, que agora é o padrão) ou requisitar os
dados da API (internal = FALSE). Optando pelo primeiro, o processo de predizer nomes
consome poucos segundos – e isso mesmo em bases com milhares ou milhões de nomes
próprios.[1]

Como usar o genderBR

O primeiro passo para usar o genderBR é simples: com o R aberto, só é necessário executar
install.packages("genderBR") para instalá-lo. Feito isso, predizer sexo a partir de
nomes próprios é uma questão de chamar a função get_gender:

# Carrega o pacote
library(genderBR)

# Prediz o sexo de oito nomes


nomes <- c("Guilherme", "Maria", "Ana", "Arnaldo", "Martha", "Carlos", "Almir", "Cida")
get_gender(nomes)
## [1] "Male" "Female" "Female" "Male" "Female" "Male" "Male" "Female"

Mais útil que isso, é possível predizer o sexo de nomes contidos numa base de dados,
adicionando o resultado dessa predição numa nova variável. Exemplo:

base <- data.frame(nome = c("Ana Maria", "Roberto Silva", "Marcia Campos"),


idade = c(25, 42, 33),
grupo = c("A", "A", "B")
)

base$sexo <- get_gender(base$nome)

base

## nome idade grupo sexo


## 1 Ana Maria 25 A Female
## 2 Roberto Silva 42 A Male
## 3 Marcia Campos 33 B Female

Nos dois casos, as predições usam os dados internos ao pacote. Para desabilitar essa
opção, fazendo requisições diretamente à API do IBGE, basta declarar como falso o
argumento internal: get_gender(nomes, internal = FALSE). Como mostro na
sequência, entretanto, usar essa opção consome muito mais tempo.

O desempenho da nova versão do genderBR

Quão rápido é predizer o sexo usando os dados internos do pacote genderBR? A título de
ilustração, podemos comparar o tempo gasto para predizer o sexo daqueles 8 nomes do
primeiro exemplo usando a API do IBGE, i.e. internal = FALSE, e os dados internos do
pacote, internal = TRUE. Repeti essa operação 100 vezes com cada método, registrando
o tempo gasto para concluir a predição em cada uma. Resultado: com os dados internos, o
pacote leva cerca de 0.06 segundos para concluir a predição dos 8 nomes, em média; já
usando a API do IBGE, o tempo necessário gira em torno de 1.4 segundos. Em outras
palavras, o novo método adicionado ao pacote é cerca de 23 vezes mais rápido nesse
exemplo.

Na verdade, usar os dados internos é ainda mais rápido se levarmos em conta as pausas
entre requisições, aplicadas pela função get_gender quando o número de nomes a serem
consultados na API do IBGE excede 100. Além disso, os ganhos em escala do método
interno são imensos porque ele consome quase o mesmo tempo para predizer o sexo de
100, 1000, ou 10000 nomes. Isso, de novo, não acontece ao usar a opção internal =
FALSE para extrair dados da API do IBGE.

Em resumo, predizer sexo a partir de nomes próprios com o genderBR Xcou extremamente
mais rápido.

Exemplo: sexo de autores de teses de Doutorado no Brasil

Para exempliXcar os usos do pacote genderBR, classiXquei o sexo de autores(as) de todas


as 221990 teses de Doutorado defendidas no Brasil entre 1987 e 2016. Esses dados vêm do
Banco de Teses e Dissertações da Capes, disponíveis no novo portal de dados abertos da
instituição – onde também estão outros sobre a composição dos programas de pós-
graduação no país, ou sobre a produção acadêmica de doscentes e discentes, por exemplo.
O importante a notar é que a Capes disponibiliza apenas informações sobre instituição, área
de avaliação e nome dos autores das teses defendidas no período, mas não o sexo de quem
as defendeu.[2] É aí que entra o genderBR: usando os dados internos do pacote, predizer o
sexo para todos os nomes na base leva menos de 5 segundos. Com essa informação,
podemos criar um gráXco como esse.

O gráXco acima ilustra bem o trabalho do genderBR: ele classiXcou a imensa maioria dos
nomes como pertencendo a homens ou mulheres (96% do total). Ainda assim, como os
dados disponibilizados pelo IBGE incluem apenas nomes com mais de 20 ocorrências no
país, alguns na base da Capes, cerca de 3% deles, foram classiXcados como Desconhecido,
o que indica que não encontraram correspondência. Em outros casos, nomes classiXcados
podem ser tanto de homens quanto de mulheres – como Ariel, Darci, Noá e Elir, por exemplo
–, diXcultando a tarefa de atribuir sexo (os Unissex do gráXco). De qualquer forma, como é
possível ver, ambos os casos são residuais.

Voltando ao gráXco, dá para notar que mulheres defenderam cerca de metade das teses
registradas no banco da Capes no período. Entretanto, como o número de defesas era
pequeno até os anos 2000 – em 1987, por exemplo, apenas 939 teses defendidas foram
registradas, e mesmo em 2000 esse número ainda era de apenas 5344 –, acompanhar o
crescimento absoluto, ano a ano, dessa série diXculta detectar tendências. Por essa razão,
podemos focar apenas na percentagem de teses defendidas por mulheres, excluindo da
base pessoas com sexo classiXcado como Desconhecido ou Unissex.
A tendência geral, agora, é clara: com o passar do tempo, mulheres aumentaram sua
participação na defesa de teses no Brasil.

Defesas de tese por grandes áreas

O mesmo padrão, entretanto, certamente varia entre áreas: pode ser que mulheres
defendam mais teses em algumas grandes áreas da Capes, menos em outras. Como o
Banco de Teses contém variáveis indicando essas grandes áreas, veriXcar isso é
relativamente simples.
Por um lado, mulheres defendem mais teses no Brasil, ao menos nos últimos anos. Por
outro lado, é possível ver que essa participação é desigual entre grandes áreas da Capes:
mulheres defendem mais teses nas Ciências Biológicas, nas Humanas e nas Letras;
homens, entretanto, estão sobrerrepresentados nas áreas de Engenharia e Exatas. O gradual
aumento no número de mulheres defendendo teses não ocorreu nessas duas últimas.

Defesas de tese por área de avaliação

Enquanto que classiXcar o sexo de autores(as) de teses por grande área revela um cenário
detalhado da participação de mulheres, é possível ir além com os dados da Capes. Em
especial, podemos usar a classiXcação por área de avaliação, que é usada para classiXcar
os programas de pós-graduação no país. Aqui, vou fazer isso para algumas dessas: para a
Ciência Política, separadamente, e em algumas outras, mais próximas dessa. Os resultados,
também aqui, mostram que mulheres participam mais na produção e defesa de teses em
algumas áreas; já em outras, inclusa a Ciência Política, a presença delas Xca aquém – às
vezes muito aquém – da de homens.
Final

ClassiXcar por sexo autores(as) de teses no Brasil é apenas uma das utilidades do
genderBR. Usando as mesmas fontes de dados, na verdade, é possível investigar as causas
da variação na participação de homens e mulheres na produção de teses; mapear a
distribuição de doscentes e discentes por sexo em todos os programas de pós-graduação;
ou, ainda, aplicar o mesmo método para classiXcar qualquer outro tipo de produção por sexo
do(a) autor(a). Isso tudo, note-se, apenas com os dados da Capes, o que está longe de
esgotar todas as aplicações possíveis do pacote.

A mensagem mais geral desse texto, entretanto, é outra: com a nova atualização, usar o
genderBR para predizer sexo a partir de nomes próprios Xcou muito mais rápido. Como o
exemplo anterior indica, isso pode ser feito em poucos segundos mesmo em bases de
dados grandes; quando os nomes próprios estão formatados de diferentes maneiras; e
lenvando em conta diferenças no uso de nomes por sexo entre estados (ver aqui) – nesse
caso, usando a API do IBGE. Como já discuti no texto da versão anterior do pacote, as
predições do genderBR, além disso, são bastante precisas: nos testes que realizei, o
método prediz o sexo a partir de um nome de forma correta mais de 99% das vezes, além de
produzir poucos missings, como no caso do exemplo anterior. Tudo somado, o genderBR
não só é incomparavelmente mais rápido do que classiXcar manualmente sexo a partir de
nomes, mas também mais recomendado para evitar erros de imputação e contribuir para a
replicabilidade de qualquer pesquisa que o use.

Dados e cógido

Os dados e o código usados nesse posto podem ser encontrados aqui. Como o pacote
genderBR é open source, qualquer um pode consultar ou trabalhar em cima do seu código,
disponível no GitHub. Críticas e sugestões são bem-vindos.

1. A única ressalva, aqui, é que esse método só está disponível quando outro argumento,
state, não é declarado. Com isso, apenas pela API do IBGE é possível obter predições
considerando variação entre estados.
2. Os dados do Banco de Teses e Dissertações da Capes têm muitos problemas, como
missings, campos preenchidos de forma incorreta, incosistência de classiXcação em
alguns anos, entre outros. Como meu objetivo é apenas exempliXcar o pacote, Xz uma
limpeza superXcial na base. Os dados e o código usados nesse post, de qualquer
forma, podem ser encontrados aqui.
« genderBR: predizendo sexo a partir de nomes próprios

E-mail Twitter Scholar ORCID GitHub

Vous aimerez peut-être aussi