Como as estatísticas estão sendo aplicadas na ciência da computação para avaliar a precisão nas alegações de pesquisa?

8

Percebi na minha curta vida acadêmica que muitos trabalhos publicados em nossa área às vezes não têm muito rigor em relação às estatísticas. Isso não é apenas uma suposição; Eu ouvi professores dizerem o mesmo.

Por exemplo, nas disciplinas de CS, vejo trabalhos sendo publicados alegando que a metodologia X foi observada como eficaz e isso é comprovado pela ANOVA e ANCOVA; no entanto, não vejo referências para outros pesquisadores que avaliam que as restrições necessárias foram observadas. Parece um pouco assim que algumas 'funções e nomes complexos' aparecem, e isso mostra que o pesquisador está usando algum método e abordagem altamente credível que 'ele deve saber o que está fazendo e tudo bem se ele não descrever as restrições' , digamos, para essa distribuição ou abordagem, para que a comunidade possa avaliá-la.

Às vezes, existem desculpas para justificar a hipótese com um tamanho de amostra tão pequeno.

Minha pergunta aqui é, assim, colocada como estudante de disciplinas de CS como aspirante a aprender mais sobre estatística: Como os cientistas da computação abordam a estatística?

Esta pergunta pode parecer que estou perguntando o que já expliquei, mas essa é a minha opinião . Eu posso estar errado, ou posso estar me concentrando em um grupo de praticantes, enquanto outros grupos de pesquisadores de CS podem estar fazendo outra coisa que segue as melhores práticas em relação ao rigor estatístico.

Tão especificamente, o que eu quero é "Nossa área é ou não é estatística devido aos fatos apresentados (exemplo de artigos, livros ou outro artigo de discussão sobre isso são bons)". A resposta do @Patrick está mais próxima disso.

Oeufcoque Penteano
fonte
Informe-me se minha resposta não for exatamente o que você estava procurando ... Posso encontrar alguns exemplos, se desejar, mas parece que você já tem muitos. Além disso, a menos que você tenha acesso aos procedimentos, pode ser difícil apresentar links para os documentos.
precisa saber é o seguinte
Eu tenho acesso às bibliotecas digitais IEEE e ACM, os exemplos também seriam muito bem-vindos em sua postagem, eu poderia usá-los mais tarde, quando eu tiver meu doutorado para mostrar aos alunos que acabo aconselhando bons e maus exemplos sobre esse ponto. E sim, esse é o esporte de opinião e afirmação que eu estava procurando.
Oeufcoque Penteano
Observe que grandes partes da ciência da computação não são empíricas e, portanto, não (ab) usam estatísticas. Em uma nota sarcástica, o pessoal de engenharia de software é "conhecido" por escrever muito e dizer pouco (de relevância). O primeiro passo seria aprender estatística; alguns dos aspirantes a pesquisadores de engenharia de software que conheço já fizeram um curso ou qualquer coisa sobre estatística.
Raphael
Bom ponto. Estou acostumado a ouvir isso também. O que seria considerado a seguir?
Oeufcoque Penteano

Respostas:

11

Como estudante de graduação em ciência da computação, que tem exposição a pesquisas em outras áreas que não a ciência da computação, e cujo grupo de pesquisa trabalha em uma área da ciência da computação onde a estatística pode ser aplicada frutuosamente, posso oferecer minha experiência; sua milhagem pode variar.

Em geral, mesmo as pesquisas científicas mais bem-intencionadas podem deixar de aplicar rigorosamente a análise estatística aos resultados, e é minha experiência que isso nem sempre impede que artigos que incluam resultados tão mal analisados ​​sejam aceitos para publicação. A área em que meu grupo opera é principalmente em computação distribuída e arquitetura de computadores de alto desempenho. Freqüentemente, a pesquisa envolve projetos experimentais cujo desempenho não pode ser facilmente compreendido analiticamente nos detalhes necessários. Como tal, resultados empíricos são frequentemente usados ​​como evidência para reivindicações.

