Definição de artistas para pesquisa
Pesquisa = c("Tiago Iorc",
"Tulipa Ruiz",
"Zé Ramalho",
"Lenine",
"Marisa Monte",
"Alceu Valença",
"Los Hermanos",
"Oswaldo Montenegro",
"Tiê",
"Falamansa")
#Artista <- get_artists("falamansa")
Pesquisa = data.frame(Pesquisa)
colnames(Pesquisa) <- c("artista")
Pesquisa$ordem = row.names(Pesquisa)
Pesquisa_base = Pesquisa
Pesquisa API Spotify
Classificação da Tonalidade Musical
Indicadores_Musicais_final_1$grau = ifelse(Indicadores_Musicais_final_1$key_mode=="A minor",-6.0,
ifelse(Indicadores_Musicais_final_1$key_mode=="A# minor",-6.5,
ifelse(Indicadores_Musicais_final_1$key_mode=="B minor",-7.0,
ifelse(Indicadores_Musicais_final_1$key_mode=="C minor",-1.0,
ifelse(Indicadores_Musicais_final_1$key_mode=="C# minor",-1.5,
ifelse(Indicadores_Musicais_final_1$key_mode=="D minor",-2.0,
ifelse(Indicadores_Musicais_final_1$key_mode=="D# minor",-2.5,
ifelse(Indicadores_Musicais_final_1$key_mode=="E minor",-3.0,
ifelse(Indicadores_Musicais_final_1$key_mode=="F minor",-4.0,
ifelse(Indicadores_Musicais_final_1$key_mode=="F# minor",-4.5,
ifelse(Indicadores_Musicais_final_1$key_mode=="G minor",-5.0,
ifelse(Indicadores_Musicais_final_1$key_mode=="G# minor",-5.5,
ifelse(Indicadores_Musicais_final_1$key_mode=="A major",6.0,
ifelse(Indicadores_Musicais_final_1$key_mode=="A# major",6.5,
ifelse(Indicadores_Musicais_final_1$key_mode=="B major",7.0,
ifelse(Indicadores_Musicais_final_1$key_mode=="C major",1.0,
ifelse(Indicadores_Musicais_final_1$key_mode=="C# major",1.5,
ifelse(Indicadores_Musicais_final_1$key_mode=="D major",2.0,
ifelse(Indicadores_Musicais_final_1$key_mode=="D# major",2.5,
ifelse(Indicadores_Musicais_final_1$key_mode=="E major",3.0,
ifelse(Indicadores_Musicais_final_1$key_mode=="F major",4.0,
ifelse(Indicadores_Musicais_final_1$key_mode=="F# major",4.5,
ifelse(Indicadores_Musicais_final_1$key_mode=="G major",5.0,5.5)))))))))))))))))))))))
Análise de Rede
library(reshape)
Analise_Rede = subset(Indicadores_Musicais_final_1, select = c(artist_name,key_mode))
Analise_Rede$quant = 1
Analise_Rede = cast(Analise_Rede,key_mode~artist_name)
gAnalise_Rede <- Analise_Rede[,2:NCOL(Analise_Rede)]
rownames(gAnalise_Rede) <- Analise_Rede[,1]
library(visNetwork)
library(network)
library(sna)
library(rgl)
gplot(gAnalise_Rede,gmode="twomode",displaylabels = TRUE,
edge.col="gray",label.cex = 0.5,usearrows=FALSE,
vertex.cex = closeness(gAnalise_Rede,gmode="twomode")*1,
vertex.label.dist=20,vertex.size=20)

Cluster Analise
grupo_artista = summarise(group_by(Indicadores_Musicais_final_1, artist_name),
valence= mean(valence),
grau= mean(grau),
danceability= mean(danceability),
energia = mean(energy),
acustica = mean(acousticness),
instrumental = mean(instrumentalness),
speechiness = mean(speechiness))
grupo_artista_cluster = subset(grupo_artista, select = -c(artist_name))
row.names(grupo_artista_cluster) <- grupo_artista$artist_name
numero_cluster = round(max(as.numeric(Pesquisa_base$ordem))/3, digits = 0)
grupo_artista_cluster_km <- kmeans(grupo_artista_cluster, numero_cluster)
grupo_artista
## # A tibble: 10 x 8
## artist_name valence grau danceability energia acustica instrumental
## <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 Alceu Valença 0.576 0.989 0.543 0.625 0.440 0.0211
## 2 Falamansa 0.784 2.30 0.576 0.664 0.329 0.00196
## 3 Lenine 0.522 -0.336 0.589 0.584 0.384 0.137
## 4 Los Hermanos 0.584 0.130 0.528 0.646 0.288 0.107
## 5 Marisa Monte 0.472 1.65 0.537 0.506 0.607 0.0554
## 6 Oswaldo Mont~ 0.370 2.06 0.485 0.354 0.679 0.0270
## 7 Tiago Iorc 0.412 2 0.591 0.442 0.477 0.0825
## 8 Tiê 0.556 2.45 0.612 0.412 0.637 0.0203
## 9 Tulipa Ruiz 0.606 0.744 0.720 0.515 0.474 0.0443
## 10 Zé Ramalho 0.583 0.650 0.584 0.591 0.372 0.0445
## # ... with 1 more variable: speechiness <dbl>
Analise de Agrupamento
library(cluster)
clusplot(grupo_artista_cluster,
grupo_artista_cluster_km$cluster,
main='2D representation of the Cluster solution',
color=TRUE, shade=TRUE,
labels=2, lines=0)

