Aplicando o conhecimento de forma simples e auto-explicativa.

domingo, 5 de dezembro de 2010

Quer ganhar na Mega-Sena? Pergunte-me como!

Este post surgiu devido as diversas críticas nos almoços, onde todos meu colegas de mundo corporativo tentam incansavelmente ganhar na Mega-Sena e eu tendo convencê-los a não gastar o seu dinheiro.
O sistema de jogo da Mega-Sena funciona da seguinte maneira: Você adquire um cartão com 60 (sessenta) números e pode escolher entre 6 (seis) a 15 (quinze) deste cartão, se acertar seis desse números, pronto você está milionário. A primeira questão é que acertar seis números em sessenta (com apenas seis marcações) não é exatamente trivial. O custo de marcar apenas seis números é de R$2,00. Desta forma você tem seis maneiras de escolher seis números, ou seja, uma combinação de 6 em 6:
Logo, na verdade vc tem uma chance.


E essa seqüência deve ser selecionada em um universo de sessenta números,
Logo, mais de 50 milhões de possibilidades.


É isso aí! Quando você marca seis números em um universo de sessenta estabelece uma única seqüência dentre 50.063.860 possíveis. Cada uma tem um custo de R$2,00, que é o preço de um jogo.

Ao marcar 7 (sete) números o número de seqüencias aumenta. Dos sete números selecionados, precisa-se acertar seis, logo é uma combinação de sete números em seis.
  
Que gera sete seqüencias. Se antes existia apenas uma chance de ganhar,  agora existem 7.  Para isso você vai pagar R$14,00. Lembrando que o custo por chance (jogo) é de R$2,00.

Para 8 números , o jogo custa R$56,00. E assim por diante até 15 números, o máximo permitido por cartão.

Esta tabela só exibe até 10 marcações, até 15 números são permitidos por cartão.









Então uma boa estratégia para ganhar na Mega-Sena é percorrer todas as seqüências possíveis. Isso requereria R$ 100.127.720,00 (mais de 100 milhões de reais).


Ou seja, quando o prêmio acumular em um valor superior a este (o que acho que nunca aconteceu). Basta conseguir um empréstimo de 100 milhões (Risos), vamos arredondar para simplificar. Então marcar todas as seqüências possíveis. O delta é o seu ganho.

Obs 1: Cuidado para não marcar a mesma seqüência duas vezes!
Obs 2: Reze para não aparecer nenhum ganhador misterioso! Pois se isto acontecer você precisará dividir seu prêmio...

Este post foi apenas uma brincadeira. Não acho que quem curte jogar na Mega-Sena vai parar por causa disto, pois como já ouvi de certas pessoas, "Mega-Sena não tem haver com probabilidades e sim como o sonho..."

sábado, 20 de novembro de 2010

Percentual, Regressão Linear, Representatividade: indicadores do mundo coorporativo

Este é meu primeiro post com um foco mais no dia a dia do mundo coorporativo. Existem muitos termos referentes a indicadores, um muito usado é o termo representatividade. Normalmente usado para medir a taxa de variação entre duas variáveis, ou seja, a relação descrita entre ambas. Esta variação é comumente representada através da forma percentual.

Na prática o que ocorre é exatamente o seguinte: toma-se a soma variável de interesse sobre a soma variável base, ou quando se dispõe apenas das médias amostrais, faz-se o mesmo com estas, note que isto na verdade é a mesma coisa.

O que passa muitas vezes desapercebido é que na verdade o que se está fazendo é ajustar um modelo de regressão linear simples passando pela origem e isto tem algumas implicações:

  • O intercepto esta sendo retirado do modelo a força, ou seja, não necessariamente seu modelo passa pela origem
  • Podem existir mais variáveis que expliquem a variável resposta, como foram excluídos, o intercepto pode incorporar isso, como este foi também excluído a "taxa" de variação pode incorporar isso.
  • Não se tem nenhuma informação de confiabilidade sobre a medida obtida.