Claramente, os experimentos devem ser planejados - e os resultados analisados ​​- de forma a fornecer certa confiança de que os resultados são estatisticamente significativos. Na maioria das vezes, isso não é feito, mesmo em alguns dos locais mais importantes. Quando a análise estatística é aplicada, quase nunca é rigorosa em sentido significativo; o máximo que se vê (e fica feliz em vê-lo!) é que um experimento foi repetido n vezes, para alguns n escolhidos arbitrariamente , onde normalmente1<n<5. A seleção de barras de erro (se houver alguma indicada) parece ser principalmente uma questão de preferência ou gosto pessoal.

Em resumo, não, não é só você; e não é apenas engenharia de software. Em geral, com base na minha experiência, várias áreas da pesquisa em computação parecem errar por não fazer o suficiente. De fato, pode até ser prejudicial para a viabilidade de um artigo submetido insistir em considerações estatísticas. Isso não quer dizer que acho a situação satisfatória; longe disso. Mas essas são minhas impressões. Por exemplo, você pode dar uma olhada na seção 5 deste documento, que foi apresentada na Supercomputing 2011, uma das conferências de maior destaque na área de computação de alto desempenho. Especificamente, dê uma olhada em algumas discussões dos resultados na seção 5 e veja se você chega às mesmas conclusões que eu sobre o rigor da análise estatística dos resultados experimentais.

Em geral, essa falha pode ser sintomática de uma condição em algumas áreas da computação de publicar mais artigos em vez de menos, direcionar conferências em vez de periódicos e enfatizar o progresso incremental em vez de melhorias significativas e fundamentais na compreensão. Você pode consultar este artigo , que fornece informações valiosas nesse sentido.

Patrick87
fonte
Muito obrigado pela sua opinião. Fico feliz em ver que outras pessoas pensam dessa maneira. Espero que a comunidade tenha outras opiniões para compartilhar também ou com o mínimo de votos para expressar sua opinião. :) Pena que aqui ainda sou novato, então não posso votar em nada.
Oeufcoque Penteano
@OeufcoquePenteano Ei, todo mundo é um novato quando começa. Essa é uma boa pergunta e levanta um ponto interessante sobre uma possível falha nos padrões de pesquisa em computação. Acrescentarei à resposta em breve. Observe também que esta pergunta pode ser encerrada (mais cedo ou mais tarde, até) por outros membros, já que perguntas como essa (até agora) foram consideradas com alguma suspeita e, como esse site ainda está na versão beta, a comunidade ainda está tentando defina o que está dentro e fora de tópico aqui.
precisa saber é o seguinte
Mas a proposta inicial mencionada sobre ciência da computação e pesquisa e essa atende a esse critério, certo? Neste ponto, não há outros critérios mais refinados que tirariam essa questão do jogo, ou haveria? Ou existe outra família de pilhas que eu possa discutir sobre essa questão? Obrigado por seu elogio e atenção em responder isso :)
Oeufcoque Penteano
1
Quanto ao benchmarking de implementações de prova de conceito, luto para ver como o significado pode ser estabelecido. Não parece possível aplicar estatísticas aqui; fazer medições sozinho não é estatística. É importante que as medidas sejam interpretadas cuidadosamente e com perspectiva.
Raphael
4
@ Patrick87: Eu não quero defender a ignorância da significância estatística. Ele é difícil, no entanto. Aliás, faço benchmarks para minha tese de mestrado. Eu corro minhas coisas (muitas vezes) em duas a três máquinas e cuido de medir os tempos relevantes. O que mais eu posso fazer? Não posso nem começar a empregar estatísticas rigorosas porque não tenho idéia de qual possa ser um modelo estocástico para execução de algoritmos com vários núcleos com a JVM no meio.
Raphael
2

A engenharia de software inclui muitos recursos. Dois deles são fator humano e medida de qualidade.

Digamos que eu queira fazer uma análise de produtividade. A coleta de dados seria difícil de comparar com a análise de algoritmos, porque os dados são sobre produtividade humana. Além disso, a medida objetiva da qualidade não é fácil de alcançar.

