O ficheiro winequality-white-q5.csv contém um conjunto de dados baseado nos dados descritos em:
P. Cortez, A. Cerdeira, F. Almeida, T. Matos and J. Reis. 2009. Modeling wine preferences by data mining from physicochemical properties. In Decision Support Systems, Elsevier, 47(4):547-553. ISSN: 0167-9236.
Neste estudo foram analisadas 4898 amostras de vinho verde branco, com o objetivo de estudar como é que as preferências dos peritos em provas de vinhos se relacionam com as caraterísticas físico-químicas dos vinhos. No ficheiro, as variáveis 1 a 11 referem-se às caraterísticas físico-químicas dos vinhos. A variável 12 representa a avaliação feita por especialistas em vinhos: qualidade do vinho entre 1 (má) e 5 (excelente).
Com recurso ao pacote ggplot2, produza um gráfico que represente, através de diagramas de caixa (box plots) paralelos, como é que a raiz quadrada da variável pH se relaciona com a variável quality. No gráfico, deverá realçar as possíveis observações discordantes (outliers) e, de alguma forma, tentar contrariar a sua sobreposição.
Por simplicidade, mantenha todo o texto da figura em Inglês.
Submeta um ficheiro em formato PDF com uma única página A4, que inclua:
O código em R, incluindo os comandos para leitura dos dados do ficheiro.
O gráfico produzido.
library(ggplot2)
theme_set(theme_classic())
# url <- 'https://web.tecnico.ulisboa.pt/paulo.soares/pe/projeto/winequality-white-q5.csv'
# dados <- read.csv(url)
# # Por exemplo:
# variavel <- "pH"
dados$quality <- as.factor(dados$quality)
# Criar nova coluna com raíz quadrada
nova_variavel <- paste0("sqrt.", variavel)
dados[, nova_variavel] <- sqrt(dados[, variavel])
ggplot(dados) +
geom_boxplot(aes(x = quality, y = .data[[nova_variavel]]),
outlier.alpha = 0.2,
outlier.color = "coral") +
labs(title = "White wine preferences")
O ficheiro wine_prod_EU.xlsx contém dados coletados pela Comissão Europeia sobre a produção anual de vinho desde 1997 até 2024 nos vários países produtores da União Europeia. Para cada ano, os dados incluem a quantidade de vinho em armazém antes da colheita (Opening Stock em \(10^3\) hL), a produção da colheita (Production em \(10^3\) hL) e a quantidade de vinho disponível após a colheita (Availability em \(10^3\) hL) em diferentes categorias de vinho.
Comece por eliminar todas as observações em que a variável Category está em falta e também aquelas em que a variável Product Group é igual a Non-Vinified.
Recorrendo ao pacote ggplot2, produza um único gráfico de barras que permita comparar a distribuição da variável Production para as diferentes categorias de vinho no ano de 2001 entre cada um dos seguintes países: France, Italy, Spain, Germany, Portugal (em Inglês no ficheiro), e o agrupamento formado pelos restantes países (Others).
Tenha em conta que o texto no ficheiro de dados se encontra em Inglês e, por simplicidade, mantenha todo o texto do gráfico nessa língua.
Submeta um ficheiro em formato PDF com uma única página A4, que inclua:
O código em R, que deve incluir os comandos para leitura e seleção dos dados do ficheiro.
O gráfico produzido.
library(ggplot2)
theme_set(theme_dark())
# url <- 'https://web.tecnico.ulisboa.pt/paulo.soares/pe/projeto/wine_prod_EU.xlsx'
# download.file(url, destfile = "local.xlsx")
# wine <- readxl::read_xlsx("local.xlsx")
# # Por exemplo:
# paises <- c("France", "Italy", "Spain", "Portugal")
# ano <- 2020
# variavel <- "Production"
subcjt <- subset(wine, Category != "-" & `Product Group` != "Non-Vinified" &
Year == ano)
individuais <- subset(subcjt, `Member State` %in% paises)
restantes <- subset(subcjt, !(`Member State` %in% paises))
agregado <- with(restantes, aggregate(restantes[[variavel]], by = list(Category),
FUN = sum))
names(agregado) <- c("Category", variavel)
agregado$`Member State` <- "Others"
dados <- rbind(individuais[, c("Member State", variavel, "Category")], agregado)
ggplot(dados) +
geom_col(aes(`Member State`, .data[[variavel]], fill = Category)) +
labs(title = paste("Wine production in EU in", ano),
y = paste(variavel, "(1000 hL)"))
O ficheiro clima.csv contém um exemplo de conjunto de dados de condições climáticas de dados horários de 2010 a 2014 num determinado local. Inclui métricas importantes, como poluição, orvalho, temperatura, velocidade do vento, neve, chuva. (Fonte: kaggle).
Após a leitura desse ficheiro no R, selecione todos os dados referentes ao mês de novembro de 2010.
Com recurso ao pacote ggplot2, produza um único gráfico que ilustre a variação horária da variável Orvalho ao longo do referido mês. Adicionalmente, pretende-se representar nesse gráfico a variação da mediana diária dessa variável. Todo o texto do gráfico deverá estar em Português.
Submeta um ficheiro em formato PDF com uma única página A4, que inclua:
O código em R, que deve incluir os comandos para leitura e seleção dos dados do ficheiro.
O gráfico produzido.
library(ggplot2)
theme_set(theme_linedraw())
# url <- 'https://web.tecnico.ulisboa.pt/paulo.soares/pe/projeto/clima.csv'
# dados <- read.csv(url)
# # Por exemplo:
# ano <- 2014
# mes <- "fevereiro"
# variavel <- "Temperatura"
dados$Data <- as.POSIXct(dados$Data, format = "%Y-%m-%d %H")
subcjt <- subset(dados, format(dados$Data, "%B") == mes &
format(dados$Data, "%Y") == ano)
# Agregar por dia
diaData<- aggregate(subcjt[[variavel]] ~ format(Data, "%Y-%m-%d"),
data = subcjt,
FUN = median)
colnames(diaData) <- c("Dia", "Mediana")
# Converter Dia para POSIXct
diaData$Dia <- as.POSIXct(paste(diaData$Dia, "00:00:00"), format="%Y-%m-%d %H")
ggplot(subcjt) +
geom_line(aes(x = Data, y = .data[[variavel]]), color = "lightblue3",
linewidth = 0.25) +
geom_line(data = diaData, aes(x = Dia, y = Mediana, color = "Mediana diária")) +
geom_point(data = diaData, aes(x = Dia, y = Mediana, color = "Mediana diária")) +
theme(legend.title = element_blank(), legend.position = "bottom") +
labs(title = paste(variavel, "por hora em", mes, "de", ano))
A distribuição de Weibull é aplicada em muitos campos diferentes, como por exemplo, avaliação da fiabilidade de componentes eletrónicas ou de sistemas mecânicos, indústria farmacêutica ou ainda análise de sobrevivência em medicina.
Uma dada variável aleatória \(X\), contínua, não negativa, tem distribuição de Weibull, de parâmetros \((\lambda, k)\), se a sua função de densidade de probabilidade for dada por \[f_X(x) = \left\{ \begin{array}{ll} \displaystyle \frac{k}{\lambda} \left( \frac{x}{\lambda} \right)^{k - 1} \exp \left[ - \left( \frac{x}{\lambda} \right)^{k} \right] , & x \ge 0 \\ 0 , & x < 0 \end{array} \right.\] onde \(\lambda \in ]0, + \infty[\) é o chamado parâmetro de escala e \(k \in ]0, + \infty[\) é o chamado parâmetro de forma. Pode mostrar-se que \[E(X) = \int_0^{+\infty} x \, f_X(x) \, dx = \lambda \, \Gamma \left( 1 + \frac{1}{k} \right),\] onde \(\Gamma (\cdot)\) é a chamada função Gama. Esta função é definida pelo integral impróprio \(\Gamma (x) = \int_0^{+\infty} e^{-t} t^{x - 1} dt\).
O valor \(\Gamma (x)\) pode ser calculado explicitamente para \(x\) inteiro, obtendo-se \(\Gamma (x) = (x - 1)!\). Para \(x\) não inteiro é possível calcular valores aproximados usando integração numérica. A função gamma do R faz precisamente isso, o que permite, dados os valores dos parâmetros, \(\lambda\) e \(k\), calcular aproximadamente \(E(X)\). Por outro lado, também é possível calcular um valor aproximado de \(E(X)\), utilizando o método conhecido como integração de Monte Carlo, que consiste em gerar um número muito elevado de observações de \(X\) e calcular a média aritmética respectiva.
Considere uma variável aleatória \(X\) que representa o tempo de vida de uma certa componente aeronáutica (em milhares de horas). Admite-se que \(X\) tem distribuição de Weibull com parâmetros \(\lambda= 27\) e \(k= 4\).
Calcule o valor esperado de \(X\), usando a função gamma.
Fixando a semente em 1850, gere uma amostra de dimensão 10000 de \(X\), e use-a para calcular um valor aproximado de \(E(X)\).
Indique o valor absoluto da diferença entre os valores obtidos em 1. e 2., arredondado a 4 casas decimais.
# # Por exemplo:
# seed <- 1940
# n <- 27000
# lambda <- 15
# k <- 10
# 1. Fórmula do valor esperado
exato = lambda * gamma(1 + 1 / k)
# 2. Integração de Monte Carlo
set.seed(seed)
x_vals <- rweibull(n, shape = k, scale = lambda)
aprox <- mean(x_vals)
solution <- abs(exato - aprox)
O valor pretendido é 0.0511.
Conta-se que o Grão-Duque da Toscana (séc. XVI) jogava assiduamente com um adversário o seguinte jogo:
O que intrigava o Grão-Duque era que, apesar de 9 e 10 pontos se poderem decompor cada um em 6 maneiras diferentes, o jogador A ganhava com menor frequência do que o jogador B.
Fixando a semente em \(2435\), simule \(n=44000\) jogadas desse jogo. Reporte o valor da diferença entre as frequências relativas com que a “soma 10” e a “soma 9” são obtidas nessas \(n\) jogadas, arredondada a 4 casas decimais.
Nota: caso use a função sample na simulação dos lançamentos dos dados, NÃO deverá especificar as probabilidades dos resultados possíveis. Por omissão, estes serão considerados equiprováveis.
# # Por exemplo:
# seed <- 1234
# n <- 40000
set.seed(seed)
# Simulação da soma de pontos no lançamento de três dados
lancamento_tres_dados <- function() {
sum(sample(1:6, size = 3, replace = TRUE))
}
# Realizar as simulações
resultados <- replicate(n, lancamento_tres_dados())
# Calcular as frequências relativas
freq_A <- sum(resultados == 9) / n
freq_B <- sum(resultados == 10) / n
solution <- freq_B - freq_A
O valor da diferença é 0.0081.
Sejam \(X_1, \ldots, X_n\) variáveis aleatórias contínuas independentes e identicamente distribuídas a \(X \sim \text{uniforme}(0,1)\). Então \(S_n = \sum_{i=1}^n X_i\) possui distribuição de Irwin-Hall e \[P(S_n \leq x) = \frac{1}{n!} \sum_{k=0}^{\lfloor x\rfloor} (-1)^k {n \choose k} (x-k)^n,\]
para \(0 \leq x \leq n\) e onde \(\lfloor x\rfloor\) representa a parte inteira do real \(x\).
Obtenha o valor exacto de \(p_n = P(S_n \leq x)\), para \(n=6\) e \(x=3.3\).
Calcule dois valores aproximados de \(p_n\) recorrendo aos métodos seguintes:
Teorema do limite central \((p_{n,TLC})\)
Recorra ao TLC, apesar de \(n\) ser inferior a 30.
Simulação \((p_{n,sim})\)
Fixando a semente em 4138, gere \(m=150\) amostras de dimensão \(n=6\) da distribuição de \(X\).
Calcule um valor simulado de \(S_n\) para cada uma das amostras geradas.
Obtenha a proporção de valores simulados de \(S_n\) que não excedem 3.3.
Determine o desvio absoluto entre o valor exacto calculado em 1., \(p_n\), e o valor aproximado obtido em 2a., \(p_{n,TLC}\).
Calcule o desvio absoluto entre \(p_n\) e \(p_{n,sim}\).
Calcule o quociente entre os desvios calculados em 3. e 4. e apresente o resultado arredondado a 4 casas decimais.
# # Por exemplo:
# x <- 5.3
# n <- 10
# m <- 150
# seed <- 3924
# Valor exato
s <- 0:floor(x)
pexact <- sum((-1)^s * choose(n, s) * (x - s)^n) / factorial(n)
# TLC
ptlc <- pnorm((x - n / 2) / sqrt(n / 12))
desvtlc <- abs(pexact - ptlc)
# Simulação
set.seed(seed)
accept <- 0
for (i in 1:m) {
accept <- accept + (sum(runif(n)) <= x)
}
psim <- accept / m
desvsim <- abs(pexact - psim)
solution <- desvtlc / desvsim
O valor pretendido é 0.5087.
Considere que a variável aleatória \(X\) representa o comprimento (em cm) dos ovos de uma dada espécie de pássaro e que pode ser modelada pela função densidade de probabilidade \[f_X(x) = \frac{\lambda^\alpha}{\Gamma(\alpha)} x^{\alpha-1} \text{e}^{-\lambda x},\] para \(x>0\), onde \(\alpha\) e \(\lambda\) são parâmetros com valores positivos desconhecidos e \(\Gamma(\alpha)=\int_0^\infty t^{\alpha-1} \text{e}^{-t}\, dt\) denota a função Gama.
Ao deduzir as estimativas de máxima verosimilhança de \(\alpha\) e \(\lambda\), \(\hat{\alpha}\) e \(\hat{\lambda}\), constatará que \(\hat{\lambda}\) se pode escrever como função de \(\hat{\alpha}\) mas que não existe uma solução explícita para \(\hat{\alpha}\).
No entanto, \(\hat{\alpha}\) pode ser obtida numericamente por recurso à função uniroot do R. Use o intervalo \([0.001\), \(92.1]\) como intervalo inicial de pesquisa e não utilize qualquer outro argumento opcional dessa função.
Assuma que \((X_1, \ldots, X_n)\) é uma amostra aleatória de \(X\) e que a observação de \(n = 15\) ovos dessa espécie de pássaro resultou em \(\sum_{i=1}^n x_i = 49.94\) e \(\sum_{i=1}^n \log x_i = 17.96\).
Determine a estimativa de máxima verosimilhança de \((\alpha-1)/\lambda\), o comprimento modal dos ovos dessa espécie de pássaro, indicando-a arredondada a 2 casas decimais.
# # Por exemplo:
# n <- 12
# x_soma <- 42.71
# logx_soma <- 15.04
# liminf <- 31
# limsup <- 35
x_media <- x_soma / n
logx_media <- logx_soma / n
funcao <- function(x){
log(x) - digamma(x) - log(x_media) + logx_media
}
alpha_est <- uniroot(funcao, lower = liminf, upper = limsup)$root
lambda_est <- alpha_est / x_media
solution <- (alpha_est - 1) / lambda_est
A estimativa pedida é igual a 3.29 cm.
Seja \(X\) uma variável aleatória que representa o desvio (em milímetros) entre o diâmetro observado e o diâmetro nominal de uma peça mecânica fabricada industrialmente. Considere que \(X\) tem distribuição normal com valor esperado \(\mu\) desconhecido e desvio padrão conhecido e igual a \(\sigma =1.4\).
Usando o R e fixando a semente em \(1624\), gere \(m=1500\) amostras de dimensão \(n=12\) de uma distribuição normal com valor esperado igual a \(\mu = 0.8\) e desvio padrão \(\sigma = 1.4\) e determine os respetivos intervalos de confiança para \(\mu\) ao nível de confiança \(\gamma = 0.95\).
Obtenha a proporção de intervalos de confiança gerados em 2. que contêm o valor esperado \(\mu = 0.8\).
Indique o quociente entre o valor obtido em 2. e o nível de confiança \(\gamma\), arredondado a 4 casas decimais.
# # Por exemplo:
# sigma <- 0.5
# n <- 18
# gama <- 0.98
# m <- 1900
# mu <- -1
# seed <- 1152
semi_ampl <- qnorm((1 + gama) / 2) * sigma / sqrt(n)
set.seed(seed)
count <- 0
for (i in 1:m) {
amostra <- rnorm(n, mean = mu, sd = sigma)
media <- mean(amostra)
count <- count + (abs(media - mu) <= semi_ampl)
}
prop <- count / m
solution <- prop / gama
O valor pedido é 1.0084.
Considere que \(\left(X_1,\ldots,X_{n}\right)\) é uma amostra aleatória de dimensão \(n\) de uma população \(X\) com distribuição exponencial. Admita que \(E(X)=\mu\) é desconhecido e que \[T = \frac{2n \, \bar{X}}{\mu} \sim \chi_{(2n)}^2,\ \forall \mu\in \mathbb{R}^+.\] Para testar \(H_0: \mu=\mu_0=5\) contra \(H_1: \mu =\mu_1=6.7\) pode utilizar-se a estatística de teste \(T_0\) obtida de \(T\) admitindo que a hipótese \(H_0\) é verdadeira, rejeitando-se \(H_0\), ao nível de significância \(\alpha,\) se \(T_0 > F^{-1}_{\chi_{(2n)}^2}(1-\alpha)\).
Fixando a semente em \(4160\), gere \(m=500\) amostras de dimensão \(n=20\) da distribuição exponencial com valor esperado \(\mu_1\). Aplique o teste de hipóteses, ao nível de significância \(\alpha=0.02\), a cada uma das \(m=500\) amostras geradas e calcule uma estimativa, \(\hat{\beta}\), da probabilidade teórica do erro de 2ª espécie, \(\beta\).
Obtenha o quociente de \(\hat{\beta}\) e \(\beta\) e indique o resultado arredondado a 4 casas decimais.
# # Por exemplo:
# seed <- 5441
# mu0 <- 4
# mu1 <- 5.7
# m <- 800
# n <- 20
# alpha <- 0.1
k <- qchisq(1 - alpha, 2 * n)
set.seed(seed)
accept <- 0
for(i in 1:m) {
accept <- accept + (2 * n * mean(rexp(n, rate = 1 / mu1)) / mu0 <= k)
}
beta_est<- accept / m
beta_teo <- pchisq(k * mu0 / mu1, 2 * n)
solution <- beta_est / beta_teo
O valor pedido é 1.0315.
Uma equipa de engenheiros está a analisar a distribuição da velocidade (\(X\), em m/s) do vento dominante em determinado local onde se pretende construir uma aerogare, tendo obtido a seguinte amostra com \(200\) observações:
3.4, 2.5, 1.9, 1.5, 1.3, 5, 3.1, 2.9, 3.2, 4.2, 1.8, 2, 1.9, 3.4, 3.1, 1.9, 8, 4.8, 4.7, 2.5, 5, 3.7, 4.6, 1.8, 5.6, 1.7, 4.6, 2.1, 3.8, 2.9, 3.1, 1.3, 5.9, 4.2, 4.5, 4.2, 2.2, 2.1, 3, 2.7, 4.6, 4, 3.9, 3.2, 1.8, 4, 2.1, 3.1, 3.7, 3, 0.7, 2, 1.2, 2.6, 3.9, 2, 3.5, 2.8, 2.7, 0.2, 1.4, 1.3, 4.2, 6.6, 1.1, 2.3, 4.6, 2.7, 2.3, 1.7, 3.5, 3.7, 4.5, 3.3, 6.4, 1.3, 5.1, 3.6, 2.9, 1.8, 4.2, 2.2, 3.4, 2.4, 1, 2.7, 5.4, 1.8, 1.8, 1.6, 1.5, 2.8, 2, 4.8, 1.8, 0.4, 3.5, 3.8, 3.1, 5.6, 4.5, 4, 4.2, 2.3, 6.3, 5.6, 3.5, 4, 2.7, 2.6, 2, 2.6, 2.3, 0.8, 2.3, 5.8, 1, 1.3, 3.3, 0.5, 2.8, 1.7, 5.6, 1.6, 3.5, 3.6, 2.3, 2.5, 3.4, 1.5, 6, 0.8, 0.9, 0.3, 0.4, 3.8, 0.5, 2.7, 2.5, 3.6, 0.6, 0.7, 4.3, 3.2, 2.3, 3.6, 1, 1.8, 2.8, 3.3, 3.4, 4, 2.9, 0.7, 1.7, 3.3, 0.5, 2.4, 3.6, 4.2, 2.1, 1.1, 3.2, 1.2, 6, 1.7, 1, 5.1, 2.4, 1.5, 3, 6.8, 3.5, 1.7, 2.7, 2.9, 5.9, 1.6, 1, 4.8, 3.9, 2.7, 2.4, 2.7, 6.8, 2.9, 5.9, 2.6, 0.7, 3.5, 3.6, 1.7, 1.3, 2.8, 5.1, 6.7, 4.2, 3.2, 5.4, 5.5
Os membros da equipa conjecturam que \(X\) possui distribuição de Rayleigh com parâmetro de escala \(~\sigma\), i. e., com função de distribuição dada por
\[F_0(x) = 1 - \exp \left( -\frac{x^2}{2\sigma^2} \right), \quad x> 0.\]
Teste \(H_0: X \sim \text{Rayleigh}(\sigma = 2.1)\) contra \(H_1: X \not \sim \text{Rayleigh}(\sigma = 2.1)\), procedendo do seguinte modo.
Fixe a semente em \(4830\) e selecione ao acaso e sem reposição uma subamostra de dimensão \(n= 140\) da amostra original.
Divida o suporte da variável aleatória \(X\), \(\mathbb{R}^+\), em \(k= 8\) classes equiprováveis sob \(H_0\).
Agrupe as observações da subamostra selecionada em 1. nas classes definidas em 2. e obtenha o conjunto de frequências absolutas observadas associadas a essas classes.
Recorra às frequências absolutas observadas obtidas em 3. e calcule o valor-p do teste de ajustamento do qui-quadrado para as hipóteses referidas.
Com base neste procedimento, indique qual das cinco decisões abaixo deverá tomar a equipa de engenheiros.
\[F_0^{-1}(y)=\sigma\sqrt{-2 \log(1-y)}\]
# # Por exemplo:
# dados_completos <- c(2.1, 2.4, 1, 2.8, 2, 1.2, 2.4, 2.5, 1, 1.2, 4.2, 3.6, 0.9,
# 1.1, 1.4, 3, 1.9, 3.1, 1.2, 1.1, 0.8, 0.9, 5.2, 2.6, 2.2,
# 2, 3, 2.3, 4.9, 2.8, 2.4, 4.7, 1, 2.4, 4.3, 2.8, 1.6, 4.2,
# 3.9, 1.8, 5.8, 3.5, 3.5, 2.3, 1.2, 1, 0.3, 4.2, 3.2, 5, 0.9,
# 3.3, 2, 2.4, 0.9, 0.4, 1.7, 1.8, 3.8, 4, 2.9, 3.1, 1.3, 0.9,
# 3, 2.1, 2, 2.7, 0.3, 2.2, 0.5, 1.6, 3.4, 4.3, 0.2, 3.7, 3.7,
# 1.7, 0.7, 4.8, 1.6, 2, 3.3, 2.6, 2, 2.9, 2.9, 2.5, 3, 5.4,
# 2.3, 3.1, 0.6, 0.9, 1.5, 4, 3, 1.9, 7.2, 2.7, 2.7, 5.1, 2.7,
# 1, 1.4, 4.8, 0.6, 2.8, 1.4, 1.1, 1.6, 3.8, 2.4, 0.7, 1.6,
# 1.1, 1.8, 1.4, 3.1, 5.7, 4.9, 1, 2.2, 1.6, 0.4, 3.6, 1.1,
# 4.4, 1.5, 2.2, 0.8, 2, 3.8, 3.6, 2.7, 0.2, 3.9, 3.4, 1, 2.6,
# 5.3, 1.2, 1.2, 3.6, 2.5, 2.6, 2.7, 4.9, 5, 2.6, 0.7, 2.2,
# 2.6, 3.8, 5.2, 0.9, 1.6, 2.1, 4.4, 3.2, 2.6, 4.5, 2.8, 2.7,
# 2.8, 2.7, 3.1, 2.6, 1.7, 1, 0.6, 3.7, 0.4, 1.2, 4.1, 1, 3.5,
# 2.5, 2, 1.8, 5.4, 1.3, 1.9, 3.5, 2.2, 4.7, 1.7, 3, 1.8, 5.4,
# 1.5, 2.7, 0.7, 2.1, 2.3, 2.8, 5.1, 1.2, 2.5, 1.4, 5.1, 7,
# 4.2, 3.3, 1.7, 1, 4.2, 2.8, 0.6, 1.1, 1.9, 5, 4.1, 4.1, 2.8,
# 1.4, 0.8, 3, 2.9, 2.2, 1, 5.8, 1.7, 0.9, 3.9, 1.5, 1.2, 1.6,
# 0.1, 4)
# seed <- 5248
# sigma <- 2.5
# n <- 161
# k <- 7
set.seed(seed)
dados <- sample(dados_completos, n)
probs <- 0:k / k
limites <- sigma * sqrt(-2 * log(1 - probs))
classes <- cut(dados, breaks = limites)
freq_observadas <- table(classes)
valorp <- chisq.test(freq_observadas)$p.value
O valor-p é igual a 0.1854 e a decisão a tomar é: Não rejeitar \(H_0\) aos n.s. de 1%, 5% e 10%.