PCA - Análise de componentes principais

dados_comp <- read_excel('~/Graduacao_estatistica/LABORATORIO II/Crime vitima mulher 2011 - 2016 MT.xlsx', skip = 1)
Limpar nomes das colunas
dados_comp_limp <- dados_comp %>%
  janitor::clean_names()

Remover linhas com NAs do dataframe original

dados_comp_limp <- na.omit(dados_comp_limp)
#var_selec <- c("Abandono (1)", "Ameaça", "Apropriação Indébita", "Assédio Sexual", 
 #              "Ato Obsceno", "Calúnia", "Constrangimento Ilegal", 
   #            "Corrupção de Menores", "Corrupção de Menores (Tentado)", 
  #             "Danos Materiais (2)", "Difamação", "Estelionato")
Selecionando Escolher 30 cidades, e 12 variáveis , abaixo amostra do banco de dados:
cidades_amostra <- dados_comp_limp%>%
  sample_n(30)

AQUI SE RODAR DÁ ERRO

#resumo_var_cidades <- cidades_amostra %>%
 # select(municipios, all_of(var_selec))
Selecionar apenas colunas numéricas (excluindo o nome do município)
dados_numerico <- dados_comp_limp%>%
  select(-municipios, -tipificacao_de_ocorrencias)
Análise de Componentes Principais (PCA)
acp_result <- prcomp(dados_numerico, center = T, scale. = T)
summary(acp_result)
## Importance of components:
##                           PC1    PC2
## Standard deviation     1.0171 0.9826
## Proportion of Variance 0.5172 0.4828
## Cumulative Proportion  0.5172 1.0000
Visualização dos Resultados da PCA
acp_df <- as.data.frame(acp_result$x)

acp_df$municipios <- dados_comp_limp$municipios # Adicionamos o nome dos municípios


# Verificar o número de linhas em cada dataframe
nrow(acp_df)
## [1] 9771
nrow((dados_comp_limp))
## [1] 9771
Visualização dos Resultados da PCA
ggplot(acp_df, aes(x = PC1, y = PC2, label = municipios)) +
  geom_point()+
  geom_text(vjust = 1.5, hjust = 1.5) +
  ggtitle("PCA - Cidades com Crimes contra mulheres") +
  theme_minimal()

# Clusterização usando k-means
set.seed(123)  # Para reprodutibilidade
kmeans_result <- kmeans(acp_df[, 1:2], centers = 3)  # Ajuste o número de clusters conforme necessário
# Adicionar cluster e municípios ao dataframe
acp_df$cluster <- as.factor(kmeans_result$cluster)
acp_df$municipios <- dados_comp_limp$municipios  # Adiciona os nomes dos municípios
# Visualização dos clusters
ggplot(acp_df, aes(x = PC1, y = PC2, color = cluster, label = municipios)) +
  geom_point() +
  geom_text(vjust = 1.5, hjust = 1.5) +
  ggtitle("Clusters de Cidades com Crimes contra Mulheres") +
  theme_minimal()