library(dplyr)
library(magrittr)
library(readr)
library(ggplot2)
IC_q1a <- function(x, sigma2, confianca) {
amostra = na.omit(x)
n = length(amostra)
x_barra = mean(amostra)
alfa = 1-confianca
z = qnorm(1-alfa)
L = (x_barra - z*sqrt(sigma2/n)) %>% round(1)
cat("IC(m,", confianca*100, "%) = [", L, ",Inf).", sep = "")
}
IC_q1b <- function(x, sigma2, confianca) {
amostra = na.omit(x)
n = length(amostra)
x_barra = mean(amostra)
alfa = 1-confianca
z = qnorm(1-alfa)
L = (x_barra + z*sqrt(sigma2/n)) %>% round(1)
cat("IC(m,", confianca*100, "%) = (-Inf,", L, "].", sep = "")
}
IC_q1c <- function(x, sigma, confianca) {
amostra = na.omit(x)
n = length(amostra)
x_barra = mean(amostra)
alfa = 1-confianca
z = qnorm(1-alfa/2)
LI = (x_barra - z*sigma/sqrt(n)) %>% round(1)
LS = (x_barra + z*sigma/sqrt(n)) %>% round(1)
cat("IC(m,", confianca*100, "%) = [", LI, ",", LS, "].", sep = "")
}
IC_q1d <- function(x, sigma, confianca) {
amostra = na.omit(x)
n = length(amostra)
x_barra = mean(amostra)
alfa = 1-confianca
z = qnorm(1-alfa/2)
LI = (x_barra - z*sigma/sqrt(n)) %>% round(1)
LS = (x_barra + z*sigma/sqrt(n)) %>% round(1)
# cat("IC(m,", confianca*100, "%) = [", LI, ",", LS, "].", sep = "")
cont = ifelse(30>=LI & 30<=LS, 1, 0)
return(cont)
}
amostra = data.frame(
replicate(1000, rnorm(25, mean = 30, sd = sqrt(25)))
)
soma = 0
for (i in 1:length(amostra)) {
ifelse(
(IC_q1d(amostra[[i]], 5, 0.9)==1), (soma = soma +1), 0
)
}
# soma
cat(
(soma/1000)*100, "%", sep = ""
)
## 90.5%
## Como pode ser observado, a porcentagem é aproximadamente 90%, o que indica que em 90% das vezes o intervalo contém o verdadeiro valor de mu
IC_q2 <- function(x, confianca) {
x = na.omit(x)
n = length(x)
p_chapeu = 1/2
alfa = 1 - confianca
z = qnorm(confianca + alfa/2)
erro = sqrt(0.5*0.5/n)*z
LI = p_chapeu - erro
LS = p_chapeu + erro
cat("IC(p,", confianca*100, "%) = [", LI, ",", LS, "]", sep= "")
}
base_3 <- read_table2("G:/Meu Drive/UFF/Met. Comp. para Est. II/Listas/Lista 04/Base saude.txt", na = "9")
base_3$HIV %<>% factor(labels = c("Não", "Sim"))
base_3$DST %<>% factor(labels = c("Não", "Sim"))
base_3$Sexo %<>% factor(labels = c("Feminino", "Masculino"))
Como a função da letra d era uma adaptação da c, usei a função criada na letra c.
n = length(base_3$Peso); n
## [1] 30
## Como n é suficientemente grande, pelo TCL podemos estimar a variância pela variância amostral
IC_q1c(base_3$Peso, sigma = sqrt(var(base_3$Peso, na.rm = T)), confianca = 0.97)
## IC(m,97%) = [138.5,371.1].
## Foi realizada a suposição de que n é suficientemente grande para usar o TCL.
base_q3b <- base_3 %>% filter(HIV=="Sim") %$% Estatura
## Assumindo que a variância da amostra é um bom estimador para a variância da população
IC_q1c(base_q3b, sigma = sqrt(var(base_q3b, na.rm = T)), confianca = 0.95)
## IC(m,95%) = [76.7,139.5].
## Isso quer dizer que aproximadamente em 95% das vezes o intervalo conterá o verdadeiro valor de mu.
## Foi realizada a suposição de que a variância amostral é um bom estimador para a variância populacional.
Análogo a b
base_q3d <- base_3 %>% filter(Sexo=="Feminino", HIV=="Não") %$% Idade
## Assumindo que a variância amostral é um bom estimador para a variância populacional
IC_q1c(base_q3d, sigma = sqrt(var(base_q3d, na.rm = T)), confianca = 0.90)
## IC(m,90%) = [26.4,42.8].
## Isso quer dizer que em 90% das vezes o intervalo conterá o verdadeiro valor de mu.
## Foi realizado a suposição de que a variância amostral é um bom estimador para a variância populacional.
IC_q7 <- function(x, y, conf){
grupos = levels(y)
for(i in 1:length(grupos)){
aux = x[y==grupos[i]] %>% .[!is.na(.)]
cat(grupos[i]," - ", "")
IC_q1c(aux, sigma = sqrt(var(aux, na.rm = T)), conf)
cat("\n")
}
}
IC_q7(base_3$Peso, base_3$Sexo, 0.90)
## Feminino - IC(m,90%) = [59.1,312.1].
## Masculino - IC(m,90%) = [183.4,423.9].
IC_q7(base_3$Estatura, base_3$DST, conf = 0.95)
## Não - IC(m,95%) = [56.2,147.2].
## Sim - IC(m,95%) = [97,158.4].
## Para os pacientes observados divididos em grupo possui e não possui DST, pode-se observar o intervalo que conterá o verdadeiro valor da média da estatura de cada grupo com um nível de confiança de 95%.
## Com base nos intervalos dos grupos, leva-nos a supor que a média da Estatura de quem possui DST é maior se comparado com a média de quem não possui DST.
IC_q6_var <- function(x, conf) {
x = na.omit(x)
n = length(x)
alfa = 1-conf
S2 = var(x, na.rm = T)
x1 = qchisq(alfa/2, df = n-1, lower.tail = F)
x2 = qchisq(1-alfa/2, df = n-1, lower.tail = F)
LI = (n-1)*S2/x1
LS = (n-1)*S2/x2
cat(
"IC(sigma^2,", conf*100, "%) = [", LI %>% round(2), ",", LS %>% round(2), "].", sep = ""
)
}
base_3 %>% filter(Sexo=="Masculino", HIV=="Sim") %>% select(Idade) %>% pull %>% IC_q6_var(0.90)
## IC(sigma^2,90%) = [28.5,102.72].
## Se realizado o intervalo de confiança para a variância para todas as possíveis amostras da população, teriamos que aproximadamente 90% desses intervalos conteriam o real valor do parâmetro.
## Foram realizadas as suposições de que a amostra veio de uma distribuição normal e que a variância amostral é um bom estimador para a variância populacional.
IC_q6_var(base_3$Estatura, 0.95)
## IC(sigma^2,95%) = [3076.14,8934.48].
## Se realizado o intervalo de confiança para a variância para todas as possíveis amostras da população, teríamos que aproximadamente 90% desses intervalos conteriam o real valor do parâmetro.
## Foram realizadas as suposições de que a amostra veio de uma distrivui
base_3 %>% filter(Escol==0)
## # A tibble: 1 x 10
## Codigo Datacol Sexo Idade Peso Estatura HIV Escol DST Tipo
## <chr> <chr> <fct> <int> <dbl> <dbl> <fct> <int> <fct> <int>
## 1 AB15 01/01/14 Masculino 18 65 166 Sim 0 Não NA
## Não é possível encontrar o intervalo de confiança pois o tamanho da amostra é 1.
base_7 <- read_rds("G:/Meu Drive/UFF/Met. Comp. para Est. II/Listas/Lista 04/exames medicos.rds")
## HDL
## Empiricamente, não é razoável supor normalidade.
ggplot(base_7, aes(sample = base_7$HDL)) + geom_qq() + geom_qq_line()
## LDL
## Empiricamente, é razoável supor normalidade.
ggplot(base_7, aes(sample = base_7$LDL)) + geom_qq() + geom_qq_line()
## Glicose
## Empiricamente, é razoável supor normalidade
ggplot(base_7, aes(sample = base_7$glicose)) + geom_qq() + geom_qq_line()
## Linfocitos
## Empiricamente, não é razoável supor normalidade.
ggplot(base_7, aes(sample = base_7$linfocitos)) + geom_qq() + geom_qq_line()
IC_media_q7 <- function(x, conf){
x_barra = mean(x, na.rm = T)
s2 = var(x, na.rm = T)
n = length(x[!is.na(x)])
alfa = 1-conf
erro = qt(1-alfa/2, df = n-1) * sqrt(s2/n)
LI = x_barra - erro
LS = x_barra + erro
cat(
"IC (m,", conf*100, "%) = [", LI, ";", LS, "]", sep = ""
)
}
IC_media_q7(base_7$LDL, 0.98)
## IC (m,98%) = [29.06364;31.40836]
IC_media_q7(base_7$glicose, 0.98)
## IC (m,98%) = [46.36625;51.08975]
## Empiricamente. Igual feito na letra a.
IC_var_q7 <- function(x, conf){
n = length(x[!is.na(x)])
s2 <- var(x, na.rm = T)
alfa = 1-conf
x1 = qchisq(alfa/2, df = n-1, lower.tail = F)
x2 = qchisq(1-alfa/2, df = n-1, lower.tail = F)
LI = (n-1)*s2 / x1
LS = (n-1)*s2 / x2
cat(
"IC (sigma,", conf*100, "% = [", LI, ";", LS, "]", sep = ""
)
}
IC_var_q7(base_7$LDL, 0.95)
## IC (sigma,95% = [3.373065;10.70688]
IC_var_q7(base_7$glicose, 0.95)
## IC (sigma,95% = [13.68889;43.45165]
IC_prop_q7 <- function(num_s, n, conf, conservador=FALSE){
if_else(
conservador==FALSE, p_chapeu = num_s/n, p_chapeu = 1/2
)
alfa = 1-conf
erro = qnorm(1-alfa/2) * sqrt( (pchapeu*(1-p_chapeu))/n )
LI = p_chapeu - erro
LS = p_chapeu + erro
cat(
"IC (p,", conf*100, "%) = [", LI, ";", LS, "]", sep = ""
)
}
base_8 <- read_rds("G:/Meu Drive/UFF/Met. Comp. para Est. II/Listas/Lista 04/colesterol.rds")
## Empiricamente, não é razoável supor normalidade.
ggplot(base_8, aes(sample = base_8$HDL)) + geom_qq() + geom_qq_line()
## Empiricamente, é razoável supor normalidade.
ggplot(base_8, aes(sample = base_8$LDL)) + geom_qq() + geom_qq_line()
## Suponde normalidade independente do resultado na questão acima.
## Supondo normalidade, sim é possível obter o Intervalo de Confiança para a média.
IC_media_q8 <- function(x, conf){
n = length(x[!is.na(x)])
x_barra = mean(x, na.rm = T)
s2 = var(x, na.rm = T)
alfa = 1-conf
erro = qt(1-alfa, df = n-1) * sqrt(s2/n)
LI = x_barra - erro
LS = x_barra + erro
cat(
"IC (m,", conf*100, ") = [", LI, ";", LS, "]", sep = ""
)
}
## Isso quer dizer que aproximadamente 95% das vezes o intervalo conterá o verdadeiro valor de mu.
base_8$HDL %>% IC_media_q8(0.95)
## IC (m,95) = [0.2874198;0.3948024]
## Isso quer dizer que aproximadamente 95% das vezes o intervalo conterá o verdadeiro valor de mu.
base_8$LDL %>% IC_media_q8(0.95)
## IC (m,95) = [49.69716;50.44951]
## Empiricamente, igual feito na letra a.
## Suponde normalidade independente do resultado na questão acima.
## Supondo normalidade, sim é possível obter o Intervalo de Confiança para a variância.
IC_var_q8 <- function(x, conf){
n = length(x[!is.na(x)])
s2 = var(x, na.rm = T)
alfa = 1-conf
x1 = qchisq(alfa/2, df = n-1)
x2 = qchisq(1-alfa/2, df = n-1)
LI = (n-1)*s2/x2
LS = (n-1)*s2/x1
cat(
"IC (sigma,", conf*100, ") = [", LI, ";", LS, "]", sep = ""
)
}
## Isso quer dizer que aproximadamente 95% das vezes o intervalo conterá o verdadeiro valor de sigma.
base_8$HDL %>% IC_var_q8(0.95)
## IC (sigma,95) = [0.07144162;0.128993]
## Isso quer dizer que aproximadamente 95% das vezes o intervalo conterá o verdadeiro valor de sigma.
base_8$LDL %>% IC_var_q8(0.95)
## IC (sigma,95) = [3.50696;6.332068]
library(dplyr)
library(ggplot2)
## Amostras a. s. obtidas de uma população normal.
## Variância conhecida.
## H0: mu = mu0
## H1: mu < mu0
TH_media_q1a <- function(x, mu0, sigma2, alfa){
amostra = na.omit(x)
n = length(amostra)
z = qnorm(1-alfa)
x_barra = mean(amostra)
x_critico = mu0 - z*sqrt(sigma2/n)
decisao = ifelse((x_barra < x_critico), "Rejeita H0.", "Não rejeita H0.")
cat(
"Estimativa pontual: ", x_barra, "\n",
"Região Crítica: [", -Inf, ";", x_critico, "] \n",
"Decisão: ", decisao,
sep = ""
)
}
## mu0 = 500
rnorm(1000, 500, sqrt(25)) %>% TH_media_q1a(500, 25, 0.05)
## Estimativa pontual: 500.0977
## Região Crítica: [-Inf;499.7399]
## Decisão: Não rejeita H0.
## Amostras a. s. obtidas de uma população normal.
## Variância desconhecida.
## H0: sigma2 = sigma0
## H1: sigma2 > sigma0
TH_sigma2_q1b <- function(x, sigma0, alfa){
amostra = na.omit(x)
n = length(amostra)
s2 = var(amostra)
x = (n-1)*s2 / sigma0
x_critico = qchisq(alfa, n-1, lower.tail = F)
decisao = ifelse(sigma0 > x_critico, "Rejeita H0.", "Não rejeita H0.")
cat(
"Estimativa pontual: ", x, "\n",
"Região Crítica: [", x_critico, ";", +Inf, "] \n",
"Decisão: ", decisao,
sep = ""
)
}
## sigma0 = 25
rnorm(1000, 500, sqrt(25)) %>% TH_sigma2_q1b(25, 0.05)
## Estimativa pontual: 995.1841
## Região Crítica: [1073.643;Inf]
## Decisão: Não rejeita H0.
## Amostras a. s. obtidas de uma população normal.
## H0:
## H1:
TH_prop_q1c <- function(x, p0, alfa){
amostra = na.omit(x)
n = length(amostra)
q = qnorm(1-alfa/2)
k = sqrt( (p0*(1-p0))/n ) * q
LI = p0 - k
LS = p0 + k
decisao = ifelse(( p0<LI | p0>LS ), "Rejeita H0.", "Não rejeita H0.")
cat(
"Estimativa pontual: ", mean(amostra), "\n",
"Região Crítica: [", LI, ";", LS, "] \n",
"Decisão: ", decisao,
sep = ""
)
}
c(1,1,1,1,1,1,0,0,0,0,1,0,0,1) %>% TH_prop_q1c(., sum(./length(.)), 0.05)
## Estimativa pontual: 0.5714286
## Região Crítica: [0.3122037;0.8306534]
## Decisão: Não rejeita H0.
## H0: mu = mu0
## H1: mu < mu0
TH_media_q1d <- function(x, mu0, sigma2, alfa){
amostra = na.omit(x)
n = length(amostra)
x_barra = mean(amostra)
z = (x_barra-mu0) / sqrt(sigma2/n)
q = qnorm(alfa)
decisao = ifelse((z < q), "Rejeita H0.", "Não rejeita H0.")
cat(
"Estimativa pontual: ", x_barra, "\n",
"Estimativa de teste: ", z, "\n",
"Região Crítica: [", -Inf, ";", q, "] \n",
"Decisão: ", decisao,
sep = ""
)
}
rnorm(1000, 500, sqrt(25)) %>% TH_media_q1d(500, 25, 0.05)
## Estimativa pontual: 499.8875
## Estimativa de teste: -0.711815
## Região Crítica: [-Inf;-1.644854]
## Decisão: Não rejeita H0.
## Erro tipo II: Probabilidade de não rej. H0 dado H0 verdadeiro.
erroII_q1e <- function(n, alfa, sigma2, mu0, mu){
# Região Critica
x_critico = mu0 - sqrt(sigma2/n)*qnorm(1-alfa)
# Padronizando
z = (x_critico - mu) / sqrt(sigma2/n)
return( pnorm(z, lower.tail = F) )
}
erroII_q1e(1000, 0.05, 25, 500, 500)
## [1] 0.95
## O gráfico mostra as probabilidades de se não rejeitar H0 para cada mu diferente.
ggplot(data = data.frame(x = c(0, 60)), aes(x = x)) +
stat_function(fun = erroII_q1e, args = list(n = 20, alfa = 0.05, sigma2 = 25, mu0 = 30)) +
geom_vline(xintercept = 30, linetype = "dashed", col = "red") +
ggtitle("Erro tipo II") + xlab(expression(mu)) + ylab(expression(beta(mu)))
## A medida que o tamanho da amostra aumenta os valores a esquerda de mu0 ficam menos prováveis, fazendo a curva crescer quando está mais próximo de mu0
ggplot(data = data.frame(x = c(0, 60)), aes(x = x)) +
stat_function(fun = erroII_q1e, args = list(n = 20 , alfa = 0.05, sigma2 = 25, mu0 = 30), color = "red") +
stat_function(fun = erroII_q1e, args = list(n = 30 , alfa = 0.05, sigma2 = 25, mu0 = 30), color = "black") +
stat_function(fun = erroII_q1e, args = list(n = 40 , alfa = 0.05, sigma2 = 25, mu0 = 30), color = "purple") +
stat_function(fun = erroII_q1e, args = list(n = 50 , alfa = 0.05, sigma2 = 25, mu0 = 30), color = "green") +
stat_function(fun = erroII_q1e, args = list(n = 100, alfa = 0.05, sigma2 = 25, mu0 = 30), color = "blue") +
geom_vline(xintercept = 30, linetype = "dashed", col ="red") +
ggtitle("Erro tipo II") + xlab(expression(mu)) + ylab(expression(beta(mu)))
poder_q1h <- function(n, alfa, sigma2, mu0, mu){
# Região Crítica
q = qnorm(1-alfa/2)
LI = mu0 - sqrt(sigma2/n)*q
LS = mu0 + sqrt(sigma2/n)*q
# Padronizando
z1 = (LI - mu) / sqrt(sigma2/n)
z2 = (LS - mu) / sqrt(sigma2/n)
return(pnorm(z1) + pnorm(z2, lower.tail = F))
}
rnorm(1000, 500, sqrt(25)) %>% length() %>% poder_q1h(0.05, 25, 500, 500)
## [1] 0.05
## O gráfico mostra as probabilidades de se rejeitar H0 para cada mu diferente.
ggplot(data = data.frame(x = c(0, 60)), aes(x = x)) +
stat_function(fun = poder_q1h, args = list(n = 20, alfa = 0.05, sigma2 = 25, mu0 = 30)) +
geom_vline(xintercept = 30, linetype = "dashed", col ="red") +
ggtitle("Função Poder") + xlab(expression(mu)) + ylab(expression(pi(mu)))
## A medida que o tamanho da amostra aumenta maior é o poder do teste, ou seja, a probabilidade de se rejeitar valores diferentes de mu0 aumenta.
ggplot(data = data.frame(x = c(0, 60)), aes(x = x)) +
stat_function(fun = poder_q1h, args = list(n = 20 , alfa = 0.05, sigma2 = 25, mu0 = 30), color = "red") +
stat_function(fun = poder_q1h, args = list(n = 30 , alfa = 0.05, sigma2 = 25, mu0 = 30), color = "black") +
stat_function(fun = poder_q1h, args = list(n = 40 , alfa = 0.05, sigma2 = 25, mu0 = 30), color = "purple") +
stat_function(fun = poder_q1h, args = list(n = 50 , alfa = 0.05, sigma2 = 25, mu0 = 30), color = "green") +
stat_function(fun = poder_q1h, args = list(n = 100, alfa = 0.05, sigma2 = 25, mu0 = 30), color = "blue") +
geom_vline(xintercept = 30, linetype = "dashed", col ="red") +
ggtitle("Função Poder") + xlab(expression(mu)) + ylab(expression(pi(mu)))
## Amostras a. s. obtidas de uma população normal com média mu e variância sigma2 desconhecida.
## Suponha que n é grande.
## H0: mu = mu0
## H1: mu > mu0
TH_media_q2a <- function(x, alfa, mu0){
amostra = na.omit(x)
n = length(amostra)
## x_barra segue distribuição normal pois é combinação linear de distribuições normais.
x_barra = mean(amostra)
s2 = var(amostra)
q = qnorm(alfa, lower.tail = F)
k = sqrt(s2/n) * q
x_critico = mu0 + k
decisao = if_else((x_barra > x_critico), "Rejeita H0", "Não rejeita H0")
cat(
"Estimativa pontual: ", x_barra, "\n",
"Região Crítica: [", x_critico, " ; ", +Inf, "] \n",
"Decisão: ", decisao, " a um nível de significância ", alfa,
sep = ""
)
}
rnorm(1000, 500, sqrt(25)) %>% TH_media_q2a(0.05, 500)
## Estimativa pontual: 499.989
## Região Crítica: [500.2685 ; Inf]
## Decisão: Não rejeita H0 a um nível de significância 0.05
## Amostras a. s. obtidas de uma população com distribuição normal com média mu e variância desconhecida.
## H0: mu = mu0
## H1: mu > mu0
TH_media_q2b <- function(x, alfa, mu0){
amostra = na.omit(x)
n = length(amostra)
## x_barra segue distribuição normal pois é combinação linear de distribuições normais.
x_barra = mean(amostra)
s2 = var(amostra)
t = (x_barra - mu0) / sqrt(s2/n)
x_critico = qnorm(alfa, lower.tail = F)
decisao = if_else((t > x_critico), "Rejeita H0", "Não rejeita H0")
cat(
"Estatística de teste: ", t, "\n",
"Região Crítica: [", x_critico, " ; ", +Inf, "] \n",
"Decisão: ", decisao, " a um nível de significância ", alfa,
sep = ""
)
}
rnorm(1000, 500, sqrt(25)) %>% TH_media_q2a(0.05, 500)
## Estimativa pontual: 499.9543
## Região Crítica: [500.2576 ; Inf]
## Decisão: Não rejeita H0 a um nível de significância 0.05
erro_tipoII_q2c <- function(n, alfa, s2, mu0, mu){
## Região critica
k = sqrt(s2/n)*qnorm(1-alfa)
x_critico = mu0 + k
## Padronizando e calculando probabilidade
z = (x_critico - mu) / sqrt(s2/n)
return( pnorm(z) )
}
erro_tipoII_q2c(1000, 0.05, 25, 500, 500)
## [1] 0.95
## O gráfico mostra as probabilidades de se não rejeitar H0 para cada mu diferente.
ggplot(data = data.frame(x = c(0, 20)), aes(x = x)) +
stat_function(fun = erro_tipoII_q2c, args = list(n = 20, alfa = 0.05, s2 = 25, mu0 = 10)) +
geom_vline(xintercept = 10, linetype = "dashed", col = "red") +
ggtitle("Erro tipo II") + xlab(expression(mu)) + ylab(expression(beta(mu)))
## Pode-se afirmar que a medida que o tamanho da amostra aumenta os valores a direita de mu0 ficam menos prováveis.
ggplot(data = data.frame(x = c(0, 60)), aes(x = x)) +
stat_function(fun = erro_tipoII_q2c, args = list(n = 20 , alfa = 0.05, s2 = 25, mu0 = 30), color = "red") +
stat_function(fun = erro_tipoII_q2c, args = list(n = 30 , alfa = 0.05, s2 = 25, mu0 = 30), color = "black") +
stat_function(fun = erro_tipoII_q2c, args = list(n = 50 , alfa = 0.05, s2 = 25, mu0 = 30), color = "green") +
stat_function(fun = erro_tipoII_q2c, args = list(n = 100, alfa = 0.05, s2 = 25, mu0 = 30), color = "blue") +
geom_vline(xintercept = 30, linetype = "dashed", col = "red") +
ggtitle("Erro tipo II") + xlab(expression(mu)) + ylab(expression(beta(mu)))
ggplot(data = data.frame(x = c(0, 60)), aes(x = x)) +
stat_function(fun = erro_tipoII_q2c, args = list(n = 20, alfa = 0.01, s2 = 25, mu0 = 30), color = "red") +
stat_function(fun = erro_tipoII_q2c, args = list(n = 20, alfa = 0.05, s2 = 25, mu0 = 30), color = "black") +
stat_function(fun = erro_tipoII_q2c, args = list(n = 20, alfa = 0.07, s2 = 25, mu0 = 30), color = "green") +
stat_function(fun = erro_tipoII_q2c, args = list(n = 20, alfa = 0.10, s2 = 25, mu0 = 30), color = "blue") +
geom_vline(xintercept = 30, linetype = "dashed", col = "red") +
ggtitle("Erro tipo II") + xlab(expression(mu)) + ylab(expression(beta(mu)))
poder_q2 <- function(n, alfa, s2, mu0, mu){
## Região Crítica
k = sqrt(s2/n)*qnorm(1-alfa)
x_critico = mu0 + k
## Padronizando e calculando probabilidade
z = (x_critico - mu) / sqrt(s2/n)
return(pnorm(z, lower.tail = F))
}
poder_q2(1000, 0.05, 25, 500, 500)
## [1] 0.05
## Plotando a função
ggplot(data = data.frame(x = c(0,20)), aes(x = x)) +
stat_function(fun = poder_q2, args = list(n = 20, alfa = 0.05, s2 = 25, mu0 = 10)) +
geom_vline(xintercept = 10, linetype = "dashed", col = "red") +
ggtitle("Erro tipo II") + xlab(expression(mu)) + ylab(expression(pi(mu)))
base_3 <- readRDS("G:/Meu Drive/UFF/Met. Comp. para Est. II/Listas/Lista 05/BaseGenero.rds")
## H0: mu = 70
## H1: mu > 70
## Sim, com base no nível de significância de 5%, há evidências de que o pesquisador está certo.
base_3 %>% filter(Sexo=="Homem") %>% select(Peso) %>%
t.test(alternativa = "greater", mu = 70)
##
## One Sample t-test
##
## data: .
## t = 13.065, df = 24, p-value = 2.107e-12
## alternative hypothesis: true mean is not equal to 70
## 95 percent confidence interval:
## 79.31101 82.80456
## sample estimates:
## mean of x
## 81.05778
## H0: mu = 30
## H1: mu < 30
## Não, com base no nível de significância de 1% há evidências de que o pesquisador está errado.
TH <- function(x, mu0, alfa){
amostra = na.omit(x)
n = length(amostra)
## Supondo que n é grande o suficiente
s2 = var(amostra)
k = sqrt(s2/n) * qt(alfa, n-1, lower.tail = F)
x_critico = mu0 - k
cat(
"RC = [", -Inf, " ; ", x_critico, "]", sep = ""
)
}
base_3 %>% filter(Sexo=="Homem") %>% select(Idade) %>% pull %>% TH(30, 0.01)
## RC = [-Inf ; 27.73446]
## H0: mu = 20
## H1: mu =/= 20
## Rejeita h0; Sim, com base no nível de significância de 3% há evidências de que o pesquisador está correto.
base_3 %>% filter(Sexo=="Mulher") %>% select(Idade) %>% t.test(conf.level = 0.99, alternativa = "two.sided", mu = 20)
##
## One Sample t-test
##
## data: .
## t = 6.5822, df = 19, p-value = 2.667e-06
## alternative hypothesis: true mean is not equal to 20
## 99 percent confidence interval:
## 22.96809 27.53191
## sample estimates:
## mean of x
## 25.25
## H0: p = 65
## H1: p > 65
## Com base nos dados e adotando um nível de significância de 5%, não rejeitamos H0, ou seja, há evidência de que a proporção de mulheres com peso superior a 70kg não é superior a 65%.
amos <- base_3 %>% filter(Sexo=="Mulher") %>% select(Peso) %>% pull
proporcao = ifelse(amos>70, 1, 0)
prop.test(sum(proporcao), length(proporcao), alternative = "greater", p = 0.65, correct = F)
##
## 1-sample proportions test without continuity correction
##
## data: sum(proporcao) out of length(proporcao), null probability 0.65
## X-squared = 14.066, df = 1, p-value = 0.9999
## alternative hypothesis: true p is greater than 0.65
## 95 percent confidence interval:
## 0.1273772 1.0000000
## sample estimates:
## p
## 0.25