2VA - Questões

VADeaths

Visualize o dataset VADeaths (já incluído no R) e crie um gráfico de barras empilhadas desses dados, de modo que as barras estejam agrupadas (lado a lado) para cada categoria. Também defina uma cor diferente para cada grupo das categorias. Por fim, adicione título, legenda e nomes nos eixos. Abaixo submeta o link do RPubs com o resultado dessa questão. Ela deve ficar dentro de uma aba chamada de “VADeaths”.

categorias <- c("Rural Male", "Rural Female", "Urban Male", "Urban Female")
faixa_Etaria <- c("50-54","55-59","60-64","65-69","70-74")
colors <- c(rainbow(5))
barplot(VADeaths, main = "VADeaths", names.arg = categorias, 
        xlab = "Categorias", ylab = "Mortes", col = colors)
legend("topright", pch = c(15,15,15,15,15), col = colors, legend = faixa_Etaria, cex = 0.9)

ClassificaçãoDoença

Uma doença pode ser classificada em três estágios (leve, moderado e severo). Foram examinados 20 pacientes e obtidos os dados: moderado, leve, leve, severo, leve, moderado, moderado, moderado, leve, leve, severo,leve, moderado, moderado, leve, severo, moderado, moderado, moderado,leve. Com base nestes dados crie um gráfico de piza. Inclua a porcentagem de cada fatia, as cores das fatias e o nome do gráfico. Adicionalmente, use o comando legend() para incluir a legenda do gráfico. Abaixo submeta o link do RPubs com o resultado dessa questão. Ela deve ficar dentro de uma aba chamada de “ClassificaçãoDoença”. Note que apenas um link do RPubs é necessário. Basta repetir o link abaixo se você já tiver submetido para outras questões.

contagem <- c(8, 9, 3)
nomes <- c("leve", "moderado", "severo")
pct <- round(contagem/sum(contagem)*100)
lbls <- paste(nomes, pct)
lbls <- paste(lbls, "%", sep="")
pie(contagem, labels = lbls, main = "Estágio de Doenças", col = rainbow(3))
legend("topright", legend = nomes, cex = 0.8, fill = rainbow(length(contagem)))

Twitters

Crie uma nuvem de palavra a partir dos twitters sobre a hashtag “#COVID19”. Também faça uma análise de sentimentos com relação a esses twitters coletados. Abaixo submeta o link do R Markdown com o resultado dessa questão. Ela deve ficar dentro de uma aba chamada de “Twitters”. Note que apenas um link do RPubs é necessário. Basta repetir o link abaixo se você já tiver submetido para outras questões.

Modelo de chaves:

As chaves reais utilizadas, não apareceram neste relatório por questões de segurança. Porém, elas se parecem com o modelo fictício abaixo:

consumer_key <- "1234Sh31234dHd7BIuHWP1234"
consumer_secret <- "12345678fKLgbggsvIKkkskaXKeTKNn9VJ5jdhhdtoXkkkIuay1234"
access_token <- "1177610586529855412-1234pkUQjdjhdhghadkIIui0cd1234"
access_secret <- "1234HUksqZZXVKHTILPOLc8j9mkTvLeWvasZbp40MCB1234"

Coletando os tweets para a #COVID19:

Buscada o texto desejado #COVID19:

tweets <- searchTwitter("#COVID19", n=500, lang="pt")

Convertendo para um formato legível:

tweets <- twListToDF(tweets)

Colocando todos os twittes em um vetor de uma posição:

tweets_t <- paste(tweets$text, collapse= " ")

Tratamento e Limpeza dos dados obtidos:

Convertendo para o formato Corpus:

VS <- VectorSource(tweets_t)
corpus <- Corpus(VS)
inspect(corpus)

Limpeza dos dados (removendo pontuação, convertendo para minúsculo e etc…):

corpus <- tm_map(corpus, tolower)
## Warning in tm_map.SimpleCorpus(corpus, tolower): transformation drops documents
corpus <- tm_map(corpus, removePunctuation)
## Warning in tm_map.SimpleCorpus(corpus, removePunctuation): transformation drops
## documents
corpus <- tm_map(corpus, stripWhitespace)
## Warning in tm_map.SimpleCorpus(corpus, stripWhitespace): transformation drops
## documents
corpus <- tm_map(corpus, removeWords, stopwords('portuguese'))
## Warning in tm_map.SimpleCorpus(corpus, removeWords, stopwords("portuguese")):
## transformation drops documents

Removendo ruídos (urls, # e outros caracteres idesejados):

removeURL <- function(x) gsub("http[^[:space:]]*", "", x)
corpus <- tm_map(corpus, removeURL)
## Warning in tm_map.SimpleCorpus(corpus, removeURL): transformation drops
## documents

Removendo palavras que não pertecem ao nosso indioma:

removeNumPunct <- function(x) gsub("[^[:alpha:][:space:]]*", "", x)
corpus <- tm_map(corpus, removeNumPunct)
## Warning in tm_map.SimpleCorpus(corpus, removeNumPunct): transformation drops
## documents

Gerando Matriz que associa a palavra ao seu número de ocorrrência:

tdm <- as.matrix(TermDocumentMatrix(corpus))

Ordenando Matriz gerada

fre <- sort(rowSums(tdm), decreasing = T)

Geração da nuvem de palavras

Por fim, apresentaremos a nuvem de palavras

wordcloud(
  corpus, 
  min.freq = 3,
  max.words=Inf,
  random.order=F,
  rot.per=0.15,
  colors=brewer.pal(8, "Dark2"),
  scale=c(5,.2)
)

Análise de sentimentos

tweets <- searchTwitter("#COVID19", n=500, lang="pt")
tweets <- twListToDF(tweets)
tweets_t <- tweets$text

Processando apenas textos:

tweets_t <- tweets$text

Pontuando os tweets com relação as emoções:

sentiments <- get_nrc_sentiment(tweets_t)

Gráfico em barras dos sentimentos:

barplot(colSums(sentiments), las=2, col = rainbow(10),
        ylab="Contagem", main = "Sentimentos associados aos tweets do #COVID19")

Teorema

Nesta questão, demonstre o uso do teorema do limite central, usando o conjunto de dados “flu” que é altamente não normal. Esse dataset contém as frequências das idades das mortes durante a epidemia de gripe espanhola na Suíça em 1918. Considere a idade das mortes como a população. Execute os passos a seguir. (1)Mostre o histograma e a curva de densidade do conjunto de dados “flu”. (2) Crie 200 médias de amostras da população com tamanho n = 35. (3) Mostre o histograma com a curva de densidade para a médias das amostras. 4) Submeta o link do RPubs com o resultado das etapas anteriores . Essa questão deve ficar dentro de uma aba chamada de “Teorema”. Note que apenas um link do RPubs é necessário. Basta repetir o link abaixo se você já tiver submetido para outras questões.

flu <- read.csv("flu.csv", header = T)
flu <- flu$age
hist(flu, col = 'green', probability = T)
densityFlu <- density(flu)
lines(densityFlu)

n <- 200
TamMedia <- 35
xbar <- rep(NA, n)
for(i in 1:n) {
  Amostra <- sample(flu, size = TamMedia)
  xbar[i] <- mean(Amostra)
}
hist(Amostra, col = 'green', probability = T)
densityXbar <- density(Amostra)
lines(densityXbar)