Capítulo 6.4

Índice

  1. 1. O que é Ciência de Dados?
  2. 2. Causalidade e Experimentos
  3. 3. Progamando em Python
  4. 4. Tipos de Dados
  5. 5. Sequências
  6. 6. Tabelas
  7. 7. Visualização
  8. 8. Funções e Tabelas
  9. 9. Aleatoriedade
  10. 10. Amostragem e Distribuições Empíricas
  11. 11. Testando Hipóteses
  12. 12. Comparando Duas Amostras
  13. 13. Estimação
  14. 14. Por que a Média é Importante
  15. 15. Previsão

from datascience import *
import numpy as np
path_data = '../../../assets/data/'
import matplotlib
matplotlib.use('Agg')
%matplotlib inline
import matplotlib.pyplot as plots
plots.style.use('fivethirtyeight')

 

# Em agosto de 2021, este arquivo do censo está online aqui:
data = 'http://www2.census.gov/programs-surveys/popest/technical-documentation/file-layouts/2010-2019/nc-est2019-agesex-res.csv'

# Uma cópia local pode ser acessada aqui caso census.gov mova o arquivo:
# data = path_data + 'nc-est2019-agesex-res.csv'

full_census_table = Table.read_table(data)
#full_census_table

partial_census_table = full_census_table.select('SEX', 'AGE', 'POPESTIMATE2014', 'POPESTIMATE2019')
#partial_census_table

us_pop = partial_census_table.relabeled('POPESTIMATE2014', '2014').relabeled('POPESTIMATE2019', '2019')

Example: Proporções de Sexos

Nesta seção continuaremos usando a tabela us_pop da seção anterior. Mas desta vez vamos nos concentrar nas tendências populacionais em relação à coluna SEX.

us_pop
SEX AGE 2014 2019
0 0 3954787 3783052
0 1 3948891 3829599
0 2 3958711 3922044
0 3 4005928 3998665
0 4 4004032 4043323
0 5 4004576 4028281
0 6 4133372 4017227
0 7 4152666 4022319
0 8 4118349 4066194
0 9 4106068 4061874
… (296 rows omitted)

O Código Usado na Coluna SEX

O conteúdo das colunas AGE, 2014 e 2019 é fácil de entender. A coluna AGE contém idades em anos completos. O valor especial 999 representa toda a população, independentemente da idade, e 100 representa “100 anos ou mais”. As colunas 2014 e 2019 contêm estimativas da população dos EUA em cada um dos dois anos.

A coluna SEX, no entanto, é mais difícil de interpretar.

O formulário do Censo solicita aos entrevistados que forneçam o sexo de cada membro do agregado familiar marcando uma das duas caixas rotuladas Masculino e Feminino. A coluna SEX contém códigos numéricos: 1 para masculino, 2 para feminino e 0 para o total.

Essa pergunta é feita essencialmente da mesma maneira desde 1790. Mas desde então houve considerável pesquisa sobre se o sexo dos seres humanos se presta à categorização binária simples. Por exemplo, pessoas não binárias não se identificam exclusivamente como masculinas ou femininas. Um estudo do Instituto Williams da Faculdade de Direito da UCLA em 2021 estimou que pelo menos 1,2 milhão de indivíduos nos Estados Unidos se identificam como não binários.

Ao continuar usando a forma histórica da pergunta, o Censo falha em refletir a complexidade da classificação de sexo. A explicação fornecida no Censo de 2020 e reproduzida na citação abaixo não inclui instruções para aqueles que não se identificam como Masculino ou Feminino.

Responder à pergunta sobre sexo é fácil.

Uma pergunta sobre sexo foi incluída desde o primeiro censo em 1790. Todas as perguntas do Censo de 2020 que envolvem características pessoais são baseadas na auto-identificação. Ao completar o seu censo, selecione a caixa para o sexo biológico com o qual você se identifica.

Independentemente da opinião expressa acima, responder a esta pergunta não é fácil para todos. Dificuldades para responder à pergunta podem levar a não-respostas ou respostas imprecisas. Isso pode reduzir a precisão dos dados do Censo para informar decisões políticas e alocar recursos.

Antes do Censo de 2020, o Census Bureau considerou revisar esta pergunta ou incluir perguntas mais abrangentes sobre orientação sexual e identidade de gênero. No final, o Bureau decidiu não alterar o censo planejado.

No entanto, o diretor do censo, John Thompson, escreveu: “O Census Bureau continua comprometido em refletir as necessidades de informação de nossa sociedade em mudança”. Os formulários do censo mudam. Por exemplo, novas perguntas sobre raça e etnia no Censo de 2020 levaram a uma compreensão mais precisa da
demografia dos
EUA. Podemos esperar que o Censo de 2030 seja mais inclusivo e preciso em todos os aspectos.

