Introdução

Eu, Luiz Henrique de Araújo Paura, venho, por meio deste relatório, demonstrar o conhecimento adquirido no software R a partir dos ensinamentos da disciplina Estatística Básica B, ministrada pela professora da Univesridade Federal da Bahia (UFBA) Maristela Dias de Oliveira.
O relatório em questão demonstra os conteúdos teóricos adquiridos em aulas de uma forma mais geral, mostrando assim comandos que possivelmente resolverão problemas futuros que dizem respeito a assuntos da disciplina.

 

Relatório do 1º dia (08/08/2019)

Durante a nossa primeira aula prática na disciplina de Estatística Básica B, a professora orientadora Maristela Dias reintroduzu o curso de R ultilizando alguns comandos(Já ultilizados na disciplina anterior, que foi Estatística Básica A) citados abaixo:

- Criação de vetores

Para criar um conjunto de dados simples, ultilizamos vetores,cujos comandos ultilizados estarão sendo citados abaixo:
x<- c(3,12,25.3,18,0,5) #Criando um vetor aleatório
y<- c(5,3,12,7,55,10) #Criando outro vetor aleatóro

- Criação de matrizes

Para criar uma Matriz simples, que é a junçao desses conjuntos da dados simples de formar organizada, ultilizamos os comandos:
# nome<-matrix(x,'numero de linhas','numero de colunas')
# Para criar uma Matriz com 2 ou mais vetores,ultilizamos os comandos:
z <- cbind(x,y);z #Para organizá-los em colunas
##         x  y
## [1,]  3.0  5
## [2,] 12.0  3
## [3,] 25.3 12
## [4,] 18.0  7
## [5,]  0.0 55
## [6,]  5.0 10
#         ou
w<-rbind(x,y);z #Para organizá-los em linhas
##         x  y
## [1,]  3.0  5
## [2,] 12.0  3
## [3,] 25.3 12
## [4,] 18.0  7
## [5,]  0.0 55
## [6,]  5.0 10
Mais alguns comandos que podem te ajudar a desenvolver a formnatação da sua matriz são:
  • Para saber a dimensão da sua matriz(nº de linhas e nº de colunas):
dim(z)
## [1] 6 2
  • Para saber o numero total de células da as matriz
length(z)
## [1] 12
  • Para retirar/adicionar um valor da sua Matriz(ou vetor),ultilizamos a função:
a<-x[-6] #Retirar
x <- c(x,20) #Adicionar
x <- c(x[0:3],20,x[4:6]) #Adicionar a um local específico
  • Para multiplicar as atrizes ,ultilizamos as funções
m_prod <- w%*%z
print(m_prod)
##         x      y
## x 1142.09  530.6
## y  530.60 3352.0

 

Relatório do 2º dia (22/08/2019)

Verificação do teorema central do limite

Para fazer a verificação do TCL, ultilizando os códigos;
n <- 20 #Para atribuir o valor 20 ao objeto "n" 
media <- 10 #Para atribuir o valor 10 ao objeto "media"
desvio <- 12 #Para atribuir o valor 12 ao objeto  "desvio"
Para criar uma amostra de distribuição normal, ultiliza-se o comando
x <- rnorm(n,media,desvio)

y <- rnorm(20,10,12) #Caso os valores não tenham nome próprio
z <- round(mean(y),5) #Para calcular a esperança dos dados e arredondar as casas decimais
No 2º dia, os estudantes foram orientados a fazer um vetor com dados de cada um dos 29 alunos
medias <- c(5.66743,11.44207,9.66593,9.90355,14.77961,8.7968,10.70396,8.20088,12.70802,13.37757,13.74448,11.68138,11.1109,9.60505,9.38486,10.9275,3.999,13.75618,7.44419,15.8419,8.58974,7.96775,9.20028,8.23849,12.41705,8.374913,10.84164,15.11415,12.77037);mean(medias)
## [1] 10.56054
Para saber a quantidades de elementos no vetor criado acima:
length(medias)
## [1] 29
E, para criar um Histograma com seu vetor, ultiliza-se o comando
hist(medias,col='red')

