Você trai o seu parceiro? Você toma drogas? Você é gay? Você é ateu? Você fez um aborto? Você vai votar no candidato de direita? Nem todas as pessoas se sentem à vontade para responder honestamente a esses tipos de perguntas em todas as situações.
Então, existe um método para encontrar a respectiva proporção de pessoas sem colocá-las no local? Na verdade, existe! Se você quiser aprender sobre resposta aleatória (e como criar fluxogramas em R ao longo do caminho) continue lendo!
A questão é como você pode obter um resultado verdadeiro de maneira geral, sem poder atribuir uma determinada resposta a um único indivíduo. Como se vê, existe um método muito elegante e engenhoso, chamado resposta aleatória. A grande idéia é, como o nome sugere, adicionar ruído a todas as respostas sem comprometer muito a proporção geral, ou seja, adicionar ruído a todas as respostas para que cancela em geral!
Grandes empresas de tecnologia como Google e Microsoft também usam esse método para, por exemplo, coletar dados de telemetria em um preservação da privacidade maneira. O conceito mais amplo é chamado privacidade diferencial, que é diferenciado em local e global métodos. Métodos globais estão sendo usados quando os dados já foram coletados; os métodos locais dizem respeito ao processo de coleta de dados em si. Vamos nos concentrar neste último aqui.
Uma maneira de obter uma resposta aleatória é a seguinte: é solicitado a cada participante que jogue duas moedas. Se a primeira moeda aparecer, ela responde a pergunta com sinceridade. Caso contrário, ela responde “sim” se a segunda moeda aparecer cara e “não” se aparecer coroa. Dessa forma, ninguém pode descobrir se a participante respondeu com sinceridade ou não; suas respostas poderiam ter sido produzidas por acaso. No entanto, o melhor é que, quando perguntamos a todo um grupo de pessoas, é possível calcular as proporções verdadeiras porque o ruído aleatório adicionado é cancelado … veremos como mais adiante no post.
O processo está sendo representado no fluxograma a seguir, criado com R e o diagram
pacote (no CRAN):
library(diagram) ## Loading required package: shape oldpar
Of course, this is just one potential way of doing it and it doesn’t have to be real coin flips: the whole process could be done transparently in the background while collecting personal data automatically, yet to give you some feeling for the method let us actually do a toy example next.
We now simulate a survey of 200 people who get asked an embarrassing question, e.g. whether they are an alcoholic. In our sample, about 15% are alcoholics (which is about the real rate in Western countries, believe it or not!):
set.seed(123) nWe now use the above method to get an estimate of the proportion without embarrassing single individuals:
randomized_responseHow can we actually get rid of the noise? Mathematician Dr. John D. Cook explains (source: Randomized response, privacy, and Bayes theorem):
How can [one] estimate p, the [true] proportion […]? Around half […] will get a head on the first coin and answer truthfully; the rest will look at the second coin and answer yes or no with equal probability. So the expected proportion of yes answers is Y = 0.5p + 0.25, and we can estimate p as 2Y – 0.5.
Let us actually do this for our little example:
2 * sum(randomized_responses) / n - 0.5 ## [1] 0.14Com uma estimativa de 14%, obviamente não estamos tão longe da proporção real (15%). Para descobrir quantas pessoas respondem com sinceridade, fazemos outro cálculo rápido:
sum(true_responses == randomized_responses) / n ## [1] 0.75Isso faz sentido, já que 50% dão a resposta verdadeira de qualquer maneira e 25% por acaso, o que representa 75% no total.
Quem pensaria que um pouco de aleatoriedade no lugar certo poderia revelar verdades ocultas das quais as pessoas normalmente têm vergonha de admitir?
Relacionado