No que segue, usaremos os dados fornecidos pelo Censo tendo em mente as questões descritas acima. Usaremos o termo “masculino” para significar um indivíduo para quem “Masculino” (SEX código 1) foi selecionado no formulário do Censo. Usaremos “feminino” para significar um indivíduo para quem “Feminino” (SEX codigo 2) foi selecionado.

Proporções Gerais

Agora vamos começar a examinar as proporções de sexo em 2019. Primeiro, vamos olhar para todos os grupos etários juntos. Lembre-se de que isso significa olhar para as linhas em que a “idade” é codificada como 999. A tabela all_ages contém essa informação. Há três linhas: uma para a população total, uma para os homens e uma para as mulheres.

us_pop_2019 = us_pop.drop('2014')
all_ages = us_pop_2019.where('AGE', are.equal_to(999))
all_ages
SEX AGE 2019
0 999 328239523
1 999 161657324
2 999 166582199

A linha 0 de all_ages contém a população total dos EUA em cada um dos dois anos. Os Estados Unidos tinham cerca de 330 milhões de pessoas em 2019.

A linha 1 contém as contagens para os homens e a linha 2 para as mulheres. Compare estas duas linhas para ver que em 2019, havia mais mulheres do que homens nos Estados Unidos.

As contagens populacionais nas linhas 1 e 2 somam a população total na linha 0.

Para comparabilidade com outras quantidades, precisaremos converter essas contagens em percentuais da população total. Vamos acessar o total para 2019 e nomeá-lo. Em seguida, mostraremos uma tabela de população com uma coluna de proporção. Conforme nossa observação anterior de que havia mais mulheres do que homens, 50,75% da população em 2019 era feminina e cerca de 49,25% era masculina.

pop_2019 = all_ages.column('2019').item(0)
all_ages.with_column(
    'Proportion', all_ages.column('2019')/pop_2019
).set_format('Proportion', PercentFormatter)
SEX AGE 2019 Proportion
0 999 328239523 100.00%
1 999 161657324 49.25%
2 999 166582199 50.75%

Proporções Entre Bebês

Quando olhamos para os bebês, no entanto, o oposto é verdadeiro. Vamos definir bebês como crianças que ainda não completaram um ano, representadas nas linhas correspondentes a AGE 0. Aqui estão seus números na população. Você pode ver que os bebês do sexo masculino superaram os bebês do sexo feminino.

infants = us_pop_2019.where('AGE', are.equal_to(0))
infants
SEX AGE 2019
0 0 3783052
1 0 1935117
2 0 1847935

Como antes, podemos converter essas contagens em porcentagens do número total de crianças. A tabela resultante mostra que em 2019, pouco mais de 51% das crianças nos EUA eram do sexo masculino.

infants_2019 = infants.column('2019').item(0)
infants.with_column(
    'Proportion', infants.column('2019')/infants_2019
).set_format('Proportion', PercentFormatter)
SEX AGE 2019 Proportion
0 0 3783052 100.00%
1 0 1935117 51.15%
2 0 1847935 48.85%

Na verdade, há muito tempo se observa que a proporção de meninos entre os recém-nascidos é ligeiramente superior a 1/2. A razão para isso não é totalmente compreendida, e os cientistas ainda estão trabalhando nisso.

Proporção de Sexo em Cada Idade

Vimos que enquanto há mais bebês do sexo masculino do que feminino, há mais mulheres do que homens na população em geral. Isso significa que a divisão entre os sexos deve variar entre os grupos etários.

Para estudar essa variação, vamos separar os dados para as mulheres e para os homens, e eliminar a linha onde todas as idades são agregadas e AGE é codificado como 999.

As tabelas females e males contêm os dados para cada um dos dois códigos de sexo.

females_all_rows = us_pop_2019.where('SEX', are.equal_to(2))
females = females_all_rows.where('AGE', are.not_equal_to(999))
females
SEX AGE 2019
2 0 1847935
2 1 1871014
2 2 1916500
2 3 1955655
2 4 1976372
2 5 1967081
2 6 1964271
2 7 1966584
2 8 1986471
2 9 1988726
… (91 rows omitted)

 

males_all_rows = us_pop_2019.where('SEX', are.equal_to(1))
males = males_all_rows.where('AGE', are.not_equal_to(999))
males
SEX AGE 2019
1 0 1935117
1 1 1958585
1 2 2005544
1 3 2043010
1 4 2066951
1 5 2061200
1 6 2052956
1 7 2055735
1 8 2079723
1 9 2073148
… (91 rows omitted)

