13
NOTA TÉCNICA Departamento de Avaliação / SAGI / MDS Assunto: Protocolo de Análise de Consistência de Banco de Dados Autor: Marcel Frederico de Lima Taga Data: 11 de maio de 2011

NT 2011 Protocolo de Analise de Consistenciaxaplicacoes.mds.gov.br/sagirmps/simulacao/sum_executivo/da_docs/... · da consistência do banco de dados da Pesquisa de Avaliação de

Embed Size (px)

Citation preview

NOTA TÉCNICA

Departamento de Avaliação / SAGI / MDS

Assunto: Protocolo de Análise de Consistência de Banco de Dados

Autor: Marcel Frederico de Lima Taga

Data: 11 de maio de 2011

1

Ministério do Desenvolvimento Social e Combate à fome

Secretaria de Avaliação e Gestão da Informação

Departamento de Avaliação

Esplanada dos Ministérios, Bloco A, sala 323 – 70.054-906, Brasília-DF

Fone: (061) 3433-1509, Fax: (061) 3433-1529

Brasília, 27 de junho de 2011 Departamento de Avaliação / SAGI / MDS Assunto: Protocolo de Análise de Consistência de Banco de Dados

2

Introdução O Departamento de Avaliação (DA), da Secretaria de Avaliação e Gestão da Informação (SAGI), do Ministério de Desenvolvimento Social e Combate à Fome (MDS), é o responsável por elaboração e acompanhamento de pesquisas de avaliações dos programas sociais do Ministério. Entre as atividades pertinentes ao Departamento está a análise de consistência das bases de dados resultantes das coletas realizadas em campo. O tempo de execução desta atividade é diretamente relacionado com o tamanho das bases de dados (quantidade de variáveis) e da complexidade do questionário aplicado (quantidade de questões condicionais e blocos que devem ser respondidos por um ou outro ator entrevistado). Visando a qualidade técnica e eficiência, este protocolo descreve um procedimento a ser adotado para analisar a consistência de bases de dados. O procedimento está dividido em etapas com a descrição dos métodos de análise a partir exemplos hipotéticos. O conteúdo desta Nota Técnica foi extraído do Produto Documento técnico sintético contendo: análise da consistência do banco de dados da Pesquisa de Avaliação de Impacto do BPC para idosos e pessoas com deficiência – Primeira rodada do consultor Marconi Fernandes de Sousa (Contrato NPPP: N.º 2011/000030) e do Produto Análise dos dados geográficos da pesquisa “Inventário de Terreiros” do consultor Rodrigo Costa Capeáns (Contrato NPPP nº. 2011/000085). Etapas A. Verificar existência de chave-primária A importância da existência de chave-primária decorre das características do método da analise de consistência. Para cada variável ou fluxo da base de dados a ser analisada é criada uma variável-filtro sinalizando a existência de valores inconsistentes, neste sentido, sem uma variável identificadora do caso não é possível proceder à análise de consistência. Nos casos de pesquisas que apresentem apenas uma base de dados, a variável de chave-primária pode ser construída de forma a possibilitar a análise de consistência. Já nos casos de pesquisas que se produzem duas ou mais bases de dados correlacionadas, a variável de chave-primária deve estar contida nas bases enquanto exigência à empresa contratada, pois será através desta que será feita a união entre as diferentes bases de dados de uma mesma pesquisa. Importante ressaltar que há bases de dados nas quais a chave primária pode ser construída a partir de duas ou mais variáveis presentes nas bases analisadas. Os exemplos hipotéticos utilizados apresentam a variável “número de ordem” enquanto chave-primária. B. Analisar a consistência das variáveis Este Protocolo descreve um método de análise de consistência de base de dados a partir da elaboração de sintaxes de criação de variáveis-filtro para cada variável e fluxo de bases de dados que identifique problemas de inconsistência caso a caso. O método de análise é norteado por quatro parâmetros de criação de variáveis-filtro que se caracterizam de acordo com a natureza das variáveis e dos fluxos que são objetos da análise.

