Teorema de Bayes e por que não devemos discutir com com quem tem certeza absoluta de alguma coisa.

Eu acho o teorema de Bayes muito legal, ja falamos dele muitas vezes, como aqui e aqui, além do que está espalhado em muitos outros posts, mas é sempre possível aprender algo novo.

O teorema de bayes tenta de dar a probabilidade de você ter uma doença (H, de hypothesis) dado alguma evidência, que veio de um evento (E, de event), como receber um teste positivo de um exame para detectar alguma doença, a probabilidade de H dado que E aconteceu p(H|E).

Para isso você precisa saber, qual o prior, a chance de você ter a doença p(H) e multiplicar pela probabilidade do evento acontecer dado que a hipótese é verdadeira p(E|H), e então dividir pela probabilidade total do evento ocorrer, p(E), a probabilidade de testar positivo.

p(H|E)=\frac{ p(E|H) \cdot p(H)}{p(E)}

Mas o que é p(E), bem é uma combinação de ter a doença e e ser corretamente identificado por ela p(H) \cdot P(E|H) mais a chance de não ter a doença e ser falsamente identificado. p(-H) \cdot P(E|-H), ou seja

p(H|E)=\frac{ p(E|H) \cdot p(H)}{p(H) \cdot P(E|H)+p(-H) \cdot P(E|-H)}

Agora, o exemplo clássico do exame, sabemos que você faz um exame, o resultado volta e você tem um positivo para uma rara doença que acomete a população, somente 0.1% da população tem essa doença, então você se pergunta o quão certo eu posso ser disso, bem o teste identifica corretamente a doença 99% das vezes, só errando 1%, então é 99% certo que você tem a doença? Vamos usar o teorema de Bayes.

p(H)=0.001

p(E|H)=0.99

P(E|-H)=1-p(E|H)=0.01

O que da.
p(H|E)=\frac{ 0.99 \cdot 0.001}{0.001 \cdot 0.99 + (1-0.001) \cdot 0.01}=9%

E parece perdido esse resultado, o exame é 99% certeiro para identificar a doença, ainda assim você tem um positivo e agora acha que tem 9% de chance de ter a doença?Visualizando fica mais fácil.

Primeiro, sabemos que a doença é rara, ou seja, somente 0.1% da população tem ela, isso é uma pessoa em mil.

Ou seja, se os 1000 pontinhos são a população, somente uma, a bolinha vermelha é doente nessa população. Mas o teste é eficaz em 99% das vezes, ele erra 1% das vezes, errar é dizer que uma pessoa sadia esta doente aqui. Então se testarmos as outras 999 pessoas que não são doentes, o teste vai falhar em 1% dos casos, ou seja, 0.01*999, que da 9.99, ou seja, 10 pessoas vão receber positivo, mesmo sendo sadias.

Ou seja, p(H|E), agora que tiramos as bolinhas pretas da jogada, qual a chance de eu estar doente?

O que da aproximadamente 9%, uma bolinha doente num mar de 11 bolinhas, 1/11.

> 1/11 [1] 0.09090909

Basicamente o mesmo resultado de aplicar o teorema de Bayes

> (0.99*prior)/(prior*0.99+(1-prior)*0.01) [1] 0.09016393

Agora o por que não devemos discutir com com quem tem certeza absoluta de alguma coisa?

Suponha que você acha que essa doença é crendice popular, que não tem nada a ver, é da cabeça das pessoas, você acha que seu prior então é zero.

> prior<-0.0 > (0.99*prior)/(prior*0.99+(1-prior)*0.01) [1] 0

Veja que no final você continua com a mesma probabilidade posterior, se a doença não existe, não tem como alguém ter ela.

Agora suponha que você acha que existe uma conspiração do governo, e que na verdade todo mundo ta doente, e o governo nos engana, então o prior é 100%, se usarmos o teorema de Bayes temos:

> prior<-1.0 > (0.99*prior)/(prior*0.99+(1-prior)*0.01) [1] 1

Ou seja, todo mundo já ta doente, não precisa de evidência mostrando que as pessoas estão doentes, nos dois extremos, 0% ou 100% de prior, nossa opinião não muda nada, por isso que não devemos atribuir 0% nem 100% de chance para nada, porque se ja temos essa certeza, evidência de algo contrário ou não ao que achamos é inútil, não vai mudar nossa perspectiva.

Bem é isso ai, tentando voltar a atividade, porque fiquei umas semanas desanimado com a vida, e se eu escrevi alguma bobeira, algo errado, deixe um comentário corrigindo ou mande um e-mail.

Referência:

Video: The Bayesian Trap do Veritasium.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
set.seed(123)
coordenadas<-expand.grid(1:50,1:20)
pessoas<-rep("black",1000)
pessoas[sample(1:1000,1)]<-"red"
 
plot(coordenadas[,1],coordenadas[,2],frame=F,xaxt="n",yaxt="n",xlab="1000 Pessoas",ylab="",pch=19,cex=1.2,col=pessoas)
 
 
pessoas[sample(1:1000,10)]<-"blue"
plot(coordenadas[,1],coordenadas[,2],frame=F,xaxt="n",yaxt="n",xlab="1000 Pessoas",ylab="",pch=19,cex=1.2,col=pessoas)
 
pessoas[pessoas=="black"]<-"white"
plot(coordenadas[,1],coordenadas[,2],frame=F,xaxt="n",yaxt="n",xlab="11 Pessoas",ylab="",pch=19,cex=1.2,col=pessoas)
 
prior<-0.001
(0.99*prior)/(prior*0.99+(1-prior)*0.01)
 
1/11
 
prior<-0.0
(0.99*prior)/(prior*0.99+(1-prior)*0.01)
 
prior<-1.0
(0.99*prior)/(prior*0.99+(1-prior)*0.01)

Malditos anarquistas

Ae, acabou o semestre, agora deve sobrar mais tempo para voltar a postar algumas coisas por aqui. Por enquanto eu não escrevi nada, mas vi essa imagem na internet hoje.

anarquia

Ai eu fiquei meio intrigado, e foi ver do que se tratava, já que ninguém tomava a liberdade.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
lx<-function(x){
    2+sqrt(-(x-2)^2+1)
}
gx<-function(x){
    2-sqrt(-(x-2)^2+1)
}
hx<-function(x){
    3*x-3
}
ix<-function(x) {
    -3*x+9
}
jx<-function(x){
    0.2*x+1.7
}

Criando as equações no R, podemos resolver elas e colocar o resultado em um gráfico.

1
2
3
x<-seq(0.5,3.5,0.1)
y<-data.frame(l=lx(x),g=gx(x),h=hx(x),i=ix(x),j=jx(x))
matplot(x,y,type="l",lty=1,lwd=4,col="red")

E vemos o seguinte.

anarquiaplot

Realmente, é uma pichação de anarquistas hehe.

Resenha – Survey of green building water systems reveals elevated water age and water quality concerns

Esse semana, olhando a revista Science, na seção do Editor’s Choice, tem um artigo muito interessante.

Survey of green building water systems reveals elevated water age and water quality concerns

O objetivo do artigo foi investigar o impacto das novas tecnologias de conservação de água, por exemplo, captar água da chuva, aquecedor solar, na qualidade da água que vem do sistema convencional.
A principio pode não fazer muito sentido, mas é uma avaliação muito interessante. Porque pra mim, eu só pensava bem em estratégias como guardar aguá da chuva para regar plantas, ou lavar um quintal. Mas a saca dos cara vem do fato que economizar água da rua com essas tecnologias verdes, faz com que a água da rua demore mais tempo para percorrer a tubulação de distribuição, fique mais tempo na cacha de água da nossa casa, do prédio, na tubulação, e isso tem um impacto.