Dendrograma
d <- dist(grupo_artista_cluster, method = "euclidean")
fit <- hclust(d, method="ward")
plot(fit)
groups <- cutree(fit, k=numero_cluster)
rect.hclust(fit, k=numero_cluster, border="red")

Base para correlação linear
#Correlação para entre variáveis e propriedades musicais
base_correlacao = subset(Indicadores_Musicais_final_1,
select = c(album_popularity,
album_uri,
danceability,
energy,
speechiness,
grau,
liveness,
valence,
acousticness,
loudness,
instrumentalness,
base_album_name,
artist_name))
names(base_correlacao)[names(base_correlacao) == 'album_popularity'] <- 'Popularidade'
names(base_correlacao)[names(base_correlacao) == 'danceability'] <- 'Danca'
names(base_correlacao)[names(base_correlacao) == 'energy'] <- 'Energia'
names(base_correlacao)[names(base_correlacao) == 'speechiness'] <- 'Voz'
names(base_correlacao)[names(base_correlacao) == 'grau'] <- 'Tom'
names(base_correlacao)[names(base_correlacao) == 'liveness'] <- 'Alegria'
names(base_correlacao)[names(base_correlacao) == 'valence'] <- 'Valencia'
names(base_correlacao)[names(base_correlacao) == 'acousticness'] <- 'Acustica'
names(base_correlacao)[names(base_correlacao) == 'loudness'] <- 'Sonoridade'
names(base_correlacao)[names(base_correlacao) == 'instrumentalness'] <- 'Instrumental'
names(base_correlacao)[names(base_correlacao) == 'base_album_name'] <- 'album_name'
base_correlacao = summarise(group_by(base_correlacao, album_uri,Popularidade ,album_name,artist_name),
Danca = mean(Danca),
Energia = mean(Energia),
Voz = mean(Voz),
Tom = mean(Tom),
Alegria = mean(Alegria),
Valencia = mean(Valencia),
Acustica = mean(Acustica),
Sonoridade = mean(Sonoridade),
Instrumental = mean(Instrumental))
Estudo de Correlação - Exemplo 1
library(PerformanceAnalytics)
chart.Correlation(subset(base_correlacao, select = -c(album_uri,album_name,artist_name)),
histogram=TRUE, pch=19)

Estudo de Correlação - Exemplo 2
library(corrplot)
corrplot(round(cor(subset(base_correlacao, select = -c(album_uri,album_name,artist_name))),2), method="number")

BoxPlot
library(plotly)
library(ggplot2)
p_box = qplot(x= artist_name,
y= Energia ,
data=base_correlacao ,
geom=c("boxplot","jitter") ,
fill=artist_name)+
theme(
axis.text.x=element_blank(),
legend.text=element_text(size=7),
plot.title = element_text(size=12.0))+
labs(x = "Artistas")+ labs(fill="")+
ggtitle("Estilos Musicais - Nivel de Energia")+ylab("% de Energia")
p_box = ggplotly(p_box)
p_box
Classificação de Segmentos na base Spotify
library(dplyr)
segmentacao = data.frame(groups)
segmentacao = add_rownames(segmentacao, "artist_name")
Indicadores_Musicais_final_1 = merge(Indicadores_Musicais_final_1,
segmentacao,
by.x="artist_name", by.y="artist_name")
Indicadores_Musicais_final_1$quant = 1
Indicadores_Musicais_final_1$groups = paste("Grupo = ",Indicadores_Musicais_final_1$groups)
Histograma de popularidade das faixas musicais por Cluster
dados_po <- ggplot(Indicadores_Musicais_final_1, aes(x = track_popularity, fill = groups)) +
geom_density(alpha = 0.2)
dados_po <- ggplotly(dados_po )
dados_po