Tutoriais de programação - página 18

 

Teste de qualidade de ajuste qui-quadrado em R


Teste de qualidade de ajuste qui-quadrado em R

Olá a todos, na sessão de hoje, vamos mergulhar em testes de qualidade de ajuste usando R. Vamos resolver alguns problemas para entender melhor o conceito. Se você não estiver familiarizado com o teste de qualidade do ajuste, recomendo assistir primeiro ao meu vídeo introdutório sobre o tópico (link fornecido acima).

Vamos começar com o primeiro problema. Uma faculdade afirma que 50% dos alunos em suas aulas de estatística são calouros, 30% são alunos do segundo ano, 10% são juniores e 10% são veteranos. Obtivemos uma amostra aleatória simples de 65 alunos, e a distribuição em nossa amostra é ligeiramente diferente das proporções reivindicadas. Queremos determinar se essas diferenças fornecem fortes evidências contra a alegação da faculdade ou se podem ser devidas à variabilidade aleatória.

Para realizar o teste de qualidade do ajuste em R, usaremos o teste do qui-quadrado. Peguei o arquivo de ajuda para a função chi-square.test, mas vamos nos concentrar apenas no teste de qualidade de ajuste por enquanto.

Primeiro, vamos inserir nossos dados. Criaremos um vetor chamado anos para armazenar as contagens observadas: 28 calouros, 24 alunos do segundo ano, 9 juniores e 4 seniores.

years <- c ( 28 , 24 , 9 , 4 )

Em seguida, precisamos criar um vetor de proporções esperadas sob a hipótese nula. Nesse caso, a hipótese nula assume que as proporções reivindicadas são verdadeiras. Vamos chamar esse vetor de adereços e atribuir as proporções: 0,5 para calouros, 0,3 para alunos do segundo ano, 0,1 para juniores e 0,1 para veteranos.

props <- c ( 0.5 , 0.3 , 0.1 , 0.1 )

Agora, podemos realizar o teste qui-quadrado usando a função qui-quadrado.test. A sintaxe básica é direta: chi.square.test(dados, p = proporções_esperadas). Lembre-se de incluir p = props para especificar as proporções esperadas.

result <- chi.square.test ( years , p = props )

O teste produzirá os graus de liberdade, a estatística do teste qui-quadrado e o valor-p. Para este problema, temos três graus de liberdade, uma estatística de teste qui-quadrado de 3,58 e um valor-p de 0,31. Esses resultados correspondem ao que obtivemos no vídeo introdutório.

Com um valor-p de 0,31, não temos evidências suficientes para rejeitar a hipótese nula. Portanto, não podemos concluir que as diferenças entre nossa distribuição amostral e as proporções reivindicadas sejam estatisticamente significativas. Os dados são compatíveis com a afirmação da faculdade.

Agora, vamos passar para o segundo problema. Conduzimos 200 jogadas de dados e a distribuição resultante é a seguinte: 28 unidades, 32 pares e assim por diante. Queremos determinar se essa distribuição fornece evidências de que o dado é injusto.

Seguiremos o mesmo processo de antes. Vamos criar um vetor chamado counts para armazenar as contagens observadas: 28 uns, 30 twos, 22 threes, 31 fours, 38 fives e 51 sixes.

counts <- c ( 28 , 30 , 22 , 31 , 38 , 51 )

Agora, podemos aplicar diretamente o teste qui-quadrado a essas contagens.

result <- chi.square.test ( counts )

O teste produzirá os graus de liberdade, a estatística do teste qui-quadrado e o valor-p. Nesse caso, temos cinco graus de liberdade, uma estatística de teste qui-quadrado de 15,22 e um valor-p de 0,009463.

Com um valor-p muito pequeno de 0,009463, temos evidências suficientes para rejeitar a hipótese nula. Assim, podemos concluir que o dado parece ser ponderado e não justo com base na distribuição observada.

Isso encerra nossa discussão e aplicação do teste de qualidade do ajuste qui-quadrado usando R. Lembre-se, esse teste nos permite avaliar a compatibilidade dos dados observados com uma distribuição esperada e fazer inferências estatísticas com base no valor-p.

Chi-Squared Goodness-of-Fit Testing in R
Chi-Squared Goodness-of-Fit Testing in R
  • 2020.11.30
  • www.youtube.com
Chi-squared testing is easy with R. Give me just five minutes, and I'll show you how to do it!If this vid helps you, please help me a tiny bit by mashing tha...
 