A primeira observação muito interessante, é que nos recebemos água tratada, e nela existe algum tipo de desinfectante, por exemplo o cloro, como é comentado no artigo do wikipedia.

fig1

Acontece que, como ele comenta no artigo, esses elementos decaem, e vão se perdendo, ou seja manter a aguá por mais tempo, faz com que eles se percam. Assim, quando a água chega da rede, no caso controle, que não é uma ambiente “verde”, esse decaimento demora mais, já no ambientes mais “verdes”, como a rotatividade da água é mais lenta, a estagnação da água faz esses desinfectantes irem embora.

Outra observação foi a maior quantidade de bactérias que podem causar doenças, devido ao maior tempo para a rotatividade da água. Se a gente lembrar que o crescimento das espécies, mesmo o crescimento logístico, no inicio, quando o ambiente está vazio, tem um aumento exponencial, isso é preocupante, ou seja a menor rotatividade da mais tempo para o crescimento exponencial ocorrer, e isso junto a outra característica, é complicado.

É um artigo muito legal, porque levanta uma ideia que está fora do que comumente pensamos. Pessoalmente, eu ja disse que acho muito legal essas tecnologias verdes, mas do ponto de vista de saúde publica, isso tem que ser melhor estudado a longo prazo. Veja que um problema de saúde publica devido a uma onda verde seria lenta. Mas somente conhecimento pode nos deixar preparados para esses problemas.

Além do mais, como é comentado no artigo, isso não é nenhum impedimento para a disseminação de tecnologias verdes. Medidas simples como o estudo, revisão e quem sabe algum tipo de mudança nas práticas de tratamento da água pode resolver. Devem haver substancias, compostos, que tem uma capacidade de permanência maior na água, mantendo a eficiência desinfectante, e mesmo alguma pratica a ser adotada para caixas de água, ou sistemas de armazenar água, para manter quantidades satisfatórias desses compostos para a ação desinfectante.

Esse artigo tem cara que pode virar noticia para pessoas reclamarem desse tipo de politica publica verde, como na frança onde telhados verdes são obrigatórios em novos prédios, mas o próprio artigo ja canta a bola para possíveis soluções, sendo importante mais estudos para avaliar melhor esse impacto, e o quão genérico ele é, dependendo do clima dos países, locais de relevância.

Outra coisa, a parte, sobre o método, é o interessante uso de pcr para identificar a quantificar a presença de bactérias. Ele faz pcr a partir da água coletada, amostra de água, com primers específicos para algumas espécies e um primer genérico para quantificar o total de bactérias, e consegue contar a quantidade de bactérias.

Bem é isso ai, uma quase resenha de artigo para lembrar dele depois, essa informação pode ser útil um dia para discutir algo. Se eu escrevi alguma bobeira, algo errado, deixe um comentário corrigindo ou mande um e-mail.

Referência:

William J. Rhoads, Amy Prudena and Marc A. Edwards 2016 – Survey of green building water systems reveals elevated water age and water quality concerns. Environ. Sci.: Water Res. Technol. 2 164-173

1
### No code

Uma definição de conhecimento.

As vezes, nesse mundo de testes estatísticos, eu mesmo fico perdido, no que estamos fazendo, onde estamos querendo chegar. Mas podemos concordar que estamos atrás de conhecimento. Mas essa é uma palavra complicada. Via de regra, analisamos dados atrás de valores de parâmetros, testando hipóteses para saber se são “verdadeiras” (temos varias entrelinhas aqui também), mas sabemos que a verdade suprema nunca estará disponível.

Conhecimento, o que é conhecimento?

Uma definição boa é a de Platão no Theaetetus, Theaetetus era um matemático grego, que foi discutir com Sócrates sobre a definição de conhecimento, e essa discussão foi transcrita por pelo Platão. Sócrates devia ser um cara muito interessante para conversar, porque mesmo sem ter escrito nada, todo mundo já ouviu falar sobre ele via Platão ou Aristóteles. Tudo certo, mas não falamos a definição dele ainda.