3

Os exemplos de sintaxes aqui reproduzidas estão no formato do software de estatística Predictive Analytics Software Statistics versão 18 (PASW 18), mas, no entanto, o método pode ser replicado para outros formatos de programas estatísticos. 1. Consistência categórica Na análise de consistência de variáveis categóricas utiliza-se o parâmetro de consistência categórica. Para cada variável destacam-se enquanto casos inconsistentes, os registros de valores que não estão previstos nos questionários de pesquisas de onde são originadas as bases de dados, assim como, os registros de valores que não estão previstos nos dicionários de variáveis das bases analisadas. Desta forma, para cada variável categórica é criada uma “variável-filtro” binária indicando caso a caso se há inconsistência em algum registro da variável analisada. O registro [0] é utilizado para indicar que o caso está consistente e o registro [1] para os casos inconsistentes. Para melhor exemplificar, suponhamos uma base de dados hipotética de indivíduos que tenha a variável V1, variável sexo, tabulada a partir de um dado questionário. A questão é de escolha única e no questionário são apresentadas as opções de marcação [1] para masculino e [2] para feminino. Dessa forma, a variável V1 desta base de dados estará consistente caso contenha apenas estes valores previstos em sua distribuição. As inconsistências serão os registros que não se enquadram nestes valores, lembrando que registros faltantes (system missing) não entram em análise, pois são ausências de registro e não dizem respeito aos formatos dos registros (Ver Figura 1 abaixo).

Figura 1 – Variável 1 (V1) do Questionário hipotético

Suponhamos que a base de dados tabulada a partir do questionário é composta por 200 casos e que ao construir uma tabela de freqüência da variável V1, atingimos a seguinte distribuição:

4

Figura 2 – Distribuição hipotética da variável V1

Neste caso, os registros [4], [7] e [8] são valores inconsistentes encontrados na variável V1 e, dessa forma, a variável-filtro de análise de consistência (V1_f1) deve indicar estes casos com o registro [1]. A Figura 3 abaixo demonstra a forma como se opera a construção da variável-filtro de consistência categórica no exemplo citado:

Figura 3 - Trecho de base de dados hipotética com as variáveis V1 e V1_f1

Como se observa no exemplo da Figura 3, a variável-filtro V1_f1 indica a inconsistência categórica da variável V1 no caso de número de ordem “3”. Dessa forma, o trecho de sintaxe abaixo demonstra como construí-las de acordo com o exemplo dado:

5

Quadro 1 – Exemplo de sintaxe para criação de variável-filtro para a variável categórica hipotética V1

RECODE V1 (1=0) (2=0) (SYSMIS=SYSMIS) (ELSE=1) INTO V1_f1. EXECUTE. VARIABLE LABELS V1_f1 ‘Filtro de checagem de consistência categórica da variável V1’. VALUE LABELS V1_f1 “0” Consistente “1” Inconsistente. Como se observa no Quadro 1, a variável-filtro V1_f1 é construída de modo a identificar caso a caso os registros consistentes da variável V1 com o valor [0] e os inconsistentes com o valor [1]. 2. Consistência de verossimilhança A análise das variáveis numéricas não se restringe ao entendimento estritamente formal de consistência. O entendimento estrito de consistência está relacionado aos formatos dos registros de acordo com a natureza da variável. Dessa forma, para variáveis numéricas, desde que os registros sejam numéricos, atinge-se a consistência formal independentemente da irrealidade do valor registrado ou da discrepância de alguns valores. Para melhor exemplificar este aspecto, suponhamos uma variável hipotética tabulada a partir de uma questão coletada sobre o comprimento de crianças recém-nascidas, sendo centímetros a unidade de medida da variável. Do ponto de vista formal, o valor 90 centímetros é um registro numérico e está de acordo com a natureza da variável numérica, no entanto, trata-se de um registro inverossímil. Neste sentido, para a análise de consistência das variáveis numéricas utiliza-se o parâmetro de consistência de verossimilhança que para além de uma análise estritamente formal dos registros, serve para destacar casos com registros de valores discrepantes, registros de valores semelhantes a missings (Ex: 999,99 ao invés de 999,98 como previsto em um dicionário de variáveis hipotético) e registros incondizentes com a realidade (Ex: 90 centímetros enquanto comprimento ao nascer). Assim sendo, constrói-se variáveis-filtro para cada variável numérica da base de dados analisada identificando caso a caso os registros consistentes com [0] e os inconsistentes com [1]. Destaca-se que os casos marcados como inconsistentes nas variáveis numéricas servem como sugestão para a revisão da informação do questionário coletado referente ao caso com problema de inconsistência. Dessa forma, parte-se do pressuposto de que houve problemas ou no preenchimento do questionário na etapa da coleta ou na composição da base de dados na etapa de digitação. Por fim, o parâmetro da consistência de verossimilhança não produz necessariamente um diagnóstico definitivo da consistência de uma variável numérica, pois, diferentemente da consistência categórica, onde os parâmetros de análise já estão previsto no questionário/dicionário, recorre-se a outros parâmetros para avaliar a consistência dos valores. Por exemplo, supõe-se a variável V2 sobre o comprimento de recém-nascidos em uma base de dados hipotética. Os parâmetros de consistência de verossimilhança utilizados para a análise