##### Só para lebrar, o TCL diz que a média das amostras (também chamada de x̄) que contêm mais de 30 elementos ,retiradas de uma população P com Esperança(média) sendo E(X)=u e Var(X)=sigma² segue uma distribuição aproximadamente normal com média amostral x̄ e variância sigma²/n.

Se a população P for normal, x̄ segue uma normal com média E(Xbarra) = u e variânciqa Var(Xbarra)=sigma²/n , sem necessidade de mais de 30 elementos na amostra.
Agora, para provar o TCL com base na binomial, prescisamos admitir que se X~Binomial(m,p), E(X)=u=mp Var(X)=sigma²=mp(1-p), e então, temos de gerar amostras aleatórias e calcular suas médias. Para isso, temos os passos:
  • Para criar vetor com amostras,devemos ultilixar a função
x1 <- rbinom(20,25,0.8)
x2 <- rbinom(20,25,0.8)
x3 <- rbinom(20,25,0.8)
x4 <- rbinom(20,25,0.8)
x5 <- rbinom(20,25,0.8)
x6 <- rbinom(20,25,0.8)
x7 <- rbinom(20,25,0.8)
x8 <- rbinom(20,25,0.8)
x9 <- rbinom(20,25,0.8)
x10 <- rbinom(20,25,0.8)
Agora, calcular suas médias com os comandos
mediasx1 <- mean(x1)
mediasx2 <- mean(x2)
mediasx3 <- mean(x3)
mediasx4 <- mean(x4)
mediasx5 <- mean(x5)
mediasx6 <- mean(x6)
mediasx7 <- mean(x7)
mediasx8 <- mean(x8)
mediasx9 <- mean(x9)
mediasx10 <- mean(x10)

Por fim, criaremos o vetor com as médias obtidas, e logo após faremos a esperança dessas medias:

MediasX <- c(mediasx1,mediasx2,mediasx3,mediasx4,mediasx5,mediasx6,mediasx7,mediasx8,mediasx9,mediasx10);MediasX
##  [1] 20.65 19.65 20.10 20.50 20.60 20.30 19.90 19.90 20.80 18.95
Medias <- mean(MediasX);Medias
## [1] 20.135
hist(MediasX)

 

Relatório do 3º dia(29/08/2019)

No 3º dia de conteúdo prático, foi proposto aos estudantes um exercíico com base no conteúdo gerado a partir das aulas teóricas. O exemplo está sendo citado abaixo:

Tópico 1.1

Uma votação realizada entre 400 eleitores, escolhidos ao acaso dentre todos aqueles de determinado distrito indicou que 55% deles são a favor do candidato A. Quais os limites de confiança de 99% para proporção de todos os eleitores do distrito favoráveis ao candidato A?
Resolução
n=400
pchapeu1=0.55
Zcomp=0.99
Zalfa=qnorm(0.995, 0, 1, lower.tail = T)
Limite_Inferior=0.55-((Zalfa/2)*sqrt(0.55*0.45/n))
Limite_Superior=0.55+((Zalfa/2)*sqrt(0.55*0.45/n))
cbind(Limite_Inferior,Limite_Superior)
##      Limite_Inferior Limite_Superior
## [1,]       0.5179635       0.5820365

Tópico 1.2

Se o número de eleitores desse distrito fosse 230 mil pessoas. Qual o intervalo de votantes no candidato A esperados?
Mínimo_esperado <- Limite_Inferior*230000
Máximo_esperado <- Limite_Superior*230000
cbind(Mínimo_esperado,Máximo_esperado)
##      Mínimo_esperado Máximo_esperado
## [1,]        119131.6        133868.4

Tópico 2.1:

