Prova I - Estatística Não-Paramétrica

Autor

Paulo Manoel da Silva Junior

Aluno: Paulo Manoel da Silva Júnior

Mátricula:20190041314

Resolução da primeira prova da disciplina de Estatística Não-Paramétrica do período 2022.2, parte computacional.

setwd("C:/Users/Pessoal/Desktop/ESTATÍSTICA/UFPB/8º PERÍODO/ESTATÍSTICA NÃO-PARAMÉTRICA/PROVA")

Questão 8

  • Análise a base de dados acidentes.txt para responder as perguntas a seguir.

Carregando o banco de dados

acidentes <- read.table("acidentes.txt", sep = "\t", header = T)

Visualizando os dados, para saber como está o data frame.

acidentes$sexo <- factor(acidentes$sexo, levels = c("m", "f"), labels = c("Masculino", "Feminino"))
acidentes %>%
  gt::gt()
acidente idade sexo causa
1 30 Masculino queda
2 22 Masculino queda
3 31 Masculino impacto
4 45 Masculino vidro
5 24 Masculino impacto
6 40 Masculino queda
7 33 Masculino queda
8 40 Masculino queda
9 34 Masculino corrente eletrica
10 31 Masculino corrente eletrica
11 22 Feminino vidro
12 33 Feminino impacto
13 19 Masculino queda
14 38 Masculino impacto
15 20 Masculino impacto
16 32 Feminino queda
17 44 Masculino queda
18 36 Masculino queda
19 38 Masculino vidro
20 23 Feminino corrente eletrica

Letra A

  • Faça o gráfico que julgar mais adequado para cada uma das variáveis. O que você pode dizer, com base nos gráficos, acerca da distribuição dos dados?

Visualização gráfica da variável Idade

ggplot2::ggplot(acidentes, ggplot2::aes(x = idade))+
  ggplot2::geom_histogram(fill='white', 
                          color = "blue", 
                          breaks = hist(acidentes$idade, plot = F)$breaks)  + ggplot2::xlab("Idade") + ggplot2::ylab("Frequência") + ggplot2::ggtitle("Histograma da Idade dos Indivíduos")

Resposta: Acerca da distribuição dos dados, a única variável quantitiva que é observada é a variável Idade, que conforme o histograma, está distribuida de maneira assimétrica.

Visualização gráfica da variável Sexo

ggplot2::ggplot(acidentes, ggplot2::aes(x = sexo))+
  ggplot2::geom_bar(fill='white', 
                          color = "black") +
  ggplot2::labs(title = "Gráfico de Barras do Sexo dos indivíduos") + 
  ggplot2::xlab("Sexo") + 
  ggplot2::ylab("Frequência")

table(acidentes$sexo)

Masculino  Feminino 
       16         4 

Visualização gráfica da variável Causa

ggplot2::ggplot(acidentes, ggplot2::aes(x = causa))+
  ggplot2::geom_bar(fill='white', 
                          color = "black") +
  ggplot2::labs(title = "Gráfico de Barras da causa do acidente dos indivíduos") + 
  ggplot2::xlab("Sexo") + 
  ggplot2::ylab("Frequência")

Letra B

  • Teste a aderência da variável idade à distribuição normal padrão. Conclua;

Definindo as hipóteses

H_0: F(X) = Normal \hspace{0.1cm}(0,1) H_1: F(X) \neq Normal \hspace{0.1cm}(0,1)

nortest::pearson.test(acidentes$idade)

    Pearson chi-square normality test

data:  acidentes$idade
P = 6.6, p-value = 0.1586

Resposta: Conforme verificado através do p-valor do teste 0.159, não rejeitamos H_0, ou seja, com 95% de confiança e com base na amostra, a variável idade segue uma distribuição normal padrão.

Letra C

  • Com base no teste anterior, qual medida de posição você julga ser a mais adequada para representar a variável idade? Explique. Teste se essa medida de posição é igual a 30 anos. Conclua;

Com base no teste anterior, a melhor medida de posição é a mediana

Definindo as hipóteses:

H_0: \tilde{\mu} = 30 H_1: \tilde{\mu} \neq 30

wilcox.test(acidentes$idade, mu = 30, alternative = "two.sided", conf.level = 0.95)
Warning in wilcox.test.default(acidentes$idade, mu = 30, alternative =
"two.sided", : não é possível computar o valor de p exato com o de desempate
Warning in wilcox.test.default(acidentes$idade, mu = 30, alternative =
"two.sided", : cannot compute exact p-value with zeroes

    Wilcoxon signed rank test with continuity correction

data:  acidentes$idade
V = 118.5, p-value = 0.3538
alternative hypothesis: true location is not equal to 30

Resposta: Não rejeitamos H_0, ou seja, a um nível de significância de 5% e com base na amostra podemos concluir que a idade mediana dos indivíduos é igual a 30 anos. O resultado do p-valor do teste foi de 0.3538.

Letra D

  • Podemos concluir, com base na amostra, que a proporção populacional de homens e mulheres é a mesma?

Definindo as hipóteses

H_0: p_{homens} = p_{mulheres} = \frac{1}{2} H_1: p_{homens} \neq p_{mulheres} \neq \frac{1}{2}

binom.test(table(acidentes$sexo)[2], length(acidentes$sexo), p = 0.5, alternative = "two.sided", conf.level = 0.95)

    Exact binomial test

data:  table(acidentes$sexo)[2] and length(acidentes$sexo)
number of successes = 4, number of trials = 20, p-value = 0.01182
alternative hypothesis: true probability of success is not equal to 0.5
95 percent confidence interval:
 0.057334 0.436614
sample estimates:
probability of success 
                   0.2 

Resposta: Rejeitamos H_0, ou seja, a um nível de significância de 5% e com base na amostra, a proporção de homens e mulheres é diferente. O resultado do p-valor foi de 0.0118.

Letra E

  • A frequência de acidentes difere entre as causas?

Para realizar esse teste vamos utilizar o teste qui-quadrado de bondade do ajuste.

Definindo as hipóteses:

H_0: A \hspace{0.1cm} proporção \hspace{0.1cm} das \hspace{0.1cm} causas \hspace{0.1cm} dos \hspace{0.1cm} acidentes \hspace{0.1cm} são \hspace{0.1cm} iguais

H_1: A \hspace{0.1cm} proporção \hspace{0.1cm} das \hspace{0.1cm} causas \hspace{0.1cm} dos \hspace{0.1cm} acidentes \hspace{0.1cm} não \hspace{0.1cm} são \hspace{0.1cm} iguais

acidentes$causa <- as.factor(acidentes$causa)
chisq.test(table(acidentes$causa), p = c(rep(0.25,4)))

    Chi-squared test for given probabilities

data:  table(acidentes$causa)
X-squared = 4.8, df = 3, p-value = 0.187

Resposta: Não Rejeitamos H_0, ou seja, ao nível de significância de 5% e com base na amostra a proporção das causas dos acidentes são iguais. O resultado do p-valor do teste foi de 0.187.

Letra F

  • A variável sexo é aleatória? E a variável idade?

Teste de aleatoriedade para a variável sexo

Definindo as hipóteses

H_0: A \hspace{0.1cm} variável \hspace{0.1cm} sexo \hspace{0.1cm} é \hspace{0.1cm} aleatória

H_1: A \hspace{0.1cm} variável \hspace{0.1cm} sexo \hspace{0.1cm} não \hspace{0.1cm} é \hspace{0.1cm} aleatória

sinais <- ifelse(acidentes$sexo=="Feminino", 1, -1)
randtests::bartels.rank.test(sinais)

    Bartels Ratio Test

data:  sinais
statistic = -1.0164, n = 20, p-value = 0.3095
alternative hypothesis: nonrandomness

Resposta: Não Rejeitamos H_0, ou seja, a um nível de significância de 5% e com base na amostra, a variável sexo é aleatória. O resultado do p-valor foi de 0.3095.

Teste de aleatoriedade para a variável idade

Definindo as hipóteses

H_0: A \hspace{0.1cm} variável \hspace{0.1cm} idade \hspace{0.1cm} é \hspace{0.1cm} aleatória

H_1: A \hspace{0.1cm} variável \hspace{0.1cm} idade \hspace{0.1cm} não \hspace{0.1cm} é \hspace{0.1cm} aleatória

randtests::runs.test(acidentes$idade, alternative = "two.sided")

    Runs Test

data:  acidentes$idade
statistic = 0, runs = 11, n1 = 10, n2 = 10, n = 20, p-value = 1
alternative hypothesis: nonrandomness

Resposta: Não Rejeitamos H_0, ou seja, a um nível de significância de 5% e com base na amostra, a variável idade é aleatória. O resultado do p-valor foi de 1.

Questão 9

  • Análise a base de dados latas.xls para responder as perguntas a seguir.
latas <- readxl::read_xls("latas.xls")

Segue a visualização das 10 primeiras linhas do banco de dados

latas %>%
  slice_head(n = 10) %>%
  gt::gt()
LATAS109 LATAS111
270 287
273 216
258 260
204 291
254 210
228 272
282 260
278 294
201 253
264 292

Estatística Descritiva dos dados

skimr::skim(latas)
Data summary
Name latas
Number of rows 175
Number of columns 2
_______________________
Column type frequency:
numeric 2
________________________
Group variables None

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
LATAS109 0 1 267.11 22.11 200 262 273 282.0 297 ▁▁▂▇▆
LATAS111 0 1 281.81 27.77 205 275 285 294.5 504 ▂▇▁▁▁

Letra A

  • O que você pode dizer acerca da distribuição dos dados? E o que isso implica?

Histograma da variável Latas 109

ggplot2::ggplot(latas, ggplot2::aes(x = LATAS109))+
  ggplot2::geom_histogram(fill='white', 
                          color = "lightgreen", 
                          breaks = hist(latas$LATAS109, plot = F)$breaks)  + ggplot2::xlab("Cargas Axiais") + ggplot2::ylab("Frequência") + ggplot2::ggtitle("Histograma das Cargas Axiais da Lata 109")+
  ggplot2::theme_dark()

Comentário: Observando o histograma acima, podemos observar que os dados estão mais concentrados no lado direito, e que temos uma assimetria à esquerda.

Histograma da variável Latas 111

ggplot2::ggplot(latas, ggplot2::aes(x = LATAS111))+
  ggplot2::geom_histogram(fill='white', 
                          color = "red", 
                          breaks = hist(latas$LATAS111, plot = F)$breaks)  + ggplot2::xlab("Cargas Axiais") + ggplot2::ylab("Frequência") + ggplot2::ggtitle("Histograma das Cargas Axiais da Lata 111")+
  ggplot2::theme_dark()

Comentário: Observando o histograma acima, podemos observar que os dados estão mais concentrados no lado esquerdo, e que temos uma assimetria à direita.

Letra B

  • Existe diferença entre as cargas axiais de cada tipo de lata, em relação ao parâmetro de locação?

Definindo as hipóteses

H_0: \tilde{\mu_{X}} = \tilde{\mu_{Y}} H_1: \tilde{\mu_{X}} \neq \tilde{\mu_{Y}}

Em que X é a latas 109 e Y é a latas 111.

nonpar::mediantest(latas$LATAS109, latas$LATAS111)

 Large Sample Approximation for the Median Test 
 
 H0: The 2 population medians are equal. 
 HA: The 2 population medians are not equal. 
 
 Z = -7.27057418778739 
 
 Significance Level = 0.05 
 The p-value is  3.57962651696038e-13 
 There is enough evidence to conclude that the population medians are different at a significance level of  0.05 . 
 

Resposta: Rejeitamos H_0, ou seja, a um nível de confiança de 95% e com base na amostra existe diferença entre as cargas axiais dos dois grupos considerando a mediana como o parâmetro de locação.

Questão 10

  • Análise a base de dados temperaturas do corpo.xlsx para responder as perguntas a seguir.
temperaturas <- readxl::read_xlsx("temperaturas_do_corpo.xlsx")

Visualizando as primeiras 15 observações do banco de dados

temperaturas %>%
  slice_head(n=15) %>%
  gt::gt()
sujeito idade sexo fumante temperatura1-8 temperatura1-12 temperatura2-8 temperatura2-12
80 24 F S NA 98.6 97.8 98.3
81 21 F S NA 99.3 98.7 98.7
82 28 M S NA 97.8 97.9 98.8
83 27 F N 98.8 98.7 97.8 99.1
84 28 M N 99.4 99.3 97.8 98.6
85 29 M S 98.8 97.8 97.6 97.9
86 19 M N 97.7 98.4 96.8 98.8
87 24 M S 99.0 97.7 96.0 98.0
88 29 M N 98.1 98.3 98.0 98.7
89 25 M S 98.7 97.7 97.0 98.5
90 27 M N 97.5 97.1 97.4 98.9
91 25 M S 98.9 98.4 97.6 98.4
92 21 M S 98.4 98.6 97.6 98.6
93 19 M S 97.2 97.4 96.2 97.1
94 27 M S NA NA 96.2 97.9

Estatística Descritiva dos dados

glimpse(temperaturas)
Rows: 28
Columns: 8
$ sujeito           <dbl> 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, …
$ idade             <dbl> 24, 21, 28, 27, 28, 29, 19, 24, 29, 25, 27, 25, 21, …
$ sexo              <chr> "F", "F", "M", "F", "M", "M", "M", "M", "M", "M", "M…
$ fumante           <chr> "S", "S", "S", "N", "N", "S", "N", "S", "N", "S", "N…
$ `temperatura1-8`  <chr> NA, NA, NA, "98.8", "99.4", "98.8", "97.7", "99.0", …
$ `temperatura1-12` <chr> "98.6", "99.3", "97.8", "98.7", "99.3", "97.8", "98.…
$ `temperatura2-8`  <chr> "97.8", "98.7", "97.9", "97.8", "97.8", "97.6", "96.…
$ `temperatura2-12` <chr> "98.3", "98.7", "98.8", "99.1", "98.6", "97.9", "98.…

Precisamos transformar as variáveis que estão como categóricas para númericas

temperaturas <- 
  temperaturas %>% 
  mutate(
    `temperatura1-8` = as.numeric(`temperatura1-8`),
    `temperatura1-12` = as.numeric(`temperatura1-12`),
    `temperatura2-8` = as.numeric(`temperatura2-8`),
    `temperatura2-12` = as.numeric(`temperatura2-12`)
  )
visdat::vis_dat(temperaturas)

skimr::skim(temperaturas)
Data summary
Name temperaturas
Number of rows 28
Number of columns 8
_______________________
Column type frequency:
character 2
numeric 6
________________________
Group variables None

Variable type: character

skim_variable n_missing complete_rate min max empty n_unique whitespace
sexo 0 1 1 1 0 2 0
fumante 0 1 1 1 0 2 0

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
sujeito 0 1.00 93.50 8.23 80.0 86.75 93.50 100.25 107.0 ▇▇▇▇▇
idade 0 1.00 25.50 4.59 18.0 22.50 25.50 28.25 34.0 ▇▃▇▃▅
temperatura1-8 12 0.57 98.46 0.69 97.2 98.00 98.75 98.90 99.4 ▃▁▂▇▃
temperatura1-12 1 0.96 97.94 0.72 96.7 97.40 98.00 98.40 99.3 ▅▅▅▇▂
temperatura2-8 8 0.71 97.36 0.75 96.0 96.88 97.60 97.82 98.7 ▅▃▇▇▂
temperatura2-12 0 1.00 98.27 0.57 97.0 97.90 98.40 98.70 99.2 ▂▂▆▇▅

Letra A

  • O que você pode dizer acerca da distribuição dos dados? E o que isso implica?
ggplot2::ggplot(temperaturas, ggplot2::aes(x = `temperatura1-8`))+
  ggplot2::geom_histogram(fill='white', 
                          color = "green", 
                          breaks = hist(temperaturas$`temperatura1-8`, plot = F)$breaks)  + ggplot2::xlab("Temperatura") + ggplot2::ylab("Frequência") + ggplot2::ggtitle("Histograma da variável Temperatura 1-8")+
  ggplot2::theme_dark()
Warning: Removed 12 rows containing non-finite values (`stat_bin()`).

ggplot2::ggplot(temperaturas, ggplot2::aes(x = `temperatura1-12`))+
  ggplot2::geom_histogram(fill='white', 
                          color = "blue", 
                          breaks = hist(temperaturas$`temperatura1-12`, plot = F)$breaks)  + ggplot2::xlab("Temperatura") + ggplot2::ylab("Frequência") + ggplot2::ggtitle("Histograma da variável Temperatura 1-12")+
  ggplot2::theme_dark()
Warning: Removed 1 rows containing non-finite values (`stat_bin()`).

ggplot2::ggplot(temperaturas, ggplot2::aes(x = `temperatura2-8`))+
  ggplot2::geom_histogram(fill='white', 
                          color = "red", 
                          breaks = hist(temperaturas$`temperatura2-8`, plot = F)$breaks)  + ggplot2::xlab("Temperatura") + ggplot2::ylab("Frequência") + ggplot2::ggtitle("Histograma da variável Temperatura 2-8")+
  ggplot2::theme_dark()
Warning: Removed 8 rows containing non-finite values (`stat_bin()`).

ggplot2::ggplot(temperaturas, ggplot2::aes(x = `temperatura2-12`))+
  ggplot2::geom_histogram(fill='white', 
                          color = "darkblue", 
                          breaks = hist(temperaturas$`temperatura2-12`, plot = F)$breaks)  + ggplot2::xlab("Temperatura") + ggplot2::ylab("Frequência") + ggplot2::ggtitle("Histograma da variável Temperatura 2-12")+
  ggplot2::theme_dark()

Comentário: De acordo com a análise gráfica, existe certa conjectura de que os dados são assimétricos, todavia parece existir uma certa similidaridade entre a 1ª medida que é a variável temperatura1-8 e a 3ª medida que é a variável temperatura2-8, e entre o outro par, a 2ª medida que é a variável temperatura1-12 e a 4ª medida que é variável temperatura2-12.

ggplot2::ggplot(temperaturas, ggplot2::aes(x = idade))+
  ggplot2::geom_histogram(fill='white', 
                          color = "black", 
                          breaks = hist(temperaturas$idade, plot = F)$breaks)  + ggplot2::xlab("Idade") + ggplot2::ylab("Frequência") + ggplot2::ggtitle("Histograma da Idade dos pacientes")+
  ggplot2::theme_dark()

Letra B

  • Há relação entre tabagismo e gênero

Definindo as hipóteses:

H_0: Não \hspace{0.1cm} existe \hspace{0.1cm} relação \hspace{0.1cm} entre \hspace{0.1cm} o \hspace{0.1cm} tabagismo \hspace{0.1cm} e \hspace{0.1cm} gênero

H_1: Existe \hspace{0.1cm} relação \hspace{0.1cm} entre \hspace{0.1cm} o \hspace{0.1cm} tabagismo \hspace{0.1cm} e \hspace{0.1cm} gênero

fisher.test(table(temperaturas$sexo, temperaturas$fumante))

    Fisher's Exact Test for Count Data

data:  table(temperaturas$sexo, temperaturas$fumante)
p-value = 0.6195
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
 0.006014614 4.149234022
sample estimates:
odds ratio 
 0.3369766 

Resposta Não rejeitamos H_0, ou seja, ao nível de confiança de 95% e com base na amostra não existe relação entre o tabagismo e o gênero. O resultado do p-valor foi de 0.6195.

Letra C

  • Há relação entre idade e tabagismo?

Definindo as hipóteses:

H_0: Não \hspace{0.1cm} há \hspace{0.1cm} relação \hspace{0.1cm} entre \hspace{0.1cm} a \hspace{0.1cm} idade \hspace{0.1cm} e \hspace{0.1cm} tabagismo H_1: Há \hspace{0.1cm} relação \hspace{0.1cm} entre \hspace{0.1cm} a \hspace{0.1cm} idade \hspace{0.1cm} e \hspace{0.1cm} tabagismo

fisher.test(temperaturas$idade, temperaturas$fumante)

    Fisher's Exact Test for Count Data

data:  temperaturas$idade and temperaturas$fumante
p-value = 0.7411
alternative hypothesis: two.sided

Resposta Não rejeitamos H_0, ou seja, ao nível de confiança de 95% e com base na amostra não existe relação entre o tabagismo e a idade. O resultado do p-valor foi de 0.7411.

Letra D

  • Há diferença de temperatura entre fumantes e não fumantes, em relação ao parâmetro de locação?

Definindo as hipóteses

H_0: \tilde{\mu_{X}} = \tilde{\mu_{Y}} H_1: \tilde{\mu_{X}} \neq \tilde{\mu_{Y}}

Em que X é os Fumantes e Y é os não fumantes.

wilcox.test(temperaturas$`temperatura1-8`~temperaturas$fumante, correct = F)
Warning in wilcox.test.default(x = DATA[[1L]], y = DATA[[2L]], ...): não é
possível computar o valor de p exato com o de desempate

    Wilcoxon rank sum test

data:  temperaturas$`temperatura1-8` by temperaturas$fumante
W = 27, p-value = 0.7438
alternative hypothesis: true location shift is not equal to 0

Resposta: Não rejeitamos H_0, ou seja, ao nível de confiança de 95% e com base na amostra não diferença no parâmetro de locação entre os fumantes e os não fumantes. O resultado do p-valor foi de 0.7438.

Observação: Foi realizado o teste com as outras temperaturas, e em todas o resultado foi o mesmo.

Letra E

  • Há diferença de temperatura entre os horários, em relação ao parâmetro de locação?

Teste entre as variáveis Temperatura1-8 e Temperatura1-12

Definindo as hipóteses

H_0: \tilde{\mu_{X}} = \tilde{\mu_{Y}} H_1: \tilde{\mu_{X}} \neq \tilde{\mu_{Y}}

Em que X é a temperatura1-8 e Y é a temperatura1-12.

nonpar::mediantest(na.omit(temperaturas$`temperatura1-8`), na.omit(temperaturas$`temperatura1-12`))

 Exact Median Test 
 
 H0: The 2 population medians are equal.  
 HA: The 2 population medians are not equal. 
 
  
 
 Significance Level = 0.05 
 The p-value is  0.10826396731704 
 There is not enough evidence to conclude that the population medians are different at a significance level of  0.05 . 
 

Resultado: Não Rejeitamos H_0, ou seja, com base na amostra e com 95% de confiança não existe diferença de temperatura com relação ao parâmetro de locação entre a temperatura1-8 e temperatura1-12. Onde o resultado do p-valor foi de 0.1083.

Teste entre as variáveis Temperatura2-8 e Temperatura2-12

Definindo as hipóteses

H_0: \tilde{\mu_{X}} = \tilde{\mu_{Y}} H_1: \tilde{\mu_{X}} \neq \tilde{\mu_{Y}}

Em que X é a temperatura2-8 e Y é a temperatura2-12.

nonpar::mediantest(na.omit(temperaturas$`temperatura2-8`), na.omit(temperaturas$`temperatura2-12`))

 Large Sample Approximation for the Median Test 
 
 H0: The 2 population medians are equal. 
 HA: The 2 population medians are not equal. 
 
 Z = -3.51324026261472 
 
 Significance Level = 0.05 
 The p-value is  0.000442676986343332 
 There is enough evidence to conclude that the population medians are different at a significance level of  0.05 . 
 

Resultado: Rejeitamos H_0, ou seja, com base na amostra e com 95% de confiança existe diferença de temperatura com relação ao parâmetro de locação entre a temperatura2-8 e temperatura2-12. Onde o resultado do p-valor foi de 0.0004.