Teste qui-quadrado para independência em R


Teste qui-quadrado para independência em R

Olá a todos, no vídeo de hoje, usaremos R para realizar testes de qui-quadrado para a independência de variáveis categóricas. Estaremos utilizando a função qui-quadrado.test para esta finalidade. Observe que neste vídeo não abordaremos o teste de qualidade do ajuste, que também emprega a mesma função subjacente em R. Se você estiver interessado em aprender sobre o teste de qualidade do ajuste, tenho um vídeo separado em esse tópico (link fornecido acima).

Vamos trabalhar com um problema retirado do livro OpenStax sobre estatística introdutória. O problema envolve um grupo de voluntários em que adultos com 21 anos ou mais se voluntariam de uma a nove horas por semana para passar um tempo com um idoso deficiente. O programa recruta voluntários de três categorias: estudantes universitários comunitários, estudantes universitários de quatro anos e não estudantes. Temos uma tabela de contingência, ou tabela de duas vias, que apresenta a distribuição dos voluntários com base em duas variáveis categóricas: o tipo de voluntário e o número de horas oferecidas, categorizadas em uma a três horas, quatro a seis horas e sete a nove horas.

Agora, vamos mudar para R e inserir os dados e executar um teste qui-quadrado para determinar se essas variáveis categóricas estão associadas umas às outras ou não.

Para inserir os dados, criaremos uma matriz chamada voluntários usando a função de matriz. Vamos inserir os dados por linha, da esquerda para a direita, de cima para baixo.

volunteers <- matrix ( c ( 111 , 96 , 48 , 96 , 133 , 61 , 91 , 150 , 53 ) , nrow = 3 , byrow = TRUE )

Em seguida, vamos adicionar nomes de linhas e nomes de colunas para tornar a matriz mais interpretável.

row.names ( volunteers ) <- c ( "Community College Students" , "Four-Year College Students" , "Non-Students" ) colnames ( volunteers ) <- c ( "1-3 hours" , "4-6 hours" , "7-9 hours" )

Agora temos uma tabela visualmente apelativa com a distribuição dos voluntários pelas diferentes categorias.

Para realizar o teste qui-quadrado, usaremos a função chi.square.test. Atribuir o resultado a uma variável, como o modelo, nos permite acessar informações adicionais, se necessário.

model <- chi.square.test ( volunteers )

Para visualizar os resultados do teste, basta digitar o nome da variável, model.

model

A saída do teste incluirá a estatística do teste qui-quadrado, os graus de liberdade e o valor-p. Para este exemplo, obtemos uma estatística de teste qui-quadrado de 12,991, 2 graus de liberdade e um valor-p que normalmente é muito pequeno.

É importante observar que o objeto de modelo contém informações adicionais, como as contagens de células esperadas e os resíduos. Estes podem ser acessados para uma análise mais aprofundada, se necessário.

Outra maneira de realizar o teste qui-quadrado é convertendo a matriz em uma tabela e utilizando a função resumo.

vol_table <- as.table ( volunteers ) summary ( vol_table )

Essa abordagem também fornecerá a estatística do teste qui-quadrado, graus de liberdade e valor-p.

Isso abrange o processo de realização do teste qui-quadrado para a independência de variáveis categóricas usando R. Lembre-se, o teste qui-quadrado nos ajuda a determinar se há uma associação significativa entre duas variáveis categóricas com base nas frequências observadas e esperadas.

Chi-Squared Testing for Independence in R
Chi-Squared Testing for Independence in R
  • 2020.12.04
  • www.youtube.com
Let's learn how to use the chisq.test() function in R to check the independence of categorical variables. If this vid helps you, please help me a tiny bit by...
 

Teste de qualidade de ajuste com R: exemplo


Teste de qualidade de ajuste com R: exemplo

Hoje usaremos R para resolver um problema típico de teste de qualidade de ajuste. Aqui está:

Em uma amostra aleatória de 10 famílias com três filhos, a distribuição das meninas foi a seguinte:

  • 12 famílias não tinham meninas
  • 31 famílias tiveram uma menina
  • 42 famílias tiveram duas meninas
  • 15 famílias tiveram três meninas

A questão é: é plausível que o número de meninas nessas famílias siga uma distribuição binomial com parâmetros n=3 e p=0,5?

Vamos mudar para R, onde já inseri os valores observados. Para prosseguir, precisamos calcular os valores esperados e compará-los com as contagens observadas. Começaremos com as proporções esperadas, que podem ser obtidas usando a função dbinom no R.