Devem existir muitas outras consequencias que me fogem a mente neste momento.

Em suma a medida entre as variáveis tem grandes chances de ser equivocada e com isso as decisões tomadas também.

Vou ilustrar este problema de forma prática com um exemplo de cunho financeiro. Imagine que uma diretoria deseje saber qual a parte da sua  receita total é proveniente da receita de novas vendas, para um determinado mês,  considerando que parte da receita total pode ser proveniente de outras variáveis, como por exemplo, investimentos existentes. 

A ideia por de trás deste exemplo é que parte da receita não é proveniente exclusivamente de vendas, ou seja zero de vendas não implica em zero de receita.



 A direita é possível ver a distribuição dos dados por receita de vendas (R$ Milhões).



 A seguir a distribuição de Receita Total.

 
De acordo com algumas práticas do mundo corporativo, uma das soluções para determinar a relação Receita Total por Receita de Vendas seria tomar a razão das médias. Média da Receita de Total R$ 23,89 Milhões pela média da Receita Vendas R$ 18,33 Milhões. A razão é de 1,30, logo a conclusão é de que Vendas é responsável por um aumento de 30% da Receita Total.










Eu não compartilho com este tipo de prática para inferência. A seguir um gráfico de dispersão entre as duas Receitas, tendo como variável independente Receita de Vendas e Variável dependente Receita Total. Neste Mesmo gráfico realizei um ajuste do modelo linear simples passando pela origem, seguindo a ideia apresentada anteriormente, e um modelo linear com intercepto, ambos via mínimos quadrados.


No gráfico de dispersão temos um ajuste linear sem intercepto (linha verde), um ajuste com intercepto (linha vermelha), intervalos com 95% de confiança para o ajuste com intercepto (linha vermelha tracejada) e as linhas densas escuras marcam o ponto médio entre as duas variáveis. 
O valor estimado para o modelo sem intercepto apresenta um beta de 1,3 igual ao resultado anterior. O modelo com intercepto tem beta0 de 2,59 e beta1 de 1,17, ou seja,  a influência  da referente a Receita de Vendas sobre a Receita Total é de 17%, onde o intercepto esta incorporando outra fonte de variação não incluída no modelo.

A situação tratada pela ótica de um modelo sem intercepto, linha verde, fica mais grave para casos extremos, onde o intervalo com 95% de confiança do modelo com intercepto, linhas tracejadas vermelhas, não contém o modelo simples.

Para quantificar o erro de estimação, imagine que desaje-se saber o quanto em média será a receita Total, uma vez que a Receita de Vendas é de: R$ 12 Milhões. Pelo modelo sem intercepto tempos 15,63 Milhões, pelo modelo com intercepto nossa expectativa é de 16,64 Milhões, uma diferença de aproximadamente 1 Milhão.

FIKDIK (Fica a Dica), na hora de realizar uma estimativa da relação causa e efeito entre variáveis, use um modelo de regressão;  inclua todas as variáveis que expliquem a variável alvo e verifique se todas as hipóteses são atendidas.

terça-feira, 9 de novembro de 2010

Taxa de Abandono em Contact Centers - O desafio da estimativa

A área de planejamento de tráfego é de extrema importância para as empresas de Contact Centers, pois tem como desafio dimensionar adequadamente a quantidade de recursos (Capacity Planning) para atender a demanda prevista (forecast) dado um desempenho de qualidade esperado (Nível de Serviço) e uma produtividade que permita fazer o negócio rentável.

O Nível de Serviço é a probabilidade de atender um número de indivíduos, em um determinado período de tempo, e no mercado de Contact Center é utilizada como um indicador de qualidade, podendo ser usado percentualmente. Por exemplo, uma central de atendimento pode ter como meta atender 80% das chamadas recebidas em até 20 segundos, ou seja, 80% dos clientes deverão ser atendidos imediatamente ou aguardar até no máximo 20 segundos para serem atendidos.