6

podem ser as medidas da Organização Mundial de Saúde (OMS), onde 43,9 cm é a referência para valor mínimo e o valor 55,2 cm para valor máximo. Abaixo segue o exemplo de sintaxe em PASW de construção de variável-filtro para análise de consistência da variável numérica V2.

Quadro 2 – Exemplo de sintaxe para criação de variável-filtro para a variável numérica hipotética V2

RECODE V2 (43.9 THRU 55.2=0) (SYSMIS=SYSMIS) (ELSE=1) INTO V2_f2. EXECUTE. VARIABLE LABELS V2_f2 ‘Filtro de checagem de consistência de verossimilhança da variável V2’. VALUE LABELS V2_f2 “0” Consistente “1” Inconsistente. Como se observa, a variável V2_f2 identifica caso a caso os registros consistentes da variável V2 com o registro [0] e os inconsistentes com o registro [1], lembrando novamente que para o tipo de informação coletada, o parâmetro de verossimilhança utilizado foi o da OMS. A Figura 4 abaixo demonstra a forma como se opera a construção da variável-filtro de consistência de verossimilhança do exemplo citado:

Figura 4 - Trecho de base de dados hipotética com as variáveis V2 e V2_f2

Como se observa no exemplo da Figura 4, a variável V2_f2 indica a inconsistência de verossimilhança da variável numérica V2 no caso de número de ordem “3”. Por fim, variáveis numéricas com registros de data, seja no formato data ou numérico, variáveis de horas, minutos, entre outras unidades temporais ou de outra natureza, são variáveis que também devem ser analisadas segundo critérios de verossimilhança e com a observância dos formatos de registro previsto pelo questionário. 3. Consistência de fluxo Além da análise de consistência dos registros das variáveis categóricas e numéricas, deve-se analisar a consistência de fluxos previstos no questionário que origina a base de dados a ser consistida. Para tal, devem ser criadas variáveis-filtro que sinalizassem caso a caso onde há registros que não respeitam o fluxo entre duas ou mais variáveis interdependentes.

7

Para melhor exemplificar a análise de consistência de fluxo, suponhamos um questionário do qual foram tabuladas as variáveis V3 - variável categórica sobre freqüência escolar - e V4 - variável categórica sobre nível escolar que o entrevistado freqüenta. Evidentemente, só poderá responder a questão sobre o nível escolar freqüentado, o entrevistado que previamente respondeu que freqüenta escola. Dessa forma, os registros das variáveis V3 e V4 na base de dados devem obedecer às regras que condicionam fluxo do questionário. A Figura 3 abaixo ilustra este exemplo de fluxo:

Figura 5 – Fluxo das variáveis V3, V4 e V5 de um Questionário hipotético