A definição dele é que conhecimento é uma crença verdadeira e justificada.

Essa frase sozinha assim é difícil de engolir, mas podemos pensar um pouco mais sobre o caso.

Imagine que podemos colocar todas as ideias num plano, como um phase-plane, são todas as assertivas possíveis de serem feitas, todas as hipóteses que existem, apesar de colocar como pontinhos, pensem infinitos pontinhos.

01

Ok, apesar de essas serem todas as ideias, todas as hipóteses, a gente só pensou em algumas, quero dizer, ninguém pensou em todas as hipóteses que existem em uma ciência, senão era só sair testando elas sistematicamente, faz parte da atividade de fazer ciência pensar em hipóteses, pensar nessas ideias.

O que estou dizendo é que existe um conjunto de ideias que já pensamos, e conforme vamos pensando, vamos adicionando mais ideias a esse conjunto, mais ou menos como estabelecer um conjunto dentro dessas possibilidades.

02

Beleza, então temos o nosso conjunto de ideias que já pensamos, que são, nas palavras de Sócrates, nossas crenças. São todas as ideias dentro desse circulo vermelho. Mas não é porque a gente pensa que algo está correto, a gente já viu ideias como a de Larmark, mesmo como Darwin pensou que as características eram passadas para as próximas gerações, eram ideias mas estava erradas. Então dentro desse conjunto ae, existe as ideias que estão erradas e as ideias que estão certas, que são verdadeiras, assim como fizemos com nossas crenças, podemos separar as ideias verdadeiras, a verdade.

03

Certo, então temos em azul nossa visão de verdade agora, são as ideias de verdade. Mas onde fica entra o conhecimento nisso tudo?
Veja que se olharmos o que é verdade e as nossas ideias

04

Agora é simples, conhecimento é crença verdadeira e justifica. Logo, conhecimento é a intersecção entre esses dois conjuntos. Mas como a gente sempre comenta nas analises de dados, a gente nunca tem acesso a saber a verdade, a gente estima apenas. Então não da para saber as bordas exatas da verdade ali. Mas para as nossas ideias, nos sabemos as bordas, já que pessoas continuam empurrando elas (as bordas), para adicionar mais ideias, e somos em geral empiricistas, cientistas empíricos, nos coletamos dados para justificar as ideias, para definir elas como do conjunto de verdades ou não. Veja que um monte de ideia que temos está fora do conjunto de verdades.

E é isso, conhecimento e então uma crença verdadeira e justificada.

05

E se alguém já viu essa figura nos livros, agora da para entender ela melhor.

É claro que uma definição que é do tempo da Grécia antiga, foi contestada várias vezes, alias umas das mais legais que eu acho é a critica do Gettier, conhecida como problema de Gettier. So a historia do Gettier ja é massa o suficiente, o cara que ficou famoso publicando um paper de 3 páginas, por pressão dos colegas e da universidade, e com um único paper de 3 páginas, outras caras escreveram livros para explicar a ideia do paper. Mas ele faz uma crítica no sentido de que correlação não implica em causa, ou seja, além da crença ter que ser justificada (com dados por exemplo), precisamos saber a causa para ela, ou não temos conhecimento.

É legal pelo menos pensar um pouquinho nessas coisas, porque pode ficar mais claro, o que fazemos todos os dias, ao tentar aprender algo, estamos buscando conhecimento verdadeiro e justificado, e essas definições dificilmente aparecem em disciplinas convencionais que fazemos, normalmente isso ta nas entrelinhas, que todo mundo acha que a gente sabe, automaticamente.

Bem é isso ai, o script é so como desenhar círculos e a interseção deles, bem sofrido pra mim fazer isso alias, e se eu escrevi alguma bobeira, algo errado, deixe um comentário corrigindo ou mande um e-mail.