A partir dos conceitos estabelecidos através da Teoria das Filas definiu-se uma equação que permite estimar o Nível de Serviço de uma central de atendimento, dado certos parâmetros: tempo médio de atendimento, quantidade de agentes e volume de chamadas oferecidas ao sistema. (Equação de Erlang -http://www.erlang.com.br/erlangc.asp).

A equação de Erlang não contempla uma variável muito importante para o negócio de Contact Center, a Taxa de Abandono. Cada ligação pode resultar em uma venda, ou em uma recuperação de crédito, ou mesmo apenas corrigir um serviço mal prestado que pode fazer com o cliente cancele o serviço. A taxa de abandono implica em perda de negócio para a empresa.

Então o que faremos neste post é estimar qual a provável taxa de abandono em uma central de atendimento.

Observando os resultados de desempenho, percebeu-se que havia uma relação entre o indicador de nível de serviço (razão entre a quantidade de chamadas atendidas até o tempo limite de fila e a quantidade de chamadas oferecidas ao sistema) e a taxa de abandono, em função disso, decidi usar um modelo de regressão.

O Gráfico abaixo apresenta o resultado da dispersão entre nível de serviço e taxa de abandono. A amostra contempla 270 dias de observação.

Utilizando o Minitab®, ajustei um modelo não linear, polinomial de ordem 2, e obtive os resultados conforme gráfico e estatísticas a seguir:

De acordo com modelo, para um nível de serviço de 80% em 20 segundos, a expectativa é de 1,81% de chamadas abandonadas. Com este resultado, poderemos estimar, por exemplo, a possível perda de receita por não atender estas chamadas. Isto permite a empresa estimar qual a meta ideal de nível de serviço que equilibre custo e receita.

Um ponto a ser considerado no modelo é a heterocedasticidade. Para níveis de serviço considerados ruins (do ponto de vista do negócio), a variação do resultado esperado é bem maior. Contudo, isso não representa um problema. A necessidade para o negócio não é prever a taxa de abandono e sim estimar o comportamento médio do modelo.

terça-feira, 14 de setembro de 2010

Filas, Supermecados, Lojas de Conveniências e a Teoria das Filas

Apesar da demora em fim terminei este post. A principal motivação para o mesmo foi uma de minhas idas à um supermercado da Zona Sul do Rio de Janeiro, cidade a qual resido. O supermercado em questão sempre operou com filas em paralelo, indo contra a Teoria das filas (para quem preferir Processos estocásticos). Um dia desses ao ir comprar meu pãozinho tomei um susto. O sistema de fila havia sido reorganizado para um sistema FIFO - First In, First Out (FIFS - First In, First Served). Ou seja, uma única fila, onde os primeiros da filas são atendidos pelos caixas disponíveis, assim como é feito em lojas de departamentos e bancos. O que teoricamente é melhor do ponto de vista “ótimo”, pois é possível atender mais pessoas assim. Então resolvi criar uma simulação simples para comparar o atendimento em uma sistema de fila única e um com filas em paralelo.
Vamos lá. Primeiro algumas hipóteses: Vamos começar simplificando o ambiente, ao invés de um supermercado vamos analisar um mercadinho com dois guichês. Imagine também que, se existir uma situação de fila, existe espaço ilimitado, pois a fila pode ficar no meio da rua (e todos os clientes são muito honestos. Ninguém roubaria o dono do mercadinho indo embora com o produto sem pagar, a final de contas estamos no Rio de Janeiro onde só existe gente boa). Para os tempos de chegadas, entre os clientes, vou utilizar uma distribuição exponencial, e assumir que a taxa de chegada é 1 / min (1 pessoa a cada 1 minutos). A taxa de chegada será mantida constante ao longo de um “turno de trabalho”, vou assumir 8 horas trabalho em um turno. Não seria muito difícil considerar uma situação com taxas de chegadas variáveis ao longo do dia, mas não obrigado, já tive muito trabalho com isso.
·         Taxa entre chegadas λ = 1 / min
·         Turno de trabalho 8 horas corridas

 O primeiro teste foi gerar um cenário onde um único caixa atende 1 cliente a cada 2 minutos,   μ = 1 / 2 min. Dentro deste período verifiquei todos os clientes que foram atendidos, então repeti a simulação 1000 vezes e obtive o histograma a esquerda com a distribuição da quantidade de clientes atendidos, e em média foram atendidos 238 clientes, representado pela linha densa cinza escura no histograma.

O cenário apresentado será modificado de duas formas. A primeira aumentando o número de atendentes, a partir de um modelo FIFO (FIFS), e o segundo é usando um modelo com duas filas em paralelo e com dois caixas. 

A simulação com  uma única fila e dois caixas pode ser representada da mesma forma que o caso anterior, também com um turno de 8 horas, apenas alterando a taxa de atendimento do  caixa  de μ = 1 / 2 min para   μ = 2 / 2 min (que igual a 1 atendimento/min), ou seja, o outro caixa recebeu o mesmo treinamento e possui as mesmas características, inclusive a mesma capacidade de atendimento μ = 1 / 2 min.O efeito no atendimento geral  é que a velocidade dobre, logo espera-se dobrar o número de clientes atendidos. O número esperado de clientes atendidos foi de 456 e a simulação está representada na figura ao lado a partir do histograma verde.Também foram realizadas 1000 iterações.

No terceiro cenário,  a fila foi dividida em duas. A simulação também tem como base o primeiro caso. Cada fila é analisada separadamete,  dividindo-se a taxa de pessoas que vão a cada caixa, λ = 1 / 2 min., também em um turno de 8 horas, com uma taxa de atendimento de μ = 1 / 2 min (O caixa tem sua capacidade individual de atendimento mantida), e ao final da simulação basta dobrar os resultados obtidos, criando o efeito das duas filas separadas. Este cenário é visto no histograma vermelho ao lado. Mais uma vez com 1000 iterações. Como pôde ser visto, a quantidade média de pessoas atendidas foi de 444, menor  do que na simulação com fila única.



O porquê disto é simples de ser explicado. Quando se tem duas filas cria-se a possibilidade de ociosidade em um dos caixas, enquanto o outro trabalha. Isto não ocorre em um sistema de fila única, pois em tese os caixas nunca param de trabalhar. Esta é a explicação do porquê de bancos e lojas de departamentos operarem em sistema de fila única. 

Porém as decisões nem sempre levam em consideração simplesmente a "matemática", e sim a percepção da realidade que o seu cliente tem, ou o que é melhor para o seu funcionário.  A prova disto é que o sistema de fila única não foi bem recebido pelos clientes do supermercado que frequento e as filas em paralelo foram novamente restauradas e agora tenho que esperar mais para comprar meu pãozinho.



domingo, 8 de agosto de 2010

Pesquisa Intenção de Voto e o Empate Técnico

Sendo este ano de eleições resolvi escrever sobre um tema correlato, a pesquisa de opinião  Vamos entender um pouco sobre pesquisas de opinão e o que é exatamente um empate técnico.

É de domínio público o fato de que uma amostragem bem realizada pode trazer informações muito relevantes, sobre uma população. Neste contexto surge o fator incerteza nas pesquisas. Uma pesquisa tem como "kick off"  a definição de um planejamento amostral bem feito. Existem diversos planejamentos amostrais, normalmente para pesquisas de intenção de voto usa-se amostragem Estratificada ,ou por conglomerados, ou por cotas, sendo esta última a mais comum.

De acordo com a pesquisa realizada no dia 06/08/2010, diponível no site ultimosegundo, onde é possível comparar resultados dos principais institutos, IBOPE, Data Folha, Sensus e Vox Populi/Band/IG. IBOPE e Vox Populi, apontam  Dilma com 41% das intensões de votos, enquanto Serra tem 33%.  Para esse post vou assumir estes resultados para analisar.

O que garante a margem de erro é o tipo de planejamento amostral, e em função disso alguns parâmetros adotados como premissa, mas o fator determinante é o tamanho da amostra n.

Para  mostrar o efeito do tamanho da amostra em uma pesquisa, vou analisar os resultados de Dilma e Serra até criar um cenário onde eles estejam empatados tecnicamente, apenas devido ao tamanho da amostra. O grau de confiança adotado por mim foi de 95,00%  (Este é o valor padrão neste tipo de problema), considerando uma população de 190.000.000 de brasileiros. O Vox populi entrevistou 3.000 brasileiros, o que pelas minhas contas dá uma margem de erro de 1,78%. O erro apresntado pelo instituto foi 1,8%, logo parece que eles utilizaram amostragem aleatória simples, para estimar o erro. Note que, SE o planejamento amostral utilizado foi o de cotas, esta margem não é real.

Então criei um programinha no R-Project, para demostrar o efeito do tamanho da amostra., (agradecimento ao colega Bernardo Rangel Tura)
Primeiro usei os 3.000 entrevistados, veja o gráfico ao lado.
Nas extremidades de cada curva estão as margens de confiança, ou se preferir, os erros. com 3.000 entrevistados, o que importa para gente são as áreas  de dentro. O empate técnico acontece quando essas áreas se sobrepõe. Quando isso pode acontecer? Basicamente quando o número de entrevistados é muito baixo.

Na minha simulaçao reduzi o tamanho da amostra para 500 entrevistados, e se você acha isso pouco, exitem algumas pesquisas que utilizam uma amostra dessa magnitude, não de cunho eleitoral, pois essas tem um controle um pouco maior, pelo fato de serem registradas. Nosso gráfico fica assim com 500 entrevistados:
Mesmo com uma distância alta de 8 pontos percentuais, Dilma e Serra estariam empatados, do ponto de vista estatístico. O empate ocorre exatamente no retângulo gerado entre as duas curvas.

Uma curiosidade é que se aumentarmos a confiança de 95,00% para 99,00%, isso faz com que as áreas se encontrem mais rapidamente, logo o empate ocorre, mais rapidamente para um mesmo tamanho de amostra, isso porque uma confiança maior implica em um intervalo mais largo, logo provoca um erro  maior.



 



sábado, 17 de julho de 2010

R-Project



Quero inaugurar este blog falando de uma ferramenta fantástica, que faz parte da minha vida acadêmica e profissional há alguns anos, o R-Project, ou simplesmente R para os intimos. O R é um software de análises gratuíto, que pode ser baixado em http://www.r-project.org. Com ele é possível contruir gráficos de diversas formas e manipuar dados com muita facilidade, uma vez aprendido o código. O R é uma linguagem de programação, o que implica em uma curva de aprendizado um pouco lenta, comparando-o com soluções point and click e drag and drop. O ideal é ter algumas aulas introdutórias com alguém já conhecedor do assunto, para facilitar o aprendizado. Caso isso não seja possível existe muito material disponível na rede sobre o assunto, uma vantagem clara de softwares com distribuição gratuíta.

De grande valia para usuários brasileiros, é o grupo R_STAT, do yahoo groups, onde a troca de conhecimento é algo fora do normal. Alguns colaboradores/participantes são figuras certas, como o professor Paulo Justiano, da UFRP, os colegas Henrique Dallazuanna, Walmes Zeviani, Edson Lira, Mauro Sznelwar, entre outros, que sempre tiram minhas dúvidas. Além do R_STAT, existem as listas oficiais de discussão, que podem ser vistas em http://www.r-project.org/mail.html.

Não pense que por ser "free" o R é um software de baixa credibilidade, pelo contrário, ele possui o Regulatory Compliance and Validation Issues do FDA (Food and Drug Administration) e trabalha com os padrões IEEE (Institute of Electrical and Electronic Engineers).

Sem dúvida alguma a principal vantagens do R, são os algoritimos já implementados,  onde torna-se muito simples ajustar diversos modelos de regressão simultaneamente, e compará-los, mas é necessário o conhecimento sobre  o assunto. Ainda sobre modelos de regressão, é muito claro a vantagem em se fazer isso através  do R ao invés do Excel, por exemplo. Onde acaba-se gerando multiplas planilhas, o que complica a manipulação de dados ainda mais quando se deseja comparar multiplos modelos de regressão, são vários "Ctrl +c" e    "Ctrl +v", sem falar na precisão IEEE.

Alguns algoritmos implementados:
  • Redes Neurais,
  • Regressão Generalizada,
  • Maquina Vetor de Suporte,
  • Clusters,
  • Discriminates, Linear e Quadrática,
  • Séries Temporais,
  • Etc.
Esses são apenas os que me vem a cabeça neste momento, além das bibliotecas,  ou pacotes, como são conhecidos,  desenvolvidos pelos usuários. Esses pacotes precisam passar pela supervisão de uma equipe de colaboradores do R para que sejam validados.
Alguns nomes que fazem ou fizeram parte dos grupo de colaboradores: Douglas Bates, John Chambers, Peter Dalgaard, Seth Falcon, Robert Gentleman, Kurt Hornik, Stefano Iacus, Ross Ihaka, Friedrich Leisch, Thomas Lumley, Martin Maechler, Duncan Murdoch, Paul Murrell, Martyn Plummer, Brian Ripley, Deepayan Sarkar, Duncan Temple Lang , Luke Tierney, Simon Urbanek,  Valerio Aimale, Thomas Baier, Roger Bivand, Ben Bolker, David Brahm, Gran Brostrm, Patrick Burns, Vince Carey, Saikat DebRoy, Brian D'Urso, Lyndon Drake, Dirk Eddelbuettel, John Fox, Paul Gilbert, Torsten Hothorn, Robert King, Kjetil Kjernsmo, Philippe Lambert, Jan de Leeuw, Uwe Ligges, Jim Lindsey, Patrick Lindsey, Catherine Loader, Gordon Maclean, John Maindonald, David Meyer, Jens Oehlsch gel, Steve Oncley, Richard O'Keefe, Hubert Palme, José C. Pinheiro, Anthony Rossini, Jonathan Rougier, Günther Sawitzki, Bill Simpson, Gordon Smyth, Adrian Trapletti, Terry Therneau, Bill Venables, Gregory R. Warnes, Andreas Weingessel, Morten Welinder, Simon Wood, and Achim Zeileis, entre outros.

Após tantos elogios preciso dizer que nem tudo é prefeito. O R ainda sofre com a capacidade de tratar grandes bases de dados, isso porque ele aloca tudo na memoria RAM Existem maneiras de administrar, em parte, esse problema. Recentemente Bill Venables incluiu no CRAN do R o pacote SOAR, que auxilia este problema.  Acredito que mais cedo ou mais tarde isto será solucionado.  Mais uma vantagem é a integração com diversos tipos de software, desde Excel, Access, a diversos tipos de banco de dados. Em meu ambiente de trabalho eu tenho a feliz experiência de utilizá-lo, com os softwares citados e com um banco SQL server, a partir da biblioteca RODBC. Em postagens futuras vou apresentar exemplos de como usar esses pacotes.
Minha sugestão é que R seja utilizado em conjunto com um editor de texto, como o Tinn-R (é o que eu uso) , ou o bloco de notas, ou qualquer outro de sua escolha, a vantagem do primeiro é que,  por ter sido desenvolvido para o próprio R, ele colore as funções e os parâmetros, ficando mais fácil a utlização. 

A seguir seguem dois gráficos gerados a partir do R.




Para finalizar este primeiro post, um vídeo sobre regressão linear no R.

Este vídeo não foi produzido por mim e atribuo todos os créditos ao seu autor.