10 linhas de código por dia para um sistema aviônico versus 150 linhas de código por dia para um aplicativo em smartphones, qual possui maior produtividade e qual é de melhor qualidade? E se os dois alegam que estão usando a mesma metodologia? Compará-los é comparar maçãs e laranjas.

Às vezes, é difícil obter uma medida precisa da eficiência do código. Por exemplo, eu coloquei um monte de variáveis ​​inúteis e muitas linhas de código para essas variáveis, digamos para fins de depuração. Isso aumenta minha produtividade no estágio de desenvolvimento. No final, removo todos eles e digo que melhoro meu código para obter eficiência.

Posteriormente, um pesquisador entra e realiza a análise de eficiência. Ele pode tratar o que precede como barulhos e se concentrar apenas nos resultados finais. Alguns pesquisadores prestam atenção aos ruídos. Então você verá artigos com conclusões diferentes.

A estatística deve ser uma ferramenta para ajudar os pesquisadores a encontrar as causas dos problemas. Muitos pesquisadores o usam para tirar conclusões. Isto é o que você observou.


Algumas observações acima podem levar o OP a pensar que sou contra o uso de estatísticas na engenharia de software. Nesse caso, gostaria de me esclarecer.

Eu não sou contra as estatísticas. A análise de estatísticas pode dizer que X pode ser verdadeiro. Mas, isso não deve ser o fim da pesquisa. A próxima tarefa deve ser descobrir se X é realmente verdadeiro e por quê. É disso que acredito que a ciência trata - de encontrar a verdade.

Se a engenharia de software pertence ou não à ciência da computação é outra questão.

scaaahu
fonte
Olá obrigado. Eu acho que você é capaz de comentar sua pergunta, então isso deve funcionar. Você quer dizer que os engenheiros de software podem ter mais informalidade nas estatísticas por causa das incertezas? Eu não sei. Veja, eu tenho um livro que recebi de um professor que ensina estatística para pesquisadores sociais. Acho que o lado deles é muito pior que o nosso, e eles ainda têm exemplos bem definidos em um livro para isso. Por que nós ainda temos código estático para tentar abordagens diferentes que não seriam capazes?
Oeufcoque Penteano
Gostaria de saber se esse é o espaço que geralmente ouço entre pesquisas e pessoas que realmente trabalham na indústria. Concordo com você que, para o desenvolvedor, você não está preocupado com estatísticas, mas com o funcionamento do programa. Mas, sim, o gerente de projeto precisaria prever se o desenvolvedor estaria atrasado ou não, talvez? Ainda considerando a parte da questão das "reivindicações de pesquisa", você acredita que a precisão nas estatísticas seria inútil, por exemplo, inferindo que poucas coisas que os desenvolvedores reduzem inconscientemente sua produtividade e satisfação no trabalho? Minha preocupação está aí.
Oeufcoque Penteano
Você quer dizer que a pesquisa experimental consideraria as pessoas como sujeitos? Eu estava falando sobre medir código para entender isso, não experimentar com pessoas. Desculpe, estou confuso apenas com sua última declaração. Mas, obrigado por suas idéias!
Oeufcoque Penteano
Tudo bem, eu entendo agora. Como sou novato nisso, não sabia que longas discussões sobre comentários seriam uma prática ruim, por isso vou parar nesse momento. Obrigado por seus insights. Esperarei mais alguns dias e elegerei uma resposta para ela (caso a pergunta não seja apropriada para esta comunidade e seja fechada).
Oeufcoque Penteano
Eu me pergunto se você está falando sobre os mesmos estatísticos. No público em geral, uma "estatística" geralmente é um monte de medidas. Em matemática e ciências, "estatística" é a estimativa dos parâmetros do modelo, dados / medições. Portanto, listar as contagens de LOC nem sequer é estatística no sentido científico; se você pode (com precisão) estimar o parâmetro "consumo médio de café do desenvolvedor" a partir dos dados do LOC, está fazendo estatísticas (relevantes); você encontrou eventos correlatos.
Raphael
1