Como se observa na Figura 5, para que a relação entre as variáveis V3 e V4 estejam consistentes, só poderá haver registro na V4 caso o registro da V3 seja [1], “Sim”. Do contrário, se o registro da V3 para um dado caso for [2], “Não”, este caso só poderá ter registro a partir da variável V5. As variáveis-filtro devem identificar, portanto, problemas de consistência de fluxo para cada caso da base de dados a ser analisada. No entanto, apenas pela análise de consistência de fluxo não é possível a identificação da variável que contém o registro equivocado (seja a condicionante ou a

8

condicionada). Auferir onde está o problema do fluxo só é possível com a checagem do questionário preenchido do caso inconsistente, distinguindo se houve problema no ato da coleta ou no processo de digitação da base de dados. Caso uma inconsistência de fluxo tenha ocorrido por equívoco de preenchimento do questionário na etapa da coleta de dados, a recomposição dos registros envolvidos no fluxo só seria possível recorrendo à pessoa entrevistada. Do contrário, a recomposição passa necessariamente por uma decisão metodológica arbitrária determinando qual variável condiciona os registros das demais. A Figura 6 abaixo demonstra a forma como se opera a construção da variável-filtro de consistência de fluxo no exemplo trabalhado:

Figura 6 – Trecho de base de dados hipotética com as variáveis V3, V4, V5 e V4_f3

Como se observa na Figura 6, a variável V4_f3 indica a inconsistência de fluxo entre as variáveis V3 e V4 no caso de número de ordem “4”. No entanto, como explicado anteriormente, a variável-filtro não tem como identificar se a inconsistência de fluxo é conseqüência de um erro de registro da variável V3 ou V4. Por fim, abaixo segue o exemplo de sintaxe em PASW de construção de variável-filtro para análise de consistência de fluxo utilizando-se do exemplo supramencionado:

Quadro 3 - Exemplo de sintaxe para criação de variável-filtro para análise de consistência de fluxo entre as variáveis hipotéticas V3 e V4

IF (V3=2 & MISSING(V4)) V4_f3=0. IF (V3=2 & ~MISSING(V4)) V4_f3=1. IF (MISSING(V3) & MISSING(V4)) V4_f3=0. IF (MISSING(V3) & ~MISSING(V4)) V4_f3=1. EXECUTE. V4_f3 ‘Filtro de checagem de consistência de fluxo da variável V4 com a V3’. EXECUTE. VALUE LABELS V4_f3 “0” Consistente “1” Inconsistente. Como se observa no Quadro 3, a variável V4_f3 é construída de modo a identificar caso a caso as inconsistências de fluxo entre as variáveis V3 e V4. Nos casos em que intervalo de variáveis

9

interdependentes envolvem mais que duas variáveis, a nomenclatura para nomear a variável-filtro engloba o nome das demais. Por exemplo, suponhamos que as variáveis hipotéticas V6, V7, V8 e V9 são tabuladas a partir de questões que só devem ser respondidas caso o valor da variável V5 seja “1”. Neste caso, a sintaxe de construção de variável-filtro em PASW para análise de consistência de fluxo seria:

Quadro 4 - Exemplo de sintaxe para criação de variável-filtro para análise de consistência de fluxo entre as variáveis hipotéticas V5, V6, V7, V8 e V9

IF (V5=2 & (MISSING(V6) & MISSING(V7) & MISSING(V8) & MISSING(V9))) V6_V9_f3=0. IF (V5=2 & ~(MISSING(V6) & MISSING(V7) & MISSING(V8) & MISSING(V9))) V6_V9_f3=1. IF (MISSING(V5) & (MISSING(V6) & MISSING(V7) & MISSING(V8) & MISSING(V9))) V6_V9_f3=0. IF (MISSING(V5) & ~(MISSING(V6) & MISSING(V7) & MISSING(V8) & MISSING(V9))) V6_V9_f3=1. EXECUTE. V6_V9_f3 ‘Filtro de checagem de consistência de fluxo das variáveis V6, V7, V8 e V9 com a V5’. EXECUTE. VALUE LABELS V6_V9_f3 “0” Consistente “1” Inconsistente. A Figura 7 abaixo demonstra a forma como se opera a construção da variável-filtro de consistência de fluxo que envolve mais de duas variáveis do exemplo acima: Figura 7 - Trecho de base de dados hipotética com as variáveis V5, V6, V7, V8 e