O plano agora é comparar o número de mulheres e o número de homens em cada idade, para cada um dos dois anos. Os métodos Array e Table nos fornecem maneiras simples de fazer isso. Ambas as tabelas têm uma linha para cada idade.

males.column('AGE')
array([  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,
        13,  14,  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,
        26,  27,  28,  29,  30,  31,  32,  33,  34,  35,  36,  37,  38,
        39,  40,  41,  42,  43,  44,  45,  46,  47,  48,  49,  50,  51,
        52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,  64,
        65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,
        78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,
        91,  92,  93,  94,  95,  96,  97,  98,  99, 100])

 

females.column('AGE')
array([  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,  10,  11,  12,
        13,  14,  15,  16,  17,  18,  19,  20,  21,  22,  23,  24,  25,
        26,  27,  28,  29,  30,  31,  32,  33,  34,  35,  36,  37,  38,
        39,  40,  41,  42,  43,  44,  45,  46,  47,  48,  49,  50,  51,
        52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,  64,
        65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,
        78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,
        91,  92,  93,  94,  95,  96,  97,  98,  99, 100])

Para qualquer idade específica, podemos obter a proporção de sexo Feminino:Masculino dividindo o número de mulheres pelo número de homens.

Para fazer isso em um único passo, podemos usar column para extrair a matriz de contagens de mulheres e a matriz correspondente de contagens de homens, e então simplesmente dividir uma matriz pela outra. A divisão elemento por elemento criará uma matriz de proporções de sexo para todos os anos.

ratios = Table().with_columns(
    'AGE', females.column('AGE'),
    '2019 F:M RATIO', females.column('2019')/males.column('2019')
)
ratios
AGE 2019 F:M RATIO
0 0.954947
1 0.955289
2 0.955601
3 0.957242
4 0.956177
5 0.954338
6 0.956801
7 0.956633
8 0.955161
9 0.959278
… (91 rows omitted)

Você pode ver pela exibição que as proporções estão todas em torno de 0.96 para crianças com nove anos ou menos. Quando a proporção Feminino:Masculino é menor que 1, há menos mulheres do que homens. Assim, estamos vendo que havia menos meninas do que meninos em cada um dos grupos etários 0, 1, 2, e assim por diante até 9. Mais precisamente, em cada um desses grupos etários havia cerca de 96 meninas para cada 100 meninos.

Então, como a proporção geral de mulheres na população pode ser maior do que a dos homens?

Algo bem diferente acontece quando examinamos o outro extremo da faixa etária. Aqui estão as proporções Feminino:Masculino para pessoas com mais de 75 anos.

ratios.where('AGE', are.above(75)).show()
AGE 2019 F:M RATIO
76 1.21422
77 1.23558
78 1.26373
79 1.28129
80 1.29209
81 1.32745
82 1.36101
83 1.39749
84 1.44603
85 1.48588
86 1.53967
87 1.59775
88 1.66125
89 1.73365
90 1.80539
91 1.90275
92 1.99252
93 2.10192
94 2.2271
95 2.34042
96 2.41969
97 2.5868
98 2.65926
99 2.91367
100 3.27411

Não apenas todas essas proporções são maiores que 1, indicando mais mulheres do que homens em todos esses grupos etários, muitas delas são consideravelmente maiores que 1.

  • Aos 92 e 93 anos, as proporções estão próximas de 2, o que significa que havia cerca de duas vezes mais mulheres do que homens nessas idades em 2019.
  • Aos 99 anos, havia cerca de 3 vezes mais mulheres do que homens.

Se você está se perguntando quantas pessoas havia nessas idades avançadas, você pode usar o Python para descobrir:

males.where('AGE', are.contained_in(make_array(92, 93, 99)))
SEX AGE 2019
1 92 131684
1 93 103415
1 99 14596

 

females.where('AGE', are.contained_in(make_array(92, 93, 99)))
SEX AGE 2019
2 92 262383
2 93 217370
2 99 42528

O gráfico abaixo mostra as proporções de sexo plotadas contra a idade. A curva azul mostra as proporções de 2019 por idade.

As proporções são quase 1 (significando números quase iguais de homens e mulheres) para idades de 0 a 60. Mas elas começam a subir dramaticamente (mais mulheres do que homens) a partir da faixa etária de 65 a 70 anos.

O fato de as mulheres superarem os homens nos EUA se deve em parte ao desequilíbrio acentuado a favor das mulheres entre os idosos.

ratios.plot('AGE')


← Capítulo 6.3 – Exemplo: Tendências Populacionais Capítulo 7 – Visualização →