A estatística é difícil e muitas vezes contra-intuitiva. Além disso, o desejo de "fazer mais um experimento" para ver se há um efeito (e parar quando ele aparece) é forte, especialmente se os experimentos são caros (tempo, trabalho, não apenas dinheiro). Lembre-se também de que publicar um artigo sobre como a experiência cuidadosamente montada, longa e dispendiosa, mostra que nenhuma relação estatisticamente significativa tende a ser impossível.

Especialmente na engenharia de software, existem muitas variáveis ​​incontroláveis. Para explicá-las, você precisará de muitas repetições do experimento e terá recursos para fazer uma ou, no máximo, duas.

vonbrand
fonte
-3

Minha pergunta aqui é, assim, colocada como estudante de disciplinas de CS como aspirante a aprender mais sobre estatística: Como os cientistas da computação abordam a estatística?

existem várias perguntas acima e algumas não iguais à pergunta do título e, de certa forma, essa pergunta tem uma premissa / equívoco subjacente com defeito sobre alguma falta de conexão entre estatísticas e CS. a questão geral é sobre a interface da ciência da computação e da estatística.

existe uma vasta sobreposição intensa em algumas áreas e é uma tendência crescente com o novo campo fortemente emergente de big data . em algumas escolas (por exemplo, mesmo nas escolas de elite "Ivy League"), o diploma de CS está fortemente associado aos departamentos de matemática e estatística e alguns têm um diploma conjunto . existe uma interconexão muito forte no campo CS / estatística do aprendizado de máquina . também o campo relativamente novo da bioinformática tem uma base estatística CS + muito forte.

existe todo um campo Estatísticas computacionais focadas na interface!

A estatística computacional, ou computação estatística, é a interface entre estatística e ciência da computação. É a área da ciência computacional (ou computação científica) específica para a ciência matemática da estatística. Essa área também está se desenvolvendo rapidamente, levando a pedidos de que um conceito mais amplo de computação deva ser ensinado como parte do ensino estatístico geral. [1]

sim, concordou, como apontado na pergunta, existem muitos trabalhos de CS que não usam estatística, incluindo situações (como a avaliação de experimentos empíricos) em que ela pode ser altamente aplicável e relevante, mas exatamente o mesmo pode ser dito de muitas outras campos científicos, por exemplo, matemática e campos ainda mais aplicados, como a física.

existem muitas maneiras de usar / aplicar estatísticas, algumas menos rigorosas que outras, e nem todos os contextos exigem a plena aplicação dos aspectos muito avançados das estatísticas. por exemplo, apenas executar várias experiências e plotar barras de erro para desvio estatístico (ou mesmo meramente médias! ) é um uso básico de estatística. usos mais rigorosos incluem testes de hipóteses, mas há uma observação geral no campo de que muitos artigos científicos não fazem testes rigorosos de hipóteses, mesmo onde isso possa ser aplicável.

Além disso, esta pergunta está marcada com . essa era minha especialidade, e era necessária uma aula de estatística para concluir esse curso na minha escola e obter um diploma de engenharia certificado (por exemplo, ABET ), esse é provavelmente o caso em muitas outras universidades. se se deseja princípios mais aplicados e rigorosos do tipo CS, como aplicações de estatística, pode-se seguir o caminho da "engenharia de software" na educação.

vzn
fonte
como apontado em outro comentário, usos de estatísticas, mesmo em TCS mais abstratas incluem análise de média caso complexidade e PAC aprendendo etc
vzn
1
A análise de complexidade de caso médio não usa estatísticas. Estocástico, certamente, mas isso é outra coisa.
Raphael
discordo fortemente! ele claramente utiliza conceitos estatísticos fundamentais / fundamentais, mas talvez não é ensinado que ele faz! as visões acadêmicas dos campos tendem a ser compartimentadas e refletidas aqui! IMHO qualquer ref para a distribuição de insumos etc é , obviamente, uma invocação de conceitos estatísticos ...
vzn