Referência:

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
###Desenhando dois circulos
raio1 <- 1
raio2 <- 1
theta <- seq(0, 2 * pi, length = 200)
 
a<-c(0.9,1)
b<-c(2.1,1)
 
circ_a<-data.frame(x=a[1]+raio1 * cos(theta),y=a[2]+raio1 * sin(theta))
circ_b<-data.frame(x=b[1]+raio2 * cos(theta),y=b[2]+raio2 * sin(theta))
 
###Selecionando pontos que compoem metade de cada circulo
indice<-(theta>=0 & theta <=0.5*pi) | (theta>=1.5*pi & theta<=2*pi)
 
 
##ponto de intersecao
###http://mathworld.wolfram.com/Circle-CircleIntersection.html
e = b[1] - a[1]
f = b[2] - a[2]
p = sqrt(e^2 + f^2)
k = (p^2 + raio1^2 - raio2^2)/(2*p)
 
##ponto superior
x1 = a[1] + e*k/p - (f/p)*sqrt(raio1^2 - k^2)
y1 = a[2] + f*k/p + (e/p)*sqrt(raio1^2 - k^2)
 
##pronto inferior
x2 = a[1] + e*k/p + (f/p)*sqrt(raio1^2 - k^2)
y2 = a[2] + f*k/p - (e/p)*sqrt(raio1^2 - k^2)
 
###
poligono<-rbind(circ_a[indice & circ_a[,2]<y1 & circ_a[,2]>y2,][31:60,],
                circ_a[indice & circ_a[,2]<y1 & circ_a[,2]>y2,][1:30,],
                circ_b[!indice & circ_b[,2]<y1 & circ_b[,2]>y2,])
 
 
 
jpeg("01.jpg")
plot(0,0,type="n",xlim=c(-1,4),ylim=c(-1,3),bty="n",xlab="",ylab="",main="Ideias")
points(runif(100,-1,4),runif(100,-1,3),pch=19)
dev.off()
 
jpeg("02.jpg")
plot(0,0,type="n",xlim=c(-1,4),ylim=c(-1,3),bty="n",xlab="",ylab="",main="Ideias")
points(runif(100,-1,4),runif(100,-1,3),pch=19)
points(circ_a,type="l",col="red",lwd=3)
dev.off()
 
 
jpeg("03.jpg")
plot(0,0,type="n",xlim=c(-1,4),ylim=c(-1,3),bty="n",xlab="",ylab="",main="Ideias")
points(runif(100,-1,4),runif(100,-1,3),pch=19)
points(circ_b,type="l",col="blue",lwd=3)
dev.off()
 
jpeg("04.jpg")
plot(0,0,type="n",xlim=c(-1,4),ylim=c(-1,3),bty="n",xlab="",ylab="",main="Ideias")
points(runif(100,-1,4),runif(100,-1,3),pch=19)
points(circ_a,type="l",col="red",lwd=3)
points(circ_b,type="l",col="blue",lwd=3)
dev.off()
 
jpeg("05.jpg")
plot(0,0,type="n",xlim=c(-1,4),ylim=c(-1,3),bty="n",xlab="",ylab="",main="Ideias")
polygon(circ_a,col="red")
polygon(circ_b,col="blue")
polygon(poligono,col="yellow")
legend("topright",col=c("red","blue","yellow"),legend=c("Teorias","Verdade","Conhecimento"),pch=19,bty="n")
dev.off()

The Man Who Knew Infinity

A muito tempo atrás, eu postei uma frase famosa do geneticista G. H. Hardy aqui.

Não é que o cara do Equilíbrio de Hardy-Weinberg está num filme, como o professor do Srinivasa Ramanujan Iyengar, um cara muito bom que ele achou perdido pela vida e pegou como orientado.

O filme é o seguinte:

The Man Who Knew Infinity

Fica a dica para o fim de semana.

1
2
 
print("Sem código hoje!")