POFIBGE
e
survey
O pacote POFIBGE foi desenvolvido para facilitar o download, importação e análise dos dados amostrais da Pesquisa de Orçamentos Familiares realizada pelo Instituto Brasileiro de Geografia e Estatística - IBGE.
Na data de 19 de julho de 2022, o pacote POFIBGE foi arquivo no repositório CRAN, diante de solicitação do mantenedor do pacote devido a impossibilidade de reestruturação dos arquivos de microdados no servidor de referência, inviabilizando a implementação de funções padronizadas em relação aos demais pacotes do Sistema Integrado de Pesquisas Domiciliares (SIPD).
A POF possui três tipos de microdados:Maiores informações sobre a pesquisa e os temas investigados podem ser encontradas no site oficial do IBGE.
Através do objeto criado com este pacote, é possível utilizar o pacote survey para realizar análises considerando o efeito do esquema de seleção utilizado no plano amostral complexo da pesquisa e calcular corretamente as medidas de erro das estimativas, considerando o estimador de pós-estratificação utilizado na pesquisa.
O Pacote está disponível no repositório CRAN do R, onde pode ser
acessada sua documentação. Tais
informações também podem ser acessadas pelo repositório no GitHub do
mantenedor do pacote através do endereço: https://github.com/Gabriel-Assuncao/POFIBGE.
É
importante sempre conferir se a versão instalada em seu computador é a
mais recente disponível no CRAN.
A instalação do pacote pode ser
feita pelo seguinte comando:
install.packages("POFIBGE")
Antes de utilizar o pacote é necessário carregá-lo no R através do comando:
library(POFIBGE)
Para a importação dos microdados da POF, há duas opções. A primeira é uma opção online, que exige que o computador esteja conectado à Internet. A segunda opção não necessita de conexão a Internet, e é utilizada para a leitura de microdados que estejam no disco rígido.
A função get_pof
permite o download, leitura,
rotulação, inserção das variáveis para deflacionamento e criação do
objeto do plano amostral da pesquisa.
Esta função pode ser usada
para microdados de todos os níveis investigados pela pesquisa.
help("get_pof")
A importação dos microdados do questionário básico através da função
get_pof
é muito simples. Basta indicar o ano dos microdados
desejados no respectivo argumento da função. Abaixo um exemplo de como
importar os microdados do questionário básico da POF 2017-2018:
dadosPOF <- get_pof(year=2017)
Apenas com esse comando, os microdados da pesquisa já estão
disponíveis no objeto dadosPOF
para análise.
year
, que indica o ano dos microdados a
serem baixados, a função get_pof
ainda possui outros cinco
argumentos que podem ser modificados no download para este tipo de
microdados:
vars
: Este argumento recebe um vetor de caracteres com o
nome das variáveis a serem baixadas. Caso nenhuma variável seja passada,
todas as variáveis disponíveis na pesquisa são baixadas. É útil caso
deseje trabalhar com poucas variáveis, pois assim o objeto ocupará um
espaço menor na memória do computador;
labels
: Um argumento lógico que indica se os níveis das
variáveis categóricas devam ser rotuladas de acordo com o dicionário da
pesquisa. O default
é rotulá-los;
deflator
: Um argumento lógico que indica se as variáveis
para deflacionamento serão incluídas nos microdados. O
default
é incluí-las;
design
: Um argumento lógico que indica se a função deve
retornar um objeto do plano amostral para análise com o pacote
survey. Caso design=FALSE
, a função retorna apenas
um data-frame com os microdados. É altamente
recomendado que mantenha essa opção como TRUE
,
caso contrário suas análises poderão ser feitas de forma incorreta;
reload
: Um argumento lógico que indica se a função deve
baixar novamente os arquivos no diretório de referência mesmo que estes
arquivos já tenham sido baixados;
curlopts
: Uma lista com indicação das opções para
utilização nas funções do pacote RCurl;
savedir
: O endereço onde devem ser salvos os arquivos
baixados. Padrão é utilizar uma pasta temporária.
Por exemplo, um usuário que deseje trabalhar apenas com as variáveis
de Possuir algum tipo de rendimento ou realizar algum trabalho
no período de referência (V0407) e Realizar despesas ou
aquisições de bens ou serviços (V0408) da POF 2017-2018, pode
utilizar o argumento vars
para selecionar apenas estas
variáveis:
dadosPOF <- get_pof(year=2017, vars=c("V0407","V0408"))
Através do código abaixo, podemos ver que o objeto retornado pela
função é da classe survey.design
ou
svyrep.design
, sendo o tipo de objeto utilizado para
análises de dados amostrais complexos através do pacote
survey.
dadosPOF
class(dadosPOF)
Caso o usuário não queira trabalhar com este objeto, ele pode
escolher a opção design=FALSE
para baixar os microdados
brutos:
dadosPOF_brutos <- get_pof(year=2017, vars=c("V0407","V0408"), design=FALSE)
O Objeto resultante é um data-frame com as variáveis selecionadas e as variáveis relacionadas ao processo de amostragem:
dadosPOF_brutos
Também é possível baixar os dados sem incluir os rótulos dos níveis,
através do argumento labels
.
dadosPOF_brutos_sem <- get_pof(year=2017, vars=c("V0407","V0408"), labels=FALSE, design=FALSE)
Perceba que agora os níveis das categorias são representados por números:
dadosPOF_brutos_sem
Com relação ao processo de inserção das variáveis para
deflacionamento através do argumento deflator
, existe um
documento disponível no site oficial do IBGE para auxílio no processo de
deflacionamento
das variáveis de rendimento.
Além dos microdados do questionário básico, a função
get_pof
também permite a importação dos microdados do
questionário de morador selecionado.
Neste exemplo, mostraremos como importar os microdados do questionário de morador selecionado da POF 2017-2018.
Para a importação dos microdados do questionário de morador
selecionado basta utilizar o valor TRUE
no argumento
selected
:
dadosPOF_morador_selecionado <- get_pof(year=2017, selected=TRUE)
dadosPOF_morador_selecionado
O objeto retornado é da classe survey.design
ou
svyrep.design
, e os argumentos vars
,
labels
, deflator
, design
,
reload
, curlopts
e savedir
podem
ser utilizados da mesma forma dos microdados do questionário básico.
Conforme mencionado, além dos microdados do questionário básico, a
função get_pof
também permite a importação dos microdados
do questionário de antropometria, quando tal módulo for uma subamostra
não diretamente relacionada ao questionário de morador selecionado.
Neste exemplo, mostraremos como importar os microdados do questionário de antropometria da POF 2017-2018.
Para a importação dos microdados do questionário de antropometria
basta utilizar o valor TRUE
no argumento
anthropometry
:
dadosPOF_antropometria <- get_pof(year=2017, anthropometry=TRUE)
dadosPOF_antropometria
O objeto retornado é da classe survey.design
ou
svyrep.design
, e os argumentos vars
,
labels
, deflator
, design
,
reload
, curlopts
e savedir
podem
ser utilizados da mesma forma dos microdados do questionário básico.
get_pof
, é possível criar o mesmo objeto para
análise com arquivos que estejam em disco. Para isto, são utilizadas
quatro funções:
read_pof
: Para a leitura do arquivo .txt dos microdados;
pof_labeller
: Opcional. Coloca os rótulos dos níveis nas
variáveis categóricas;
pof_deflator
: Opcional. Insere as variáveis para
deflacionamento nos microdados;
pof_design
: Cria o objeto do plano amostral para a análise
com o pacote survey
.
Para utilizar estas funções, primeiramente é necessário ter os
microdados e sua documentação no disco e extraídos dos arquivos
compactados, se for o caso.
Estes arquivos podem ser baixados
diretamente do FTP do
IBGE.
Para a função read_pof
são utilizados os arquivos de
texto contendo os microdados e o input para SAS.
Exemplo de leitura para a POF 2017-2018:
dadosPOF <- read_pof(microdata="POF_2017-2018.txt", input_txt="input_POF_2017-2018.txt")
Assim como na importação online, pode ser utilizado o
argumento vars
para definir quais variáveis serão
lidas.
A função pof_labeller
utiliza o objeto criado pela
função read_pof
e o arquivo de dicionário das variáveis
presente na documentação da pesquisa.
dadosPOF <- pof_labeller(data_pof=dadosPOF, dictionary.file="dicionario_POF_microdados_2017-2018.xls")
A utilização de pof_labeller
é opcional e não interfere
nos resultados obtidos.
A função pof_deflator
utiliza o objeto criado pela
função read_pof
e o arquivo de deflatores presente na
documentação da pesquisa.
dadosPOF <- pof_deflator(data_pof=dadosPOF, deflator.file="deflator_POF.xls")
A utilização de pof_deflator
é opcional e não interfere
nos resultados obtidos, desde que não seja o objetivo a análise das
variáveis de rendimento em valor real.
A criação do objeto do plano amostral é feita
diretamente pela função pof_design
aplicada no objeto que
contém os microdados:
dadosPOF <- pof_design(data_pof=dadosPOF)
O objeto resultante é o mesmo retornado pela função
get_pof
e pode ser utilizado para análises com o pacote
survey
.
A importação offline é feita da mesma forma tanto para microdados do questionário básico, quanto para os microdados dos demais tipos de questionários abrangidos pela pesquisa (morador selecionado e antropometria). No entanto, para os demais questionários é preciso utilizar as variáveis identificadoras de seleção da subamostra e também remover as variáveis de peso relativas aos outros tipos de questionário.
Devido ao plano amostral da PNAD Contínua, é necessário que sejam utilizadas ferramentas específicas para a análise de dados amostrais complexos. O pacote survey é um pacote criado especificamente para análise e modelagem de dados provenientes de pesquisas com estes tipos de planos amostrais. Maiores detalhes sobre o pacote podem ser encontrados no site do autor.
Para os exemplos, utilizaremos microdados da POF de 2017-2018, com algumas variáveis selecionadas de acordo com a tabela abaixo:
Variável | Descrição |
---|---|
UF | Unidade da Federação |
V0217 | Tipo de unidade de consumo ou domicílio |
V0306 | Condição na unidade de consumo ou domicílio |
V0403 | Idade do morador na data de referência |
V0404 | Sexo |
V0405 | Cor ou raça |
V0414 | Sabe ler ou escrever? |
INSTRUCAO | Nível de instrução mais elevado alcançado |
V8500 | Rendimento bruto mensal normalmente recebido para pessoas de 14 anos ou mais de idade |
V5314 | Número de horas normalmente trabalhadas para pessoas de 14 anos ou mais de idade |
V0407 | Possuir algum tipo de rendimento ou realizar algum trabalho no período de referência |
V0408 | Realizar despesas ou aquisições de bens ou serviços |
Importando os dados:
variaveis_selecionadas <- c("UF","V0217","V0306","V0403","V0404","V0405","V0414","INSTRUCAO","V8500","V5314","V0407","V0408")
dadosPOF <- get_pof(year=2017, vars=variaveis_selecionadas)
O objeto dadosPOF
vai ser utilizado com o pacote
survey
para a análise dos microdados.
Para iniciar a análise dos dados é necessário carregar o pacote
survey
.
library(survey)
svytotal
. Sua sintaxe precisa de três parâmetros
principais:
~
;
na.rm=TRUE
, que remove as observações onde a
variável é não-aplicável.
Ela pode ser utilizada para a estimação do total de uma variável numérica, como a renda bruta mensal normalmente recebida:
totalrenda <- svytotal(x=~V8500, design=dadosPOF, na.rm=TRUE)
totalrenda
Além da estimativa do total da renda bruta mensal normalmente
recebida, o comando também retorna o erro padrão (SE)
dessa estimativa.
A partir desse resultado, também é possível
calcular coeficientes de variação e intervalos
de confiança para a estimativa:
cv(object=totalrenda)
confint(object=totalrenda)
confint(object=totalrenda, level=0.99)
Também é possível estimar totais populacionais de categorias, utilizando variáveis categóricas, como o sexo:
totalsexo <- svytotal(x=~V0404, design=dadosPOF, na.rm=TRUE)
totalsexo
E estimar o total de mais de uma variável categórica no mesmo código,
separando com o operador +
:
totalsexoraca <- svytotal(x=~V0404+V0405, design=dadosPOF, na.rm=TRUE)
totalsexoraca
Também é possível estimar o total resultante do cruzamento de
duas ou mais variáveis categóricas, com a função
interaction
:
totalsexoEraca <- svytotal(x=~interaction(V0404,V0405), design=dadosPOF, na.rm=TRUE)
ftable(x=totalsexoEraca)
A função ftable
possibilita uma saída mais organizada da
tabela no caso de cruzamento de variáveis. Para todos esses objetos
também podem ser utilizadas as funções cv
e
confint
.
A média de uma variável numérica é estimada através da função
svymean
, que possui uma sintaxe idêntica à
svytotal
. O exemplo do total da renda bruta mensal
normalmente recebida pode ser facilmente reescrito para médias:
mediarenda <- svymean(x=~V8500, design=dadosPOF, na.rm=TRUE)
mediarenda
E podemos calcular coeficientes de variação e intervalos de confiança da mesma forma:
cv(object=mediarenda)
confint(object=mediarenda)
Utilizando variáveis categóricas, é possível estimar a
frequência relativa de cada categoria. Isso pode ser
feito também através da função svymean
, com uma sintaxe
análoga à utilizada para estimar os totais das categorias.
Para estimar a proporção de cada sexo na população:
propsexo <- svymean(x=~V0404, design=dadosPOF, na.rm=TRUE)
propsexo
Da mesma forma, podemos estimar a proporção de mais de uma variável:
propsexoraca <- svymean(x=~V0404+V0405, design=dadosPOF, na.rm=TRUE)
propsexoraca
E estimando a proporção de um cruzamento de duas ou mais variáveis
com a função interaction
:
propsexoEraca <- svymean(x=~interaction(V0404,V0405), design=dadosPOF, na.rm=TRUE)
ftable(x=propsexoEraca)
Neste caso, as frequências relativas calculadas são em relação ao total, não a uma marginal.
Além das proporções, também é possível estimar razões entre duas variáveis. Um exemplo de razão é a taxa de aquisição de bens ou serviços sem rendimento próprio: ela é a razão entre o total de pessoas que indicaram que realizam aquisição de bens ou serviços pelo total de pessoas que não tiveram algum tipo de rendimento.
A função para estimar razões é a svyratio
. Sua sintaxe
utiliza quatro argumentos: a variável cujo total estará no numerador, a
variável cujo total estará no denominador, o objeto do plano amostral e
a opção de remover valores não aplicáveis.
Um exemplo para a estimativa dessa taxa é:
txaquisrend <- svyratio(numerator=~(V0408=="Sim"), denominator=~(V0407=="Não"), design=dadosPOF, na.rm=TRUE)
txaquisrend
Cálculos de coeficiente de variação e intervalos de confiança para essa taxa:
cv(object=txaquisrend)
confint(object=txaquisrend)
Medianas e quantis de variáveis numéricas são estimados através da
função svyquantile
. Além dos argumentos utilizados para
estimar a média, é necessário definir os quantis a serem calculados no
argumento quantiles
.
Para calcular a mediana da renda bruta mensal normalmente recebida,
basta utilizar quantiles=0.5
:
medianarenda <- svyquantile(x=~V8500, design=dadosPOF, quantiles=0.5, ci=FALSE, na.rm=TRUE)
medianarenda
Para obtenção do intervalo de confiança pela função
svyquantile
, é necessário utilizar o parâmetro
ci=TRUE
e a partir dele, utilizar as funções
SE
e cv
para estimar o erro padrão e
coeficiente de variação, respectivamente.
medianarenda <- svyquantile(x=~V8500, design=dadosPOF, quantiles=0.5, ci=TRUE, na.rm=TRUE)
medianarenda
SE(object=medianarenda)
cv(object=medianarenda)
Além disso, é possível calcular vários quantis simultaneamente,
colocando um vetor no argumento quantiles
.
No código
abaixo, estimamos, além da mediana, o primeiro e nono decis e primeiro e
terceiro quartis:
quantisrenda <- svyquantile(x=~V8500, design=dadosPOF, quantiles=c(0.1,0.25,0.5,0.75,0.9), ci=FALSE, na.rm=TRUE)
quantisrenda
Para estimar totais e médias de variáveis de rendimento deflacionadas, ou seja, ao invés de obter as estimativas sob o valor nominal destas variáveis, passar a obter as estimativas sob o valor real. Primeiramente, é necessário realizar a criação da variável de rendimento com os valores deflacionados nos microdados.
Para criação desta nova variável nos microdados utilizamos a função
transform
.
dadosPOF$variables <- transform(dadosPOF$variables, V8500_real=V8500*Deflator)
Após a criação da variável de rendimento deflacionada, para obter a
estimativa do total desta variável basta utilizar a função
svytotal
conforme visto anteriormente:
totalrenda_real <- svytotal(x=~V8500_real, design=dadosPOF, na.rm=TRUE)
totalrenda_real
E para obtenção da média desta nova variável, basta utilizar a função
svymean
:
mediarenda_real <- svymean(x=~V8500_real, design=dadosPOF, na.rm=TRUE)
mediarenda_real
O processo de deflacionamento é essencial no processo de comparação de uma série histórica dos microdados quando estiver sendo analisada uma variável de rendimento.
Muitas vezes queremos fazer uma análise para um domínio específico da
população. Com o pacote survey
, esse domínio pode ser
selecionado utilizando a função subset
no objeto do plano
amostral, aplicando a condição que define aquele domínio. É
necessário que a seleção desse domínio nos dados seja
feita somente após a criação do objeto que define o
plano amostral, caso contrário poderá ser obtido resultados
incorretos.
Para a seleção dos domínios podem ser utilizadas condicionais com igualdade, como por exemplo para estimar a média da renda bruta mensal normalmente recebida de mulheres:
mediarendaM <- svymean(x=~V8500, design=subset(dadosPOF, V0404=="Mulher"), na.rm=TRUE)
mediarendaM
Ou condicionais com desigualdade, como por exemplo estimar a taxa de aquisição de bens ou serviços sem rendimento próprio para pessoas com idade igual ou superior a 25 anos:
txaquisrend25 <- svyratio(numerator=~(V0408=="Sim"), denominator=~(V0407=="Não"), design=subset(dadosPOF, V0403>=25), na.rm=TRUE)
txaquisrend25
Além disso, é possível utilizar múltiplas condições
com os operados lógicos &
(“e”) e |
(“ou”), para estimar a frequência relativa de cada nível de instrução
para homens pardos com mais de 30 anos, por exemplo.
nivelinstrHP30 <- svymean(x=~INSTRUCAO, design=subset(dadosPOF, V0404=="Homem" & V0405=="Parda" & V0403>30), na.rm=TRUE)
nivelinstrHP30
Além disso, caso deseje realizar diversas análises para um mesmo
domínio, é possível criar um objeto que contenha apenas os dados daquele
domínio a partir de um subset
do objeto original do plano
amostral.
dadosPOF_mulheres <- subset(dadosPOF, V0404=="Mulher")
dadosPOF_mulheres
Outro ponto importante de ser mencionado diante de análises por domínio, é sobre a obtenção de indicadores em nível de unidade de consumo ou de domicílio, que para analisar corretamente é necessário realizar o recorte na variável de condição na unidade de consumo ou no domicílio, conforme exemplo apresentado abaixo da proporção do tipo de domicílio:
proptipodom <- svymean(x=~V0217, design=subset(dadosPOF, V0306=="01 – Pessoa de referência da UC"), na.rm=TRUE)
proptipodom
Em outros casos há interesse em estimar quantidades de interesse para
diversos domínios mutuamente exclusivos, a fim de possibilitar
comparações. Para isto, podemos utilizar a função
svyby
.
svytotal
, svymean
, svyratio
,
svyquantile
, …).
Se desejamos estimar a frequência relativa de homens e mulheres em cada nível de instrução, usamos o seguinte código:
freqSexoInstr <- svyby(formula=~V0404, by=~INSTRUCAO, design=dadosPOF, FUN=svymean, na.rm=TRUE)
freqSexoInstr
Caso desejemos estimar o contrário, a frequência relativa de cada nível de instrução para cada sexo, basta inverter as variáveis correspondentes na sintaxe:
freqInstrSexo <- svyby(formula=~INSTRUCAO, by=~V0404, design=dadosPOF, FUN=svymean, na.rm=TRUE)
freqInstrSexo
Também pode ser utilizado para estimar a renda média bruta mensal normalmente recebida por Unidade da Federação:
mediaRendaUF <- svyby(formula=~V8500, by=~V0001, design=dadosPOF, FUN=svymean, na.rm=TRUE)
mediaRendaUF
É possível também calcular o intervalo de confiança para cada uma dessas estimativas:
confint(object=mediaRendaUF)
É possível definir domínios que sejam cruzamentos de
variáveis categóricas com a função
interaction
.
Na função svyby
também é
possível utilizar o argumento vartype=“cv”
caso desejemos
que no output apareça o coeficiente de variação ao invés do
erro padrão da estimativa. Para estimar a taxa de aquisição de bens ou
serviços sem rendimento próprio por sexo e cor ou raça utilizando as
funções svyratio
e svyby
e o respectivo
cv
:
txaquisrendSexoRaca <- svyby(formula=~(V0408=="Sim"), denominator=~(V0407=="Não"), by=~interaction(V0404,V0405), design=dadosPOF, FUN=svyratio, vartype="cv", na.rm=TRUE)
txaquisrendSexoRaca
O pacote survey
possui funções específicas para gerar
gráficos que incorporem os pesos amostrais das observações. Para a
criação dos gráficos, é utilizado o mesmo objeto de plano amostral
utilizado para estimar as quantidades populacionais.
Entre os gráficos disponíveis no pacote estão o histograma, boxplot e gráficos de dispersão.
A função svyhist
permite a criação de histogramas para
variáveis numéricas que consideram os pesos amostrais para computar as
frequências ou densidades das barras.
A sintaxe básica é semelhante
as de estimação apresentadas anteriormente. Além disto, possui os mesmos
parâmetros que a função hist
: breaks
,
xlab
, main
, […].
Para estimativas das
frequências absolutas, deve-se utilizar freq=TRUE
. Abaixo,
um exemplo do histograma do número de horas normalmente trabalhadas para
cada um dos casos:
svyhist(formula=~as.numeric(V5314), design=dadosPOF, main="Histograma", xlab="Número de Horas Normalmente Trabalhadas")
svyhist(formula=~as.numeric(V5314), design=dadosPOF, freq=TRUE, main="Histograma", xlab="Número de Horas Normalmente Trabalhadas")
Para a construção de boxplots que considerem os pesos
amostrais, a função é svyboxplot
.
A sintaxe dela difere um pouco das demais. É necessário declarar a
variável numérica, sucedida por um ~
e a variável de
agrupamento do boxplot. Caso não deseje usar grupos, basta
colocar o número 1
. Além disto, há a opção de plotar apenas
os outliers mais extremos ou todos, através do argumento
all.outliers=TRUE
. Exemplos:
svyboxplot(formula=V5314~1, design=dadosPOF, main="Boxplot do Número de Horas Normalmente Trabalhadas")
svyboxplot(formula=V5314~V0404, design=dadosPOF, main="Boxplot do Número de Horas Normalmente Trabalhadas por Sexo")
svyboxplot(formula=V5314~V0404, design=dadosPOF, all.outliers=TRUE, main="Boxplot do Número de Horas Normalmente Trabalhadas por Sexo")
Os gráficos de dispersão usuais não são muito úteis para dados
provindo de amostras complexas, pois não conseguem diferenciar o peso de
cada ponto representado no gráfico. Para isso, a função
svyplot
tem algumas opções de construção de gráficos de
dispersão que representam esses pesos através do argumento
style
.
Uma opção é a utilização de
style=“bubble”
, que o tamanho do ponto no
gráfico representa o peso das observações naquele ponto.
svyplot(formula=V8500~V5314, design=dadosPOF, style="bubble", xlab="Número de Horas Normalmente Trabalhadas", ylab="Rendimento Mensal Bruto Normalmente Recebido")
Outra opção é a style=“transparent”
,
onde regiões com menor peso são mais transparentes e com maior peso,
mais sólidas:
svyplot(formula=V8500~V5314, design=dadosPOF, style="transparent", xlab="Número de Horas Normalmente Trabalhadas", ylab="Rendimento Mensal Bruto Normalmente Recebido")
survey
No pacote survey
ainda há a possibilidade de realizar
testes de hipóteses e estimar parâmetros de modelos, considerando o
plano amostral complexo.
Os testes de hipóteses incluídos no pacote survey
incluem teste-t para médias, teste qui-quadrado e teste de postos.
Abaixo um exemplo do teste-t para diferenças de médias de rendimentos brutos mensais normalmente recebidos entre sexos:
svyttest(formula=V8500~V0404, design=dadosPOF)
Outro exemplo para testar diferenças entre médias de horas normalmente trabalhadas, entre pessoas que sabem e não sabem ler ou escrever:
svyttest(formula=as.numeric(V5314)~V0414, design=dadosPOF)
Além de testes de hipóteses, é possível estimar modelos lineares
generalizados para dados amostrais complexos através da função
svyglm
.
Para regressão linear simples ou múltipla, basta descrever a fórmula
do modelo desejado na função svyglm
.
No exemplo abaixo, utilizamos um modelo de regressão com rendimento
bruto mensal normalmente recebido como variável dependente e
escolaridade, cor ou raça e idade como variáveis explicativas. Para
obter as estatísticas do modelo, pode ser utilizada a função
summary
, assim como feito para a regressão linear
convencional.
modeloLin <- svyglm(formula=V8500~INSTRUCAO+V0405+V0403, design=dadosPOF)
summary(object=modeloLin)
Além disso, é possível computar intervalos de confiança para os parâmetros:
confint(object=modeloLin)
Outro modelo pertencente a classe de modelos generalizados é a
Regressão Logística. Para utilizar este modelo, basta colocar o
argumento family=“binomial”
.
No exemplo abaixo modelamos o fato de saber ler ou escrever pelo sexo, cor ou raça e idade:
modeloLog <- svyglm(formula=V0414~V0404+V0405+V0403, design=dadosPOF, family="binomial")
summary(object=modeloLog)
Sendo possível também computar intervalos de confiança para os parâmetros:
confint(object=modeloLog)
O pacote convey permite estimar diversas medidas de concentração de renda para dados provenientes de pesquisas com planos amostrais complexos.
Este pacote segue uma sintaxe bem próxima à sintaxe do pacote
survey
, sendo possível utilizar funções do pacote
survey
em objetos do pacote convey
. Uma
extensa documentação sobre este pacote e sobre o processo de estimação
dos índices pode ser encontrada no GitHub dos autores: https://guilhermejacob.github.io/context/index.html.
Para a utilização do pacote convey
, primeiramente é
necessário utilizar a função convey_prep
, que transforma o
objeto do plano amostral do survey
no objeto que o pacote
convey
utiliza para as estimações:
library(convey)
dadosPOF <- convey_prep(design=dadosPOF)
Aqui, apresentaremos apenas exemplo de duas das diversas medidas disponíveis no pacote: O índice de Gini e a Curva de Lorenz.
Para estimarmos o índice de Gini, basta utilizar a função
svygini
com a variável de renda desejada. Neste exemplo,
estimamos o índice de Gini do Brasil para a renda bruta mensal
normalmente recebida:
giniBR <- svygini(formula=~V8500, design=dadosPOF, na.rm=TRUE)
giniBR
Assim como nas funções do pacote survey
, é possível, por
exemplo, estimar o coeficiente de variação desta estimativa:
cv(object=giniBR)
Também é possível utilizar a função svyby
para estimar o
índice de Gini da renda bruta mensal normalmente recebida por Unidade da
Federação:
giniUF <- svyby(formula=~V8500, by=~V0001, design=dadosPOF, FUN=svygini, na.rm=TRUE)
giniUF
E estimar intervalos de confiança para cada UF:
confint(object=giniUF)
A Curva de Lorenz é um gráfico utilizado para relacionar a
distribuição relativa de renda pelas pessoas. A área entre essa curva e
a reta identidade, é uma das formas de definir o coeficiente de Gini. No
pacote convey
, é possível fazer o gráfico desta curva com a
função svylorenz
. Os quantis da população, para os quais a
renda acumulada será plotada no gráfico, são definidos no argumento
quantiles
.
Exemplo para a Curva de Lorenz da renda bruta mensal normalmente recebida:
curvaLorenz <- svylorenz(formula=~V8500, design=dadosPOF, quantiles=seq(from=0, to=1, by=0.05), na.rm=TRUE)
Instituto Brasileiro de Geografia e Estatística - pacotesipd@ibge.gov.br↩︎