Nesta seção, vamos fazer a importação dos dados e o carregamento das bibliotecas a serem utilizadas
# Carregar bibliotecas necessários
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
# Ler a base de dados
wine_data <- read.csv("winequality-white.csv", sep = ";")
# Ver as primeiras linhas da base de dados
head(wine_data)
## fixed.acidity volatile.acidity citric.acid residual.sugar chlorides
## 1 7.0 0.27 0.36 20.7 0.045
## 2 6.3 0.30 0.34 1.6 0.049
## 3 8.1 0.28 0.40 6.9 0.050
## 4 7.2 0.23 0.32 8.5 0.058
## 5 7.2 0.23 0.32 8.5 0.058
## 6 8.1 0.28 0.40 6.9 0.050
## free.sulfur.dioxide total.sulfur.dioxide density pH sulphates alcohol
## 1 45 170 1.0010 3.00 0.45 8.8
## 2 14 132 0.9940 3.30 0.49 9.5
## 3 30 97 0.9951 3.26 0.44 10.1
## 4 47 186 0.9956 3.19 0.40 9.9
## 5 47 186 0.9956 3.19 0.40 9.9
## 6 30 97 0.9951 3.26 0.44 10.1
## quality
## 1 6
## 2 6
## 3 6
## 4 6
## 5 6
## 6 6
Nesta secção vamos escolher duas variaveis para comparar.
Variáveis:
[fixed.acidity]: [Refere-se ao nível de acidez fixa presente no vinho, que está relacionado a componentes como ácido tartárico e málico.]
[chlorides]: [Representa a quantidade de cloretos (sal) no vinho, medido em gramas por litro.]
# Selecionar as duas variáveis para comparação
var1 <- wine_data$fixed.acidity
var2 <- wine_data$chlorides
Nesta seção, vamos construir uma função que calcula o Intervalo de Confiança da Razão de Variancias
# Função para calcular o intervalo de confiança da razão de variâncias
ic_variancia <- function(sample1, sample2, conf.level = 0.95) {
# Tamanhos das amostras
n1 <- length(sample1)
n2 <- length(sample2)
# Variâncias das amostras
var1 <- var(sample1)
var2 <- var(sample2)
# Razão das variâncias
F <- var1 / var2
# Valores críticos da distribuição F
alpha <- 1 - conf.level
lower_critical <- qf(alpha / 2, df1 = n1 - 1, df2 = n2 - 1)
upper_critical <- qf(1 - alpha / 2, df1 = n1 - 1, df2 = n2 - 1)
# Intervalo de confiança
lower_bound <- F / upper_critical
upper_bound <- F / lower_critical
return(list(
Razao_Variancias = F,
IC_Lower = lower_bound,
IC_Upper = upper_bound
))
}
Nesta secção, está o resultado do cálculo para o intervalo de confiança da razão de variâncias entre as duas variáveis selecionadas
# Calcular intervalo de confiança
ic_result <- ic_variancia(var1, var2, conf.level = 0.95)
# Mostrar resultados
ic_result
## $Razao_Variancias
## [1] 1491.857
##
## $IC_Lower
## [1] 1410.577
##
## $IC_Upper
## [1] 1577.82
Após o calculo do Intervalo de Confiança para a Razão de Variancias podemos verificar que os resultados incluem:
Estes resultados permitem-nos avaliar se as variâncias das duas populações são significativamente diferentes com base no nível de confiança 95%.
ic_result$Razao_Variancias
## [1] 1491.857
ic_result$IC_Lower
## [1] 1410.577
ic_result$IC_Upper
## [1] 1577.82
O valor 1 não está dentro do intervalo [1410.577, 1577.82].
Isso significa que podemos rejeitar a hipótese nula de que as variâncias das duas populações são iguais.
As variâncias das duas populações são significativamente diferentes com base no intervalo de confiança de 95%.