Este documento apresenta a terminologia básica para projetos de experimentos, incluindo variável resposta, fatores, níveis, replicação e interação. Também discute tipos de projetos experimentais como projetos simples, fatoriais completos e fatoriais fracionados, além de erros comuns na experimentação.
O documento apresenta os conceitos e tipos de projetos de experimentos, descrevendo como eles podem ser usados para comparar sistemas e algoritmos de forma quantitativa. Explica termos como fatores, níveis e replicação. Detalha os objetivos de um projeto de experimento e como ele pode ser usado para obter informações sobre o objeto de estudo com menor esforço. Apresenta exemplos de projetos fatoriais 22 e 23 para ilustrar a construção e análise de experimentos.
O documento discute conceitos de projeto de experimentos científicos, definindo termos como variável resposta, fatores, níveis, replicação e interação. Explica sobre objetivos de projeto experimental como obter maior informação com menor esforço e sobre erros comuns. Apresenta tipos de projetos como simples, fatorial completo e fracionado.
Este documento apresenta os conceitos básicos de projeto de experimentos em ciência da computação. Discute terminologia como variável resposta, fatores, níveis e replicação. Apresenta também tipos de projetos experimentais como projetos simples, fatoriais completos e fatoriais fracionados, destacando a importância de isolar os efeitos dos fatores e capturar possíveis interações entre eles.
1) O documento discute técnicas de projeto experimental para testar hipóteses, incluindo tipos de hipóteses, condições para inferência causal e ameaças à validade de experimentos.
2) É apresentado o exemplo do estudo da Google sobre satisfação do usuário com resultados de busca para ilustrar conceitos como controle de variáveis confundidoras.
3) O documento também discute desafios específicos de projetos experimentais em Ciência da Computação, como espaços amostrais complexos e expectativa de controle.
O documento discute conceitos de causalidade e abdução na pesquisa científica. Apresenta definições de causalidade e explica porque é importante identificar relações causais para explicar fenômenos e prever efeitos de ações. Também discute desafios em identificar causalidade em sistemas projetados e como correlação não é suficiente para inferir causalidade, sendo necessário controlar potenciais causas comuns.
O documento discute análise de desempenho de sistemas, abordando conceitos como métricas, parâmetros e fatores que afetam o desempenho, além de apresentar uma abordagem sistemática para análise de desempenho. Como estudo de caso, descreve a análise de desempenho de um sistema de dados georreplicados com diferentes modelos de consistência.
O documento descreve as atividades científicas realizadas por James Chadwick em fevereiro de 1932 que levaram à descoberta do nêutron. Chadwick realizou experimentos que confirmaram os resultados anteriores de Curie e Joliot e identificou uma nova partícula, o nêutron, que explicava as observações experimentais.
Este documento fornece uma breve introdução às técnicas de teste de software, descrevendo conceitos como:
- Casos de teste, que especificam entradas e saídas esperadas para testar o programa.
- Critérios de teste, como particionamento de equivalência e análise de valor limite, que guiam a geração sistemática de casos de teste.
- Teste funcional e estrutural, que se baseiam respectivamente na especificação e implementação do software.
O documento apresenta os conceitos e tipos de projetos de experimentos, descrevendo como eles podem ser usados para comparar sistemas e algoritmos de forma quantitativa. Explica termos como fatores, níveis e replicação. Detalha os objetivos de um projeto de experimento e como ele pode ser usado para obter informações sobre o objeto de estudo com menor esforço. Apresenta exemplos de projetos fatoriais 22 e 23 para ilustrar a construção e análise de experimentos.
O documento discute conceitos de projeto de experimentos científicos, definindo termos como variável resposta, fatores, níveis, replicação e interação. Explica sobre objetivos de projeto experimental como obter maior informação com menor esforço e sobre erros comuns. Apresenta tipos de projetos como simples, fatorial completo e fracionado.
Este documento apresenta os conceitos básicos de projeto de experimentos em ciência da computação. Discute terminologia como variável resposta, fatores, níveis e replicação. Apresenta também tipos de projetos experimentais como projetos simples, fatoriais completos e fatoriais fracionados, destacando a importância de isolar os efeitos dos fatores e capturar possíveis interações entre eles.
1) O documento discute técnicas de projeto experimental para testar hipóteses, incluindo tipos de hipóteses, condições para inferência causal e ameaças à validade de experimentos.
2) É apresentado o exemplo do estudo da Google sobre satisfação do usuário com resultados de busca para ilustrar conceitos como controle de variáveis confundidoras.
3) O documento também discute desafios específicos de projetos experimentais em Ciência da Computação, como espaços amostrais complexos e expectativa de controle.
O documento discute conceitos de causalidade e abdução na pesquisa científica. Apresenta definições de causalidade e explica porque é importante identificar relações causais para explicar fenômenos e prever efeitos de ações. Também discute desafios em identificar causalidade em sistemas projetados e como correlação não é suficiente para inferir causalidade, sendo necessário controlar potenciais causas comuns.
O documento discute análise de desempenho de sistemas, abordando conceitos como métricas, parâmetros e fatores que afetam o desempenho, além de apresentar uma abordagem sistemática para análise de desempenho. Como estudo de caso, descreve a análise de desempenho de um sistema de dados georreplicados com diferentes modelos de consistência.
O documento descreve as atividades científicas realizadas por James Chadwick em fevereiro de 1932 que levaram à descoberta do nêutron. Chadwick realizou experimentos que confirmaram os resultados anteriores de Curie e Joliot e identificou uma nova partícula, o nêutron, que explicava as observações experimentais.
Este documento fornece uma breve introdução às técnicas de teste de software, descrevendo conceitos como:
- Casos de teste, que especificam entradas e saídas esperadas para testar o programa.
- Critérios de teste, como particionamento de equivalência e análise de valor limite, que guiam a geração sistemática de casos de teste.
- Teste funcional e estrutural, que se baseiam respectivamente na especificação e implementação do software.
O documento fornece uma visão geral de técnicas e abordagens de teste de qualidade ágil, incluindo matrizes de teste, níveis de teste, tipos de teste comuns, técnicas de especificação e estrutura-baseadas, e abordagens como teste baseado em comportamento e risco. Ele também discute mitos comuns sobre teste e fornece referências adicionais.
O documento descreve o Método de Análise Hierárquica (AHP) para tomada de decisões e fornece um exemplo de sua aplicação para escolher a melhor solução para manter um servidor ligado de forma ininterrupta para um pesquisador. O método envolve estruturar critérios e alternativas em uma hierarquia, definir prioridades através de julgamentos paritários usando uma escala numérica, e calcular vetores de prioridade para identificar a alternativa ótima.
Introdução ao Teste de Software - Uma abordagem práticaFabrício Campos
Este documento apresenta uma introdução ao teste de software, abordando os principais conceitos e atividades envolvidas no processo de teste de software, como planejamento, execução e avaliação dos resultados.
dBest - Um Framework para Avaliação de Desempenho de Banco de Dados - SBBD 2011Lucas Lemos
O documento apresenta o framework dBest para avaliação de desempenho de bancos de dados. O dBest fornece suporte para todas as etapas do processo de teste, permite acompanhamento visual dos testes, coleta estatísticas e auxilia na análise dos resultados. Ele é multiplataforma, suporta múltiplos bancos de dados e benchmarks, e possibilita a inclusão de novos bancos de dados e benchmarks.
1. O documento discute testes de unidade, que testam componentes individuais de software para validar seu comportamento.
2. Testes de unidade testam métodos individuais e fornecem feedback rápido, documentação e validação do design.
3. Uma estrutura comum para testes de unidade envolve preparação, execução do método testado e asserções sobre os resultados.
O documento discute testes de unidade, definindo-os como testes de componentes individuais de software para validar se cada um está funcionando conforme projetado. Ele explica por que os testes são importantes, estruturas comuns de testes como Arrange-Act-Assert, boas práticas de testes e frameworks para auxiliar no desenvolvimento de testes.
O documento discute métricas e previsões, criticando o uso de estimativas. Ele apresenta métodos alternativos como amostragem, teoria das filas, teoria das restrições e simulação de Monte Carlo para prever métricas de fluxo e tempo de ciclo de forma mais precisa. O documento também discute como limitar variabilidade para melhorar a previsibilidade.
Método para análise e melhoria de processosJorge Covacs
O documento descreve o método PDCA (Plan-Do-Check-Act) para análise e melhoria de processos. O PDCA é um ciclo de melhoria contínua que envolve planejar mudanças, implementá-las, verificar os resultados e padronizar as melhorias. O documento explica cada etapa do PDCA e fornece ferramentas como diagramas de causa e efeito e matrizes de decisão para apoiar a análise e melhoria de processos.
Unidade 0: Visão geral sobre o método científicoAlexandre Duarte
1) O documento discute os princípios do método científico e da experimentação em ciência da computação.
2) É destacada a importância da experimentação para testar teorias e identificar falhas através de comparação com resultados experimentais.
3) São descritos os passos do processo experimental sistemático, incluindo definição de objetivos, métricas, parâmetros, execução e análise de experimentos.
Algoritmo de escalonamento Fuzzy Round RobinMarcos Castro
O documento descreve vários algoritmos de escalonamento de CPU, incluindo Round Robin. Propõe o uso da lógica fuzzy para aprimorar o algoritmo Round Robin, usando dois sistemas de inferência fuzzy para determinar o melhor tempo quantum e decidir sobre preempção de processos.
Trabalho realizado pelo aluno Rafael Sanches sobre teste de software explicando os passos necessários para realização de testes no desenvolvimento de software.
Workshop - Plano de Testes End to End com o Microsoft Test ManagerAlan Carlos
1) O documento discute planos de testes end-to-end com o Microsoft Test Manager, incluindo a criação de casos de testes funcionais, não funcionais e exploratórios.
2) Instruções detalhadas são fornecidas sobre como criar e gerenciar planos de testes, suítes de testes, casos de testes e bugs no Test Manager.
3) A gestão do laboratório de testes é abordada, incluindo a criação rápida de ambientes usando o AppController e a integração dos testes com o Laboratório
O documento apresenta uma disciplina sobre automatização de testes. Ele discute os problemas do processo de teste manual, ferramentas de teste como TestLink e Mantis, e como migrar casos de teste de um processo manual para essas ferramentas.
Aguiar utilizando monte carlo e reamostragem em estimativas 2008-11-04Agenor Barbosa
1) O documento introduz técnicas de estimativa utilizando Monte Carlo e reamostragem para lidar com a incerteza em parâmetros de entrada. 2) Dois exemplos ilustram como o Monte Carlo pode ser usado para simular variáveis aleatórias e avaliar o impacto da incerteza nos resultados. 3) A reamostragem é apresentada como uma alternativa ao Monte Carlo que não requer suposições sobre distribuições estatísticas.
Este documento fornece uma introdução aos testes de desempenho usando a ferramenta JMeter, discutindo estratégias de teste, o processo de teste, exemplos de melhorias identificadas em testes e dicas para executar testes de desempenho de forma eficaz.
O documento resume os principais conceitos e práticas do eXtreme Programming (XP), uma metodologia ágil de desenvolvimento de software que enfatiza a comunicação, feedback, simplicidade, respeito e coragem. O XP propõe doze práticas como programação pareada, testes automatizados, refatoração e integração contínua para entregar valor ao cliente de forma incremental.
O documento apresenta uma introdução ao teste de software, discutindo sua história, objetivos, processos, técnicas e ferramentas. Inclui tópicos como planejamento, projeto, execução e entrega de testes, níveis de teste, técnicas como caixa preta e branca e critérios como análise de valor limite e tabela de decisão. Por fim, fornece referências sobre o tema.
O documento apresenta os principais conceitos e práticas do Desenvolvimento Orientado a Testes (TDD). Resume os tópicos da agenda, incluindo introdução ao TDD, tipos de testes, exemplos práticos do processo red-green-refactor, desafios como onde começar e benefícios como design emergente e menor acoplamento.
O documento discute as dificuldades em fazer ciência. A teoria da evolução por seleção natural de Darwin unificou diversas áreas e foi considerada a melhor ideia já concebida. No entanto, fazer ciência é difícil devido à natureza imperfeita do conhecimento humano, vieses cognitivos de cientistas e limitações da organização da comunidade científica.
Aula 03 de disciplina de Metodologia da Pesquisa Científica do Programa de Pós-Graduação em Informática da UFPB. Nesta aula discutimos aspectos importantes na escolha de um projeto pesquisa.
O documento fornece uma visão geral de técnicas e abordagens de teste de qualidade ágil, incluindo matrizes de teste, níveis de teste, tipos de teste comuns, técnicas de especificação e estrutura-baseadas, e abordagens como teste baseado em comportamento e risco. Ele também discute mitos comuns sobre teste e fornece referências adicionais.
O documento descreve o Método de Análise Hierárquica (AHP) para tomada de decisões e fornece um exemplo de sua aplicação para escolher a melhor solução para manter um servidor ligado de forma ininterrupta para um pesquisador. O método envolve estruturar critérios e alternativas em uma hierarquia, definir prioridades através de julgamentos paritários usando uma escala numérica, e calcular vetores de prioridade para identificar a alternativa ótima.
Introdução ao Teste de Software - Uma abordagem práticaFabrício Campos
Este documento apresenta uma introdução ao teste de software, abordando os principais conceitos e atividades envolvidas no processo de teste de software, como planejamento, execução e avaliação dos resultados.
dBest - Um Framework para Avaliação de Desempenho de Banco de Dados - SBBD 2011Lucas Lemos
O documento apresenta o framework dBest para avaliação de desempenho de bancos de dados. O dBest fornece suporte para todas as etapas do processo de teste, permite acompanhamento visual dos testes, coleta estatísticas e auxilia na análise dos resultados. Ele é multiplataforma, suporta múltiplos bancos de dados e benchmarks, e possibilita a inclusão de novos bancos de dados e benchmarks.
1. O documento discute testes de unidade, que testam componentes individuais de software para validar seu comportamento.
2. Testes de unidade testam métodos individuais e fornecem feedback rápido, documentação e validação do design.
3. Uma estrutura comum para testes de unidade envolve preparação, execução do método testado e asserções sobre os resultados.
O documento discute testes de unidade, definindo-os como testes de componentes individuais de software para validar se cada um está funcionando conforme projetado. Ele explica por que os testes são importantes, estruturas comuns de testes como Arrange-Act-Assert, boas práticas de testes e frameworks para auxiliar no desenvolvimento de testes.
O documento discute métricas e previsões, criticando o uso de estimativas. Ele apresenta métodos alternativos como amostragem, teoria das filas, teoria das restrições e simulação de Monte Carlo para prever métricas de fluxo e tempo de ciclo de forma mais precisa. O documento também discute como limitar variabilidade para melhorar a previsibilidade.
Método para análise e melhoria de processosJorge Covacs
O documento descreve o método PDCA (Plan-Do-Check-Act) para análise e melhoria de processos. O PDCA é um ciclo de melhoria contínua que envolve planejar mudanças, implementá-las, verificar os resultados e padronizar as melhorias. O documento explica cada etapa do PDCA e fornece ferramentas como diagramas de causa e efeito e matrizes de decisão para apoiar a análise e melhoria de processos.
Unidade 0: Visão geral sobre o método científicoAlexandre Duarte
1) O documento discute os princípios do método científico e da experimentação em ciência da computação.
2) É destacada a importância da experimentação para testar teorias e identificar falhas através de comparação com resultados experimentais.
3) São descritos os passos do processo experimental sistemático, incluindo definição de objetivos, métricas, parâmetros, execução e análise de experimentos.
Algoritmo de escalonamento Fuzzy Round RobinMarcos Castro
O documento descreve vários algoritmos de escalonamento de CPU, incluindo Round Robin. Propõe o uso da lógica fuzzy para aprimorar o algoritmo Round Robin, usando dois sistemas de inferência fuzzy para determinar o melhor tempo quantum e decidir sobre preempção de processos.
Trabalho realizado pelo aluno Rafael Sanches sobre teste de software explicando os passos necessários para realização de testes no desenvolvimento de software.
Workshop - Plano de Testes End to End com o Microsoft Test ManagerAlan Carlos
1) O documento discute planos de testes end-to-end com o Microsoft Test Manager, incluindo a criação de casos de testes funcionais, não funcionais e exploratórios.
2) Instruções detalhadas são fornecidas sobre como criar e gerenciar planos de testes, suítes de testes, casos de testes e bugs no Test Manager.
3) A gestão do laboratório de testes é abordada, incluindo a criação rápida de ambientes usando o AppController e a integração dos testes com o Laboratório
O documento apresenta uma disciplina sobre automatização de testes. Ele discute os problemas do processo de teste manual, ferramentas de teste como TestLink e Mantis, e como migrar casos de teste de um processo manual para essas ferramentas.
Aguiar utilizando monte carlo e reamostragem em estimativas 2008-11-04Agenor Barbosa
1) O documento introduz técnicas de estimativa utilizando Monte Carlo e reamostragem para lidar com a incerteza em parâmetros de entrada. 2) Dois exemplos ilustram como o Monte Carlo pode ser usado para simular variáveis aleatórias e avaliar o impacto da incerteza nos resultados. 3) A reamostragem é apresentada como uma alternativa ao Monte Carlo que não requer suposições sobre distribuições estatísticas.
Este documento fornece uma introdução aos testes de desempenho usando a ferramenta JMeter, discutindo estratégias de teste, o processo de teste, exemplos de melhorias identificadas em testes e dicas para executar testes de desempenho de forma eficaz.
O documento resume os principais conceitos e práticas do eXtreme Programming (XP), uma metodologia ágil de desenvolvimento de software que enfatiza a comunicação, feedback, simplicidade, respeito e coragem. O XP propõe doze práticas como programação pareada, testes automatizados, refatoração e integração contínua para entregar valor ao cliente de forma incremental.
O documento apresenta uma introdução ao teste de software, discutindo sua história, objetivos, processos, técnicas e ferramentas. Inclui tópicos como planejamento, projeto, execução e entrega de testes, níveis de teste, técnicas como caixa preta e branca e critérios como análise de valor limite e tabela de decisão. Por fim, fornece referências sobre o tema.
O documento apresenta os principais conceitos e práticas do Desenvolvimento Orientado a Testes (TDD). Resume os tópicos da agenda, incluindo introdução ao TDD, tipos de testes, exemplos práticos do processo red-green-refactor, desafios como onde começar e benefícios como design emergente e menor acoplamento.
Similar to Unidade 0: Projeto de Experimentos (20)
O documento discute as dificuldades em fazer ciência. A teoria da evolução por seleção natural de Darwin unificou diversas áreas e foi considerada a melhor ideia já concebida. No entanto, fazer ciência é difícil devido à natureza imperfeita do conhecimento humano, vieses cognitivos de cientistas e limitações da organização da comunidade científica.
Aula 03 de disciplina de Metodologia da Pesquisa Científica do Programa de Pós-Graduação em Informática da UFPB. Nesta aula discutimos aspectos importantes na escolha de um projeto pesquisa.
O documento discute a Ciência da Computação como uma ciência, comparando-a com o universo ficcional de Steampunk. Ele explica que a Ciência da Computação se diferencia por aceitar testes de observação e experimento, enquanto a ficção científica pode se basear mais na esperança do que nos fatos. Também usa o exemplo dos Irmãos Wright para ilustrar como a abordagem científica, com revisão sistemática da literatura, construção e teste de protótipos e análise de dados, levou ao sucesso na inven
Este documento apresenta a introdução de um curso sobre metodologia da pesquisa científica. O curso abordará técnicas para conduzir pesquisas na área da Ciência da Computação, incluindo como estruturar investigações científicas, selecionar hipóteses e combinar métodos como provas, simulações e experimentos. A avaliação dos alunos incluirá relatórios sobre seus próprios projetos de pesquisa e revisões dos trabalhos dos colegas.
Gráficos: 10 dicas sobre o que fazer e sobre o que não fazerAlexandre Duarte
O documento fornece dicas sobre visualização de dados, incluindo o que fazer, como usar todo o eixo numérico e simplificar informações menos importantes, e o que não fazer, como usar efeitos 3D, mais de seis cores ou sobrecarregar os gráficos.
Panorama de Pesquisas em Análise de Dados na UFPBAlexandre Duarte
1) O documento apresenta vários projetos de pesquisa em andamento sobre análise de dados na UFPB, incluindo a predição do sucesso científico através de análise de redes sociais e um mapeamento da evolução dos programas de pós-graduação no Brasil.
2) Há também projetos sobre financiamento de pesquisa que analisam a concentração de bolsas e projetos em determinadas áreas e instituições por meio de redes de colaboração.
3) Finalmente, projetos sobre política analisam t
O documento discute o método de agrupamento K-means. Ele explica as iterações do K-means, como escolher o número de grupos K e critérios para avaliar a qualidade de um agrupamento, como pureza.
1) O documento discute tabelas de contingência e estatísticas para analisar a associação entre variáveis nominais, como raça e região. 2) Apresenta o índice de Quetelet para medir alterações na frequência relativa de uma variável considerando a média geral. 3) Explica o coeficiente qui-quadrado de Pearson para testar a independência entre variáveis através da diferença entre os valores observados e esperados se fossem independentes.
O documento discute diferentes estruturas de correlação e classificadores, incluindo:
1) Modelos ocultos de Markov, redes bayesianas e redes neurais como formas de encontrar regras para prever uma variável alvo a partir de variáveis de entrada.
2) O classificador Naive Bayes, que usa a probabilidade condicional de características dados os rótulos de classe para fazer predições de classe.
3) Árvores de decisão, que constroem particionamentos recursivos dos dados para predição de classe.
O documento discute regressão linear e correlação, apresentando: 1) como encontrar a equação da reta de regressão linear que melhor se ajusta aos dados minimizando o erro quadrático médio; 2) a definição e interpretação do coeficiente de correlação e de determinação; 3) exemplos de aplicação em conjuntos de dados reais.
1) O documento discute a summarização estatística unidimensional de variáveis, utilizando como exemplo um conjunto de dados sobre flores Iris. 2) Histogramas e medidas de centralidade e dispersão, como média e desvio padrão, são apresentados para resumir a distribuição de uma variável. 3) A validação da média é discutida por meio de abordagens estatísticas clássicas e bootstrapping.
O documento discute transformações de dados para corrigir imperfeições e tornar os dados mais adequados para análises estatísticas. Ele explica que transformações como logaritmo, raiz quadrada e quadrado podem ser usadas para ajustar a distribuição dos dados e torná-los mais simétricos. O documento fornece exemplos dessas transformações em conjuntos de dados reais e alerta sobre os cuidados necessários na interpretação dos resultados transformados.
Este documento discute as etapas da preparação e limpeza de dados, incluindo separação, conversão e padronização de dados. A separação envolve dividir dados em campos mais úteis, como separar nomes em primeiro nome e sobrenome. A conversão garante que dados de um campo estejam no mesmo formato. A padronização controla inconsistências, como valores diferentes para o mesmo conceito. Documentar o processo de limpeza é essencial.
O documento fornece orientações sobre como projetar e conduzir pesquisas por survey. Ele explica que surveys podem ajudar a descrever, relacionar e influenciar variáveis, e destaca a importância de definir claramente o propósito do survey. Também discute tipos de perguntas, escalas, formulando perguntas de forma precisa e breve, e estrutura de questionários.
1) O documento introduz o conceito de ciência de dados, que envolve a coleta, transformação e armazenamento de dados, além da geração de informações e conhecimento a partir dos dados com o uso de técnicas de computação, estatística e domínios de aplicação.
2) A ciência de dados difere da ciência da computação ao tentar modelar saídas a partir de entradas de dados ao invés de definir funções exatas.
3) O curso abordará técnicas de coleta, análise e visual
Análise de Redes Sociais: Introdução aos Grafos Aleatórios Alexandre Duarte
Este documento introduz os modelos de grafos aleatórios de Erdös-Rényi, discutindo suas premissas, parâmetros-chave e propriedades. Explica que a distribuição de graus segue uma distribuição binomial para grafos de Erdös-Rényi e que a média do grau é igual a (n-1)*p, onde n é o número de nós e p é a probabilidade de uma aresta existir.
O documento apresenta uma introdução sobre análise de redes sociais, discutindo o que se quer quando se estuda redes sociais e fornecendo exemplos de redes políticas e financeiras. Também discute a visualização de redes para entender conexões através de mapeamentos e apresenta conceitos-chave como nós, arestas, atributos de arestas, representações de dados como matrizes de adjacência e listas, e métricas como grau, distribuição de grau e componentes conectados.
O documento fornece estatísticas sobre a evolução do número de matrículas e taxas de aprovação em disciplinas de Ciência da Computação. Também lista 12 dicas para estudantes terem sucesso em seus estudos universitários, enfatizando a importância de não desistir, estudar em casa, participar de atividades extracurriculares e dominar idiomas.
1. Análise de Redes Sociais
Unidade 0: Projeto de Experimentos
Alexandre Duarte e Alisson Brito
CI/UFPB
Apresentação derivada dos slides originais de
Jussara Almeida.
2. Terminologia do Projeto de
Experimentos
• Variável resposta: representa o valor obtido, que é medido
de acordo com as variações dos dados de entrada.
– Exemplo: tempo de resposta, índice de precisão, utilização,
• Fatores: as variáveis de entrada de um experimento que
podem ser controladas pelo “experimentador”.
– Exemplo: tamanho do cache, tamanho dos arquivos, tempo de
seek, latência da rede, etc
• Níveis: os níveis de um fator são os valores específicos que
podem ser atribuídos ao fator. Podem ser contínuos (ex.:
tempo de seek), discretos (# de servidores) ou podem ser
categóricos, como o tipo de um processador ou a classe de
um certo algoritmo. Também chamados de treatments
3. Terminologia do Projeto de
Experimentos
• Replicação: replicar um experimento significa re-
executá-lo completamente com todos os
mesmos níveis de entrada. Desde que as medidas
da variável resposta são sujeitas a variações
aleatórias, as replicações de um experimento são
usadas para determinar o impacto do erro
experimental na variável resposta.
• Interação: uma interação entre fatores ocorre
quando o efeito de um fator depende do nível de
outro fator.
4. Introdução ao Projeto de
Experimentos: perguntas básicas
• Você conhece as métricas?
• Você conhece os fatores?
• Você conhece os níveis?
• Você tem conhecimento de como
instrumentar o sistema e elaborar as cargas
de teste?
• Você sabe descrever o que fazer para realizar
experimentos que comprovem ou refutem as
hipóteses de sua pesquisa?
5. Objetivos no Projeto de
Experimentos
• Obter a maior quantidade de informação
• Reduzir o trabalho/esforço de experimentação
– Tipicamente significa executar um menor número de
experimentos
• Realizar mais experimentos não é bom (gasta-se
tempo e recursos), principalmente se você for
aquele responsável pela execução dos mesmos.
– Experimentos bem projetados são mais fáceis de
analisar.
6. Replicações Experimentais
• O sistema em estudo executará com vários
níveis de diferentes fatores, potencialmente
com diferentes cargas.
• Uma execução com um conjunto particular de
níveis e dados de entrada é uma replicação.
• Em geral, é necessário realizar múltiplas
replicações com um único conjunto de níveis e
dados de entrada, por razões de verificação e
validação estatística.
7. A Interação dos Fatores
• Alguns fatores tem efeitos completamente
independentes um do outro.
– Exemplo: Duplique o nível de um fator e obterá́
metade da resposta, independente dos outros
fatores.
• Mas os efeitos de alguns fatores dependem dos
valores de outros fatores
– Fatores inter-atuantes
• A presença de fatores inter-atuantes complica o
projeto experimental.
8. Problema Básico ao Projeto
Experimentos
• Um determinado numero de fatores foi
escolhido
• Os fatores podem ou não interagir
• Como se pode projetar um experimento que
captura os intervalos completos de variação
dos níveis?
– Com a menor quantidade de trabalho possível
• Qual combinação ou combinações de níveis
de fatores deseja-se medir?
9. Erros Comuns na Experimentação
• Ignorar o erro experimental
– A variação devido a um fator deve ser comparada com a variação
devido aos erros experimentais antes de se tomar uma decisão sobre
o fator (ele tem impacto significativo?)
• Existência de parâmetros não controlados (não são fatores)
– Somente o impacto de fatores é avaliado
• Não isolamento dos efeitos de diferentes fatores
– Variação de vários fatores simultaneamente
• Projetos de experimentos com um fator-de-cada-vez
– Muito caro: não necessariamente mais informativo
• Ignorar as interações entre os fatores
• Projetos que requerem um número excessivo de experimentos
– Melhor considerar um subconjunto dos fatores/níveis primeiro e
depois ir acrescentando fatores/níveis aos poucos.
10. Tipos de Projetos de Exprimentos
• Projetos simples
• Projetos com fatorial completo
• Projetos com fatorial fracionado
11. Projetos Simples
• Varie um fator de cada vez
• Para k fatores com o i-ésimo fator tendo ni
níveis
• Assume que os fatores não interagem
• Usualmente requer mais esforço que se pensa
• Tente evitar esse enfoque de experimentação!
12. Projeto com Fatorial Completo
• Para k fatores com o i-ésimo fator tendo ni níveis
• Testa cada combinação possível dos níveis dos
fatores.
• Captura a informação completa sobre a interação
• É no entanto, um trabalho ENORME!!!
– Principalmente se valores de ni forem grandes
13. Reduzindo o trabalho em Projetos
com Fatorial Completo
• Reduza o número de níveis por fator
– Geralmente uma boa opção
– Especialmente quando se sabe quais fatores são
mais importantes
– Para os fatores mais relevantes, use mais níveis
• Reduza o número de fatores
– Simplifique o modelo experimental
– Mas não retire fatores “relevantes”
• Use projetos de fatorial fracionado
14. Projetos com Fatorial Fracionado
• Faça a medição somente de uma combinação de
níveis de fatores.
• O projeto deve ser cuidadosamente projetado
para capturar melhor qualquer interação que
possivelmente exista.
• Menos trabalho, porém com mais chance de
imprecisões nos resultados.
– Trade-off
• Pode ser útil quando se sabe a priori que alguns
fatores não interagem.
15. Projetos Fatoriais 2k
• Usados para determinar os efeitos de k
fatores
– Cada um com duas alternativas ou níveis
• Em geral, são usados de maneira preliminar,
antes de estudos mais detalhados
– Cada fator medido é representado por seu nível
máximo e mínimo.
– Pode oferecer algum “insight” sobre as interações
entre os vários fatores.
16. Efeitos Unidirecionais
• Efeitos que somente aumentam à medida que
o nível de um fator também aumenta
– Ou vice-versa
• Se essa característica é conhecida a priori, um
projeto fatorial 2k
nos níveis máximo e mínimo
pode ser útil.
• Demonstra-se quando um fator tem efeito
significativo no experimento.
17. Projetos Fatoriais 22
• Dois fatores, com dois níveis cada
• Tipo mais simples de um projeto fatorial de
experimentos
• Os conceitos desenvolvidos podem ajudar o
entendimento dos problemas de 2k
• Exemplo simples, com finalidade pedagógica
18. Exemplo de um Projeto Fatorial 22
• Uma arquitetura de máquina de busca, composta
por N servidores;
• Pode-se usar vários esquemas de distribuição ou
escalonamento de queries para os servidores,
por exemplo, round-robin, gang, random,
priority, etc
• O objetivo é completar os queries no menor
tempo possível.
• No exemplo, a métrica usada é o tempo de
execução da query em microssegundos.
19. Fatores e Níveis do Exemplo
• Primeiro fator – número de servidores usados na
máquina de busca experimental:
– Varia entre 8 e 64
• Segundo fator – baseado em outros estudos, usa-
se dois extremos de políticas de escalonamento:
aleatório e “round-robin”.
– Sistema de arquivos local e global na arquitetura, que
permite a distribuição de query para qualquer
servidor.
• Outros fatores existem, mas neste exemplo,
vamos ignorá-los.
21. Dados Amostrais para o Exemplo
• Execução única de uma carga benchmark de
queries nas duas configurações resultou nos
seguintes tempos de execução:
23. Modelo de Regressão Não Linear
para o Exemplo
• y = q0 + qAxA + qBxB + qABxAxB
• 820 = q0 - qA - qB + qAB
• 217 = q0 + qA - qB - qAB
• 776 = q0 - qA + qB - qAB
• 197 = q0 + qA + qB + qAB
• A = número de servidores
• B = escalonamento
25. Solução das Equações
• q0 = 1/4(820 + 217 + 776 + 197) = 502.5
• qA = 1/4(-820 + 217 - 776 + 197) = -295.5
• qB =1/4(-820 -217 + 776 + 197) = -16
• qAB = 1/4(820 - 217 - 776 + 197) = 6
• Assim: y = 502.5 - 295.5xA - 16xB + 6xAxB
• q0 = 502.5 = tempo de execução médio
• A = número de servidores tem maior impacto no
tempo de resposta, e faz uma diferença de +-
295,5
26. Alocação de Variação para o
Modelo 22
• Calcule a variância amostral de y
• Numerador é o SST (variação total)
• Outra formula para SST é: SST = 22
qA
2
+ 22
qB
2
+ 22
qAB
2
• Podemos usar isso para entender as causas da variação
de y
27. Termos no SST
• 22
qA
2
é parte da variação explicada pelo efeito
de A (SSA)
• 22
qB
2
é parte da variação explicada pelo efeito
de B (SSB)
• 22
qAB
2
é parte da variação explicada pelo efeito
da interação de A e B (SSAB)
28. Variações no Exemplo
• SST = 350449
• SSA = 349281
• SSB = 1024
• SSAB = 144
• Pode-se agora calcular e entender a fração da
variação total causada por cada efeito.
29. Frações da Variação no Exemplo
• Fração explicada por A: 99.67%
• Fração explicada por B: 0.29%
• Fração explicada pela interação de A e B: 0.04%
• Assim, quase toda variação vem do número de servidores
da arquitetura e o esquema de escalonamento tem um
efeito desprezível na performance da máquina de busca
em estudo.
• Se o objetivo é diminuir o tempo de resposta de queries,
deve-se então concentrar no número de servidores e não
no esquema de distribuição-escalonamento (exemplo
hipotético!)
30. Projetos com Fatorial 2k
• Usado para analisar os efeitos de k fatores,
cada um com níveis de duas alternativas
• Projetos 22
fatorial são um caso especial
31. Exemplo
• No projeto de um sistema, os três fatores de
maior impacto e que precisam ser estudados
são : tamanho do cache, tamanho da
memória, e se 1 ou 2 processadores serão
usados.
32. Exemplo
• O projeto 23
e o desempenho medido em
MIPS, é mostrado na tabela abaixo:
38. Solução
• A porção da variação explicada por cada fator
e suas interações são:
– A : 800/4512 = 18%
– B: 200/4512 = 4%
– C: 3200/4512 = 71%
– AB: 200/4512 = 4%
– AC: 32/4512 = 1%
– BC: 72/4512 = 2%
– ABC: 8/4512 = 0% -> pode ignorar
39. Projetos Fatoriais 2k
r
• Projetos fatoriais 2k
não permitem estimar os
erros experimentais já́ que nenhum experimento
é repetido
• Se cada um dos 2k
forem replicados r vezes,
teremos 2k
r observações
– Projetos fatoriais 2k
r
– Poderemos estimar os erros experimentais
– Poderemos comparar a % da variação devido a cada
fator ou interação com a % da variação devido aos
erros experimentais
• Fator/interação tem impacto significativo?
40. Projetos Fatorias 22
r
• Assume o modelo genérico:
– y = q0 +qAxA +qBxB +qABxAxB+ e
• Computar os efeitos (coeficientes) de forma
similar aos projetos 2k
41. Exemplo
• Um sistema foi avaliado considerando 2 fatores (A e B) e
variando cada fator em dois níveis. Cada experimento foi
repetido 3 vezes e os resultados são mostrados na tabela
abaixo:
47. Exemplo
• Fator A explica 5547/7032 = 78.88% da
variação.
• Fator B explica 1083/7032 = 15.4%
• A interação AB explica 4.27% da variação.
• Os restantes 1.45% são inexplicados e são
atribuidos aos erros experimentais
48. Projetos Fatorias Fracionários 2k-p
• Quando o numero de fatores k é muito grande, o
custo de um projeto fatorial de experimentos
pode ser muito caro
– Requer 2k
experimentos (com/sem replicação)
• Projetos fracionários podem ser usados:
– Permite analisar o impacto de k fatores (2 níveis) com
um número menor (2k-p
) de experimentos
– Porém não consegue isolar os efeitos de cada fator e
de suas interações
– Para minimizar este problema, é crucial um projeto
cuidadoso dos experimentos a serem realizados
50. Projetos Fatorias Fracionários 2k-p
• Colunas da tabela de experimentos precisam
ser mutuamente exclusivas:
– A soma de cada coluna é zero
– A soma dos produtos de quaisquer duas colunas é
0
– A soma dos quadrados de cada coluna é 2k-p
51. Projetos Fatorias Fracionários 2k-p
• A ortogonalidade permite calcular os efeitos e as
suas contribuições para a variação dos valores de y
• No exemplo anterior, estamos assumindo um
modelo
• Podemos calcular cada efeito como anteriormente.
Por exemplo:
52. Preparando a tabela de sinais para
um experimento 2k-p
• Escolha k-p fatores e prepare uma tabela de sinais
completa para o projeto fatorial completo com k-p
fatores.
– Isto resultará em um tabela com 2k-p
linhas e 2k-p
colunas
– A primeira coluna, marcada como I, contem somente 1’s
– As próximas k – p colunas serão marcadas com os k-p
fatores escolhidos. As colunas restantes são produtos
destes fatores
• Das 2k-p
– (k-p) – 1 colunas que restaram a direita da
tabela, escolha p colunas e marque-as como os p
fatores que não foram escolhidos no passo 1.
57. Confounding
• Um problema com projetos fracionários é que nem
todos os efeitos podem ser determinados
• Somente a influência combinada de dois ou mais
efeitos pode ser computada
• Este problema é conhecido como confounding
• Exemplo: no projeto 24-1
anterior:
58. Confounding
• Na verdade o somatório dado não é nem qD nem qABC mas
sim a soma dos dois efeitos
• Sem o projeto fatorial completo, não é possivel obter
estimativas separadas para os efeitos D e ABC
• Isto não é um problema sério se é sabido, a priori, que o
impacto da interação entre A, B e C é pequena se
comparada como o efeito D.
59. Confounding
• Notação: D = ABC
• Note que outros efeitos também são “confounded”
– Ex: A = BCD
• Em um projeto 24-1
, somente 8 dos 16 efeitos podem
ser computados.
• Logo cada quantidade computada é na verdade a soma
de dois efeitos.
• No exemplo anterior:
A = BCD B = ACD C = ABD AB = CD
AC = BD BC = AD ABC = D I = ABCD
60. Experimentos de um Fator
• Objetivo: comparar a alternativas (a >= 2)de
uma única variável categórica
– Comparar impacto de diferentes processadores
– Comparar impacto de diferentes algoritmos para
um mesmo problema
– Comparar diferentes politicas de caching
• Não há limites no número de níveis para o
fator analisado
62. Exemplo
• Em uma comparação de tamanho de código, o número de
bytes necessários para codificar uma certa carga em três
processadores diferentes, R, V e Z, foi medido, cada um 5
vezes (diferentes programadores)
• Os dados medidos são mostrados na tabela abaixo:
– R 144 120 176 288 144
– V 101 144 211 288 72
– Z 130 180 141 374 302
• Assume-se que não ha dependência entre as codificações
feitas para um mesmo processador. Caso contrário, deveria
ter sido feito um projeto de 2 fatores
63. Exemplo
• Um processador médio requer 187.7 bytes de armazenamento
• Em média, proc. R requer 13.3 bytes a menos que a média; V
requer 24.5 bytes a menos que a média, e Z requer 37.7 bytes a
mais que a média.