Aqui estão as proporções esperadas para ter 0, 1, 2 ou 3 meninas em uma família:

  • 12,5% para 0 meninas
  • 37,5% para 1 menina
  • 37,5% para 2 meninas
  • 12,5% para 3 meninas

A seguir, calcularemos as contagens esperadas multiplicando as proporções esperadas por 100 (já que temos 100 famílias no total).

Agora, vamos proceder com duas abordagens diferentes para resolver este problema. Primeiro, usaremos a função chisq.test em R, que fornece uma resposta direta calculando a estatística de teste e o valor-p. Em seguida, passaremos pelos cálculos passo a passo para obter uma compreensão mais profunda do processo.

Usando chisq.test:

observed_counts <- c ( 12 , 31 , 42 , 15 )
expected_proportions <- dbinom ( 0 : 3 , size = 3 , prob = 0.5 )
expected_counts <- expected_proportions * 100
result <- chisq.test ( observed_counts , p = expected_proportions )
p_value <- result $ p.value print ( p_value )

O p-valor obtido indica a probabilidade de obtenção de dados tão extremos quanto o que observamos, assumindo a hipótese nula como verdadeira. Nesse caso, o valor-p é de aproximadamente 0,07232.

Como nosso nível de significância foi estabelecido em 0,05 e o valor-p é maior que isso, não temos evidências suficientes para rejeitar a hipótese nula. Podemos concluir que os dados são consistentes com a hipótese de que o número de meninas nessas famílias segue uma distribuição binomial com parâmetros n=3 ep=0,5.

Agora, vamos calcular a estatística do teste qui-quadrado manualmente para entender melhor o processo:

chi_stat <- sum ( ( observed_counts - expected_counts ) ^ 2 / expected_counts )
degrees_of_freedom <- length ( observed_counts ) - 1
p_value_manual <- 1 - pchisq ( chi_stat , df = degrees_of_freedom )
print ( p_value_manual )

O valor-p calculado manualmente corresponde ao resultado obtido usando chisq.test, confirmando nossa descoberta anterior de aproximadamente 0,07232.

Em resumo, ambas as abordagens levam à mesma conclusão: os dados são consistentes com a hipótese nula de que o número de meninas nessas famílias segue uma distribuição binomial com parâmetros n=3 ep=0,5.

Goodness of fit testing with R: example
Goodness of fit testing with R: example
  • 2023.01.04
  • www.youtube.com
Is it plausible that a categorical variable was sampled from a particular distribution?If this vid helps you, please help me a tiny bit by mashing that 'like...
 

Teste de correlação em R


Teste de correlação em R

Olá pessoal! Hoje, vamos discutir o teste de correlação. Usarei R para esta demonstração, mas os conceitos que abordaremos são aplicáveis universalmente, independentemente do seu ambiente de trabalho. Portanto, fique por perto mesmo se estiver usando um software diferente.

Para este exemplo, usarei o conjunto de dados da faculdade do pacote islr2. Já carreguei o conjunto de dados e defini meu tema como mínimo usando o pacote titiverse. Se você estiver interessado em uma análise detalhada do conjunto de dados da faculdade, tenho um link de vídeo na descrição.

O conjunto de dados da faculdade consiste em 777 observações, cada uma representando uma faculdade de 1995. Ele contém várias variáveis, como designação pública ou privada, matrícula em graduação em tempo integral e taxa de graduação.

Nosso foco será determinar se existe uma correlação estatisticamente significativa entre o logaritmo de matrículas de graduação em tempo integral e a taxa de graduação em universidades públicas. Queremos saber se essa relação aparente provavelmente se deve ao acaso ou se é uma tendência significativa à qual devemos prestar atenção.

Para começar, criei um gráfico de dispersão usando o ggplot, com a taxa de graduação no eixo y e o logaritmo das matrículas de graduação em período integral no eixo x. Eu também filtrei as escolas particulares, então analisamos apenas as faculdades públicas.

Agora, vamos abordar o logaritmo. Não se deixe intimidar por isso; simplesmente nos ajuda a interpretar a escala dos dados. Nesse caso, estamos usando um logaritmo de base 10, que nos informa o número de zeros no final de um valor. Por exemplo, 3,0 em uma escala logarítmica é 10^3, que é 1.000. Tomando o logaritmo, obtemos uma dispersão mais uniforme e uma relação aproximadamente linear entre as variáveis.

A correlação mede a força de uma relação geralmente linear entre duas variáveis quantitativas. Nesse caso, temos uma correlação positiva de aproximadamente 0,22, indicando que à medida que aumenta a matrícula de graduação em tempo integral, a taxa de conclusão também tende a aumentar. Essa relação positiva entre o tamanho da faculdade e a taxa de graduação pode parecer surpreendente, mas vale a pena explorar mais.

A correlação é relativamente fraca, pois as correlações variam de -1 a 1. Uma correlação de -1 representa uma relação negativa perfeita, enquanto uma correlação de 1 representa uma relação positiva perfeita.

Agora, vamos realizar um teste de correlação em R para determinar se essa correlação é estatisticamente significativa. A sintaxe para executar um teste de correlação é semelhante à correlação de cálculo. Utilizando a função cor.test com as duas variáveis de interesse, obtemos a correlação e informações adicionais.

Nesse caso, os resultados do teste fornecem um p-valor de 0,001, o que sugere que, se não houvesse correlação entre essas variáveis na população, a correlação observada ocorreria por acaso apenas cerca de 0,1% das vezes. Uma probabilidade tão baixa indica que a correlação que observamos é estatisticamente significativa, e podemos concluir que existe uma correlação entre o logaritmo de matrículas de graduação em tempo integral e a taxa de graduação em universidades públicas.

Agora, vamos nos aprofundar um pouco mais no teste em si. Ele examina se a correlação observada nos dados da amostra pode ser razoavelmente atribuída ao acaso. O teste assume uma relação linear entre as variáveis e independência das observações, tornando-o inadequado para dados de séries temporais. Além disso, assume que os dados seguem uma distribuição normal bivariada, mas os desvios da normalidade perfeita são geralmente aceitáveis.

É importante observar que esse teste de correlação testa especificamente a hipótese nula de que a correlação da população é zero. Não pode ser usado para testar correlações diferentes de zero.

Nos bastidores, o teste usa uma estatística de teste chamada R, calculada como a correlação de amostra observada. Esta estatística segue uma distribuição t de Student com n-2 graus de liberdade, assumindo a hipótese nula de correlação zero. Os graus de liberdade, denotados como n-2, dependem do tamanho da amostra (n) e são determinados pelo número de observações independentes disponíveis para estimativa.

O teste também fornece um intervalo de confiança para a correlação da população. Nesse caso, o intervalo de confiança de 95% varia de 0,087 a 0,354. Esse intervalo nos dá uma gama de valores plausíveis para a correlação da população com base em nossos dados de amostra. Como o intervalo não inclui zero, podemos inferir que a correlação populacional provavelmente será positiva.

Vale a pena notar que a correlação não implica causalidade. Só porque observamos uma correlação entre duas variáveis não significa que uma variável esteja causando a mudança na outra. A correlação simplesmente indica uma relação entre as variáveis, mas pesquisas e análises adicionais são necessárias para estabelecer a causalidade.

Para visualizar a correlação, podemos adicionar uma linha de regressão ao nosso gráfico de dispersão. A linha de regressão representa a linha de melhor ajuste através dos pontos de dados, indicando a tendência geral da relação. Usando a função geom_smooth em ggplot com o argumento method = "lm", podemos adicionar uma linha de regressão ao nosso gráfico.

Agora podemos ver a linha de regressão ajustada aos pontos de dados. Ele fornece uma representação visual da relação positiva entre o logaritmo de matrículas de graduação em tempo integral e a taxa de graduação em universidades públicas.

Em resumo, realizamos um teste de correlação para determinar se existe uma relação estatisticamente significativa entre o logaritmo de matrículas de graduação em tempo integral e a taxa de graduação em universidades públicas. Os resultados do teste indicaram uma correlação positiva com um valor p de 0,001, sugerindo uma relação significativa. No entanto, lembre-se de que a correlação não implica causalidade e é necessária uma análise mais aprofundada para estabelecer relações causais.

O teste de correlação é uma ferramenta valiosa na análise estatística, permitindo-nos explorar relações entre variáveis e identificar potenciais tendências ou associações. Isso nos ajuda a tomar decisões informadas e tirar conclusões significativas com base em dados.

Correlation testing in R
Correlation testing in R
  • 2023.03.29
  • www.youtube.com
Does a sample correlation imply a population correlation, or could the observed data just be due to random chance? Let's get into it!If this vid helps you, p...
Razão: