library(ggplot2)
library(readxl)
library(dplyr)
library(GGally)
library(gapminder)
library(gganimate)
library(gifski)
a) Compute a matriz de correlação entre as medidas. O que você nota?
d) Produza gráficos de dispersão entre as variáveis através da função ggpairs disponÃvel no pacote GGally.
c) Faça Q-Q Plot para verificar a normalidade das medidas de rigidez.
d) Faça mais 3 representações gráficas para esses dados.
Faça o exercÃcio 1.27 do livro Applied Multivariate Statistical Analysis.
# a)
acres = c(47.4, 35.8, 32.9, 1508.5, 1217.4,
310.0, 521.8, 5.6, 922.7, 235.6,
265.8, 199.0, 2219.8, 761.3, 146.6)
visitors = c(2.05, 1.02, 2.53, 1.23, 4.40,
2.46, 9.19, 1.34, 3.14, 1.17,
2.80, 1.09, 2.84, 3.30, 2.59)
df = data.frame(acres, visitors)
plot(df)
cor(df$acres, df$visitors, method = 'pearson')
## [1] 0.1725274
'b)Claramente a obs. em que visitors está acima de 8 constitui um outlier'
## [1] "b)Claramente a obs. em que visitors está acima de 8 constitui um outlier"
df2 = df[-7, ]
cor(df2$acres, df2$visitors, method = 'pearson')
## [1] 0.3907829
'Esse outlier influenciou de forma importante o coeficiente de correlação, que antes era de 0.17 e depois de sua retirada passou a ser 0.39.'
## [1] "Esse outlier influenciou de forma importante o coeficiente de correlação, que antes era de 0.17 e depois de sua retirada passou a ser 0.39."
'c)Não, pois a escala mudaria mas os pontos continuariam posicionados da mesma forma, mantendo a mesma correlação.'
## [1] "c)Não, pois a escala mudaria mas os pontos continuariam posicionados da mesma forma, mantendo a mesma correlação."
c) Faça os exercÃcios 1.17, 1.18 e 1.19 do livro Applied Multivariate Statistical Analysis.
dados <- read_excel("dados multivariada.xlsx")
dados = dados[-1, ]
dados = dados[, -1]
dados = as.data.frame(apply(dados, 2, as.numeric))
# 1.17)
summary(dados)
## 100m 200m 400m 800m
## Min. :10.49 Min. :21.34 Min. :47.60 Min. :1.890
## 1st Qu.:11.12 1st Qu.:22.57 1st Qu.:49.97 1st Qu.:1.970
## Median :11.32 Median :22.98 Median :51.65 Median :2.005
## Mean :11.36 Mean :23.12 Mean :51.99 Mean :2.022
## 3rd Qu.:11.57 3rd Qu.:23.61 3rd Qu.:53.12 3rd Qu.:2.070
## Max. :12.52 Max. :25.91 Max. :61.65 Max. :2.290
## 1500m 3000m Marathon
## Min. :3.840 Min. : 8.100 Min. :135.2
## 1st Qu.:4.003 1st Qu.: 8.543 1st Qu.:143.5
## Median :4.100 Median : 8.845 Median :148.4
## Mean :4.189 Mean : 9.081 Mean :153.6
## 3rd Qu.:4.338 3rd Qu.: 9.325 3rd Qu.:157.7
## Max. :5.420 Max. :13.120 Max. :221.1
dp = apply(dados, 2, sd)
dp
## 100m 200m 400m 800m 1500m 3000m
## 0.39410116 0.92902547 2.59720188 0.08687304 0.27236502 0.81532689
## Marathon
## 16.43989508
cor(dados)
## 100m 200m 400m 800m 1500m 3000m Marathon
## 100m 1.0000000 0.9410886 0.8707802 0.8091758 0.7815510 0.7278784 0.6689597
## 200m 0.9410886 1.0000000 0.9088096 0.8198258 0.8013282 0.7318546 0.6799537
## 400m 0.8707802 0.9088096 1.0000000 0.8057904 0.7197996 0.6737991 0.6769384
## 800m 0.8091758 0.8198258 0.8057904 1.0000000 0.9050509 0.8665732 0.8539900
## 1500m 0.7815510 0.8013282 0.7197996 0.9050509 1.0000000 0.9733801 0.7905565
## 3000m 0.7278784 0.7318546 0.6737991 0.8665732 0.9733801 1.0000000 0.7987302
## Marathon 0.6689597 0.6799537 0.6769384 0.8539900 0.7905565 0.7987302 1.0000000
# 1.18)
dados <- dados %>%
mutate(`100m` = 100 / `100m`,
`200m` = 200 / `200m`,
`400m` = 400 / `400m`,
`800m` = 800 / (`800m` * 60),
`1500m` = 1500 / (`1500m` * 60),
`3000m` = 3000 / (`3000m` * 60),
`Marathon` = 42195 / (`Marathon`*60))
summary(dados)
## 100m 200m 400m 800m
## Min. :7.987 Min. :7.719 Min. :6.488 Min. :5.822
## 1st Qu.:8.645 1st Qu.:8.471 1st Qu.:7.530 1st Qu.:6.441
## Median :8.830 Median :8.703 Median :7.745 Median :6.650
## Mean :8.815 Mean :8.664 Mean :7.712 Mean :6.604
## 3rd Qu.:8.991 3rd Qu.:8.861 3rd Qu.:8.005 3rd Qu.:6.768
## Max. :9.533 Max. :9.372 Max. :8.403 Max. :7.055
## 1500m 3000m Marathon
## Min. :4.613 Min. :3.811 Min. :3.180
## 1st Qu.:5.764 1st Qu.:5.362 1st Qu.:4.461
## Median :6.098 Median :5.653 Median :4.738
## Mean :5.990 Mean :5.543 Mean :4.620
## 3rd Qu.:6.246 3rd Qu.:5.853 3rd Qu.:4.901
## Max. :6.510 Max. :6.173 Max. :5.200
dp = apply(dados, 2, sd)
dp
## 100m 200m 400m 800m 1500m 3000m Marathon
## 0.3008958 0.3386317 0.3711992 0.2711510 0.3519098 0.4202194 0.4083064
cor(dados)
## 100m 200m 400m 800m 1500m 3000m Marathon
## 100m 1.0000000 0.9383028 0.8655248 0.7974687 0.7764777 0.7287297 0.6601124
## 200m 0.9383028 1.0000000 0.9058875 0.8159945 0.8057456 0.7409469 0.6748635
## 400m 0.8655248 0.9058875 1.0000000 0.8041737 0.7306437 0.6944025 0.6722005
## 800m 0.7974687 0.8159945 0.8041737 1.0000000 0.9060324 0.8754795 0.8518052
## 1500m 0.7764777 0.8057456 0.7306437 0.9060324 1.0000000 0.9718385 0.8244153
## 3000m 0.7287297 0.7409469 0.6944025 0.8754795 0.9718385 1.0000000 0.8541900
## Marathon 0.6601124 0.6748635 0.6722005 0.8518052 0.8244153 0.8541900 1.0000000
# 1.19)
ggpairs(dados, corMethod = "pearson")
boxplot(dados)
A partir da fórmula da distribuição normal multivariada, encontre a equação da distribuição normal bivariada.
Seja o vetor \(X= (X_1, X_2) \sim N_2(\mu, \Sigma)\), qual a distribuição de \((X_1/X_2)\)? Qual a média e qual a variância desse distribuição.
c) Faça 5 representações gráficas desses dados.
d) Queremos modelar algumas variáveis conjuntamente, utilizando uma distribuição normal multivariada. Quais das variáveis poderiam ser modeladas utilizando essa distribuição? Justifique a sua resposta.
d)As variáveis de que se espera que sejam normais, a princÃpio, são a expectativa de vida e o PIB per capita. Essas duas variáveis podem estar ligadas diretamente, supondo que um PIB per capita maior leva à uma expectativa de vida maior.
caminho = "C:/Users/GUILHERME/Documents/pacotes estat - R"
gapminder = gapminder
# c)
#grafico de barras
grouped_data <- gapminder %>%
group_by(continent) %>%
summarise(mean_gdpPercap = mean(gdpPercap))
ggplot(grouped_data, aes(x = continent, y = mean_gdpPercap)) +
geom_bar(stat = "identity") +
labs(title = "Média do PIB per capita por continente",
x = "Continente",
y = "Média do PIB per capita") +
theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))
#gráfico de dispersão
ggplot(gapminder, aes(x = lifeExp, y = gdpPercap, color = continent)) +
geom_point() +
labs(title = "Relação entre PIB per capita e Expectativa de vida",
x = "Expectativa de vida",
y = "PIB per capita",
color = "Continente") +
scale_color_manual(values = c("red", "blue", "green", "purple", "orange"))
#gráfico animado
plot = ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop, colour = country)) +
geom_point(alpha = 0.7, show.legend = FALSE) +
scale_colour_manual(values = country_colors) +
scale_size(range = c(2, 12)) +
scale_x_log10() +
facet_wrap(~continent) +
labs(title = 'Year: {frame_time}', x = 'GDP per capita', y = 'life expectancy') +
transition_time(year) +
ease_aes('linear')
animate(plot, renderer = gifski_renderer())
arquivos_png <- list.files(caminho, pattern = "*.png", full.names = TRUE)
file.remove(arquivos_png)
## logical(0)