V9 e V6_V9_f3

Como se observa na Figura 7, a variável V6_V9_f3 indica a inconsistência de fluxo entre as variáveis V5, V6, V7, V8 e V9 nos casos de número de ordem “3” e “4”. Ao observar o caso de número de ordem “3”, verificamos que a variável condicionante V5 apresenta missing. Optou-se metodologicamente por caracterizar o fluxo como inconsistente (V6_V9_f3=1) nos casos de

10

registro faltante na variável condicionante, o que necessariamente sinaliza a necessidade de checagem das informações do questionário de onde foram extraídos os registros.

11

4. Consistência lógica O parâmetro de consistência lógica tem como foco de análise os conteúdos de duas ou mais variáveis independentes, ou seja, o foco de análise são os valores das variáveis no sentido de avaliar a relação lógica entre estes valores. Neste sentido, não está em análise o fluxo do questionário nem o valor individual de cada variável, mas os valores relativos das variáveis por tratarem de conteúdos correlacionados. É importante lembrar que a consistência de fluxo incorpora de certa forma o parâmetro da consistência lógica, mas tendo como objeto e foco de sua análise apenas o fluxo do questionário. Para melhor exemplificar a análise de consistência lógica, suponhamos duas variáveis hipotéticas: V11, variável numérica para número de cômodos do domicílio e V12, variável numérica para número de banheiros do domicílio pesquisado. As duas variáveis não estão previamente condicionadas pelo fluxo do questionário, no entanto, os seus conteúdos devem apresentar paralelismo lógico para se atingir a consistência. As variáveis-filtro devem, portanto, identificar problemas de consistência lógica para cada caso de bases de dados com variáveis de conteúdos relacionados. A Figura 8 abaixo demonstra a forma como se opera a construção da variável-filtro de consistência lógica a partir do exemplo citado:

Figura 8 - Trecho de base de dados hipotética com as variáveis V11, V12 e V11_V12_f2

Como se observa na Figura 8, o caso do domicílio de número de ordem “1” apresenta 7 banheiros na variável V12 e 5 cômodos na variável V11. Dessa forma, a variável-filtro V11_V12_f4 identifica com o registro [1] a inconsistência lógica encontrada. Por fim, abaixo segue o exemplo de sintaxe em PASW de construção de variável-filtro para análise de consistência lógica utilizando-se deste exemplo:

12

Quadro 5 - Exemplo de sintaxe para criação de variável-filtro para análise de consistência lógica entre as variáveis hipotéticas V11 e V12

IF (V12<=V11) V11_V12_f4=0. IF (V12>V11) V11_V12_f4=1. EXECUTE. VARIABLE LABELS V11_V12_f4 ‘Filtro de checagem de consistência lógica das variáveis V11 e V12’. VALUE LABELS V11_V12_f4 “Consistente” “Inconsistente”. Estes quatro parâmetros de análise de consistência encerram por ora a metodologia. C. Gerar tabela diagnóstica Construídas as variáveis-filtro para uma dada base de dados, deve se produzir uma tabela de freqüência com todas as variáveis-filtro no intuito de obter o diagnóstico da consistência. A Figura 9 abaixo se utiliza das variáveis hipotéticas exemplificadas neste relatório para demonstrar a disposição da tabela final da análise de consistência: Figura 9 – Tabela final da análise de consistência - Distribuição das variáveis-

filtro hipotéticas

Por fim, deve se produzir uma base dados com a variável de chave-primária e variáveis-filtro obtendo-se o último subsídio necessário para se checar as inconsistências caso a caso.