Numa pesquisa de opinião entre 600 pessoas, 240 responderam sim. Estimar a porcentagem de pessoas com essa opinião na população usando um intervalo de confianção de 96%.
Resolução:
n=600
pchapeu2=240/600
Zalfa=qnorm(0.975, 0, 1, lower.tail = T)
e=((Zalfa/2)*sqrt(pchapeu2*(1-pchapeu2)/n))
Limite_I<-(pchapeu2-e)*100
Limite_S<-(pchapeu2+e)*100
cbind(Limite_I,Limite_S)
##      Limite_I Limite_S
## [1,] 38.04004 41.95996
# OBS= p̂= pchapéu

 

TCL para a Poisson

Já para a distribuição de probabilidades Poisson, temos de admitir que se X~Poisson(λ)(sendo λ= lambda),a sua E(X)=u= λ e sua Var(X)= λ. Portanto, Xbarra vai ter uma média lambda e Var(X)=lambda/n . o comando rpois no entando usa (n, lambda), para demonstrar a quantidade (“n” amostras aleatórias). Como exemplo, podemos gerar uma distribuição com os dados abaixo
n<-30
lambda=12
y<-c()
for(i in 1:1000){
  y[i]=mean(rpois(n, lambda))
}
hist(y, freq=F, main = "Histograma das médias das amostras", ylab = "Frequência", xlab="Média das amostras" )
x<-y
u_poisson <- lambda
sd_poisson <- sqrt(lambda/n)
curve(dnorm(x,u_poisson,sd_poisson), add=T)

Veremos agora, como se constrói um intervalo de confiança para a proporção:

Em nossa prova encontramos o erro por z(alfa/2) * sqrt(pchapeu*(1-pchapeu)/n). Com esse resultado, devemos instalar um pacote no R que nos ajude a desenvolver esssas contas. O nome desse pacote é Hmisc e podemos intalá-lo através dos seguintes comandos:
install.packages('Hmisc')
library(Hmisc)
binconf(240, 600, alpha=0.05, include.x = T, include.n = T, return.df=T, method="asymptotic") 
##    X   N PointEst     Lower     Upper
##  240 600      0.4 0.3608007 0.4391993
# Na tabela gerada, temos os valores Lower(Mínimo) que é o limite inferior, temos o Upper(Máximo), que é o nosso limite superior e nosso pointEst, que é o nosso ponto médio da distribuição( que é o nosso  da distribuição.

 

Construindo intervalo de confiança para média

Assim como para a proporção, o intervalo de confiança da média no R necessita de um pacote específico chamado de boot. Após instalarmos e ativarmos o pacote boot , podemos obter os resultados desejados a partir de:
install.packages('boot')
library(boot)
# norm.ci(t0 = Xbarra, var.t0 = var.Xbarra, conf=1-alpha)

 

Para a aula, os estudantes da disciplina de Estatística Básica B tiveram mais exercícios páticos para resolver em seus softwares, que estarão citados abaixo:

Tópico 1:

Temos o seguinte problema: Você recebe a revista de uma universidade. A revista afirma que o tamanho médio das turmas para cursos integrais é menor que 32 alunos. Você sabe que o desvio padrão do número de alunos é de 0.89 alunos e quer testar essa afirmação; Para isso seleciona 18 turmas, determinando seus tamanhos. Os resultados foram (35,28,29,33,32,40,26,25,29,28,30,36,33,29,27,30,28,25). Ao nível de 1%, voce pode dar suporte à afirmação da revista?
Resolução
turmas <- c(35,28,29,33,32,40,26,25,29,28,30,36,33,29,27,30,28,25)
# z.test(x=turmas, mu=32, sigma.x=0.89, alternative="less", conf.level=0.99)

# OBS 
#- Onde o primeiro x são as observações
#- mu é o valor a ser testado (Hipótese nula=Ho)
#- sigma.x é o desvio padrão das observações
#- alternative="less" é o indicativo de que o teste é unilateral à esquerda (se fosse dos dois lados colocaria "two.sided" e se fosse unilateral à direita ="greater")
No caso do comando do R é como se ele fizesse a região crítica com o z, invertendo a ordem da fórmula a região de rejeição é marcada pelo z que se consegue quando fazemos qnorm(niveldeconfiança) a primeira coisa que ele entrega quando se roda o comando é um z. se esse z estiver dentro da região delimitada rejeitamos a nossa Hipótese nula(Ho).
Em resumo, para o R precisamos lançar:
  • Um vetor com as observações. que é x
  • Um valor de média que se deseja testar(rejeitar ou não) (H0), que nesse caso é 32. tem que ser chamado de mu no comando
  • se é unilateral ou bilateral

Relatório do 4º dia(03/10/2019)

Foi feita uma revisão com base nas ultimas aulas, com mais exercícios práticos.

Tópico 1.1 (Ultimo exeplo da aula do dia 26/09)

Resolver o mesmo problema supondo que não temos o sigma da população (que na questão era 0.89).
Resolução: Temos de fazer um teste de tstudent (t-test). Assim:
t.test(x=turmas, mu=32, alternative = "less", conf.level = 0.99)
## 
##  One Sample t-test
## 
## data:  turmas
## t = -1.9428, df = 17, p-value = 0.0344
## alternative hypothesis: true mean is less than 32
## 99 percent confidence interval:
##      -Inf 32.58902
## sample estimates:
## mean of x 
##  30.16667
Onde:
  • df são o numero de graus de liberdade. No caso temos 17 porque n = 18 e se faz n-1.
OBS:

Mesma coisa no pspp: Você insere os valores intercalando eles com a tecla enter. Vai em analisar->comparar médias->teste t->joga a variavel das observações pra coluna da direita. insere o H1 a ser testado embaixo. Vai em opções e seleciona o tamanho do intervalo de confiança desejado. pra ficar que nem o teste do R e ver se tá dando certo a gente poe 0.99 embaixo de sig-2tailed. depois de rodar, ele te dá a probabilidade do que ta fora do intervalo simetrico. pra saber o que sobra só de um lado. e conseguir um teste unilateral, basta dividir o valor por 2.

 

Tópico 2: Teste de hipótese para proporção populacional

Para realizar esse teste, vamos para um exemplo prático:
O rótulo de uma caixa de sementes informa que a taxa de germinação é de 90%. Mas está vencida. Se acredita que a taxa de germinação vai ser inferior a essa número. Faz-se um experimento com n = 400 (sementes). 350 germinam. Qual a conclusão ao nível de 1% de significância?
prop.test(350,400,0.9, conf.level=0.99, alternative="less") 
## 
##  1-sample proportions test with continuity correction
## 
## data:  350 out of 400, null probability 0.9
## X-squared = 2.5069, df = 1, p-value = 0.05667
## alternative hypothesis: true p is less than 0.9
## 99 percent confidence interval:
##  0.0000000 0.9096038
## sample estimates:
##     p 
## 0.875
Onde:
  • O primeiro argumento é o número de elementos com a característica de interesse na amostra
  • O segundo é o tamanho da amostra
  • O terceiro é a proporção a ser testada(que foi afirmada)
  • O quarto se chama conf.level e é onde você bota o nivel de confiança que é 1-alfa
  • O quinto é a parte em que você identifica como que está sendo testada a hipótese alternativa(H1). que nem o caso do Tópico 1 do dia(29/08/2019) o outro essa parte. “two.sided” pra bilateral, “less” para unilateral à esquerda e “greater” pra unilateral à direita.

Tópico 3

amostra1=c(51, 47, 75, 35, 72, 84, 45, 11, 52, 57)
amostra2=c(27, 75, 49, 69, 73, 63, 79, 37, 84, 32)
t.test(amostra1,amostra2,mu=0,alternative="two.sided")
## 
##  Welch Two Sample t-test
## 
## data:  amostra1 and amostra2
## t = -0.62797, df = 17.998, p-value = 0.5379
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -25.63902  13.83902
## sample estimates:
## mean of x mean of y 
##      52.9      58.8

OBS:

  • Caso o α(Alpha) não seja indicado, o o nivel de confiança o r vai pro padrão(que é 95%)
  • H0 : u1- u2 = 0
  • H1 : u1>u2 ou u2 > u1
  • Nota 2: como H0 tá dentro do intervalo de confiança, então podemos ter a confiança de não rejeitar a nossa Ho.  

Relatório do 5º dia (10/10)

Neste dia, foi revisada a atividade 4 feita dia 03/10/2019.
Resolvemos depois a mesma questão no SPSS onde devemos inserir todas as observações numa coluna só, seguidas cada uma por um 1 ou um 2 na linha seguinte como demarcação de que grupo de observações vem essa observação.Em seguida ir em Analyze − > Compare Means − > One-Sample T Test. especificar qual é a variável de teste e qual a variável de organização. clicar em define groups e indicar quais os números que separam os grupos e depois clicar em ok Outra vez o valor p ficou muito grande. aproximadamente 59%. aceitamos H0. No R, nós temos um comando que resume essas medidas;
qf(0.975, df1=8, df2=6, lower.tail = F)
## [1] 0.2149754
Onde
  • O primeiro valor é nosso α(alpha)
  • O segundo valor e o terceiro são os valores para as 2 variaveis
  • E o ultimo é para inserir ou não a cauda a esquerda

 

Teste F

Para desenvolvermos um teste F no R ultilizamos o comando

#      shapiro.test()

Relatório do 6º dia(17/10/2019)

Teste de variancia para variaveis normais no spss

No dia 17/10/2019, foi nos dada uma questão e alguns dados no e-mail “dados para a aula”. para passar as duas variaveis do excel pro pspp nós usamos

#ctrl c + ctrl v porque colar com o mouse dava problemas com o pspp. em seguida usamos a coluna seguinte pra identificar as variaveis. na seção visualização de variáveis, que fica abaixo, mudamos as casas das variaveis de 2 casas para 4 casas porque ele estava arredondando.

Foi nos dada uma questão para treino:

Tópico 1

Um analista de qualidade quer avaliar se existe diferença entre as variabilidades na produção do eixo comando desenvolvido por dois sistemas de usinagem. A tabela a seguir apresenta as medições de duas populações independentes da população normal. Podemos dizer que as variâncias de ambas são iguais?

 

Resolução

H0: são iguais. H1:são diferentes
Vamos em comparar medias -> independentes -> e comparamos
Vai abrir uma tabela com o resultado dos testes . o que vier embaixo da coluna sig é o p valor. temos 0.002 de erro de cometer o erro tipo 1 (que é a prob de rejeitar H0 e errar ao fazer isso). Logo, está seguro rejeitar nossa hipótese nula.
Rejeitando H0, nossa resposta é que as variancias são diferentes. Quando realizamos esse procedimento ele sempre faz um teste bilateral pra igualdade de variancias.

Tópico 2

Um grupo de 10 pessoas é submetido a um tipo de dieta por 10 dias, estando o peso antes do início (xi) e no final da dieta (yi) são marcados pela tabela a seguir: ao nivel de 5%, podemos concluir que houve diminuição do peso médio pela aplicação a dieta?

 

Resolução

H0: u_antes = u_depois

Que é o mesmo que dizer que u_antes - u_depois = 0 , onde u é o peso médio. ##### H1: u_antes > u_depois Que é o mesmo que dizer que u_antes - u_depois > 0. ##### Podemos chamar u_antes-u_depois de ud = media das diferenças. então H0 ud=0, H1: ud>0

xi<- c(120,104,93,87,85,98,102,106,88,90)
yi<- c(116,102,90,83,86,97,98,108,82,85)
#como as amostras não são diferentes o procedimento jogado pra gente é criar uma coluna com a diferença de um pelo outro. vamos fazer uma com x-y
a<-xi-yi #São os nossos dados emparelhados
mean(a) #Que é a média da distribuição
## [1] 2.6
sd(a) #que é o desvio padrão dos dados
## [1] 2.590581

 

Considerações Finais

Agradeço a professora orientadora Maristela Dias de Oliveira por todo o comprometimento e por toda a competência dada aos seus alunos durante os 4 mêses de convivência.