Relatorio de Funcionarios

Gustavo Azevedo Lelis Farias

2025-03-26

library(ggplot2)
library(dplyr)
library(knitr)

Dados: - Base de dados fornecido(Dados_Funcionarios.csv)

2. Análise da Variável Estado Civil

Para compreender a distribuição dos funcionários por estado civil, realizamos:

Tabelas de frequência: Absoluta e relativa.

freq_absoluta <- table(dados$Est.civil)
freq_relativa <- prop.table(freq_absoluta) * 100


kable(as.data.frame(freq_absoluta), caption = "Frequência Absoluta - Estado Civil")
Frequência Absoluta - Estado Civil
Var1 Freq
casado 20
solteiro 16
kable(as.data.frame(freq_relativa), caption = "Frequência Relativa (%) - Estado Civil")
Frequência Relativa (%) - Estado Civil
Var1 Freq
casado 55.55556
solteiro 44.44444

Visualizações: Gráfico de barras (para comparação direta) e de setores (para proporções).

# Gráfico de barras
ggplot(data = as.data.frame(freq_absoluta), aes(x = Var1, y = Freq)) +
  geom_bar(stat = "identity", fill = "steelblue") +
  labs(title = "Gráfico de Barras - Estado Civil", x = "Estado Civil", y = "Frequência") +
  theme_minimal()

# Gráfico de setores (pizza)
pie(freq_absoluta, labels = names(freq_absoluta), main = "Gráfico de Pizza - Estado Civil", col = rainbow(length(freq_absoluta)))

3. Análise da Variável Grau de Instrução

Tabelas de Frequência

  • Foram calculadas as frequências absoluta e relativa para verificar a distribuição dos diferentes níveis de escolaridade.
tabela_inst <- dados %>%
    count(Inst) %>%
    mutate(
        Frequencia_Absoluta = n,
        Frequencia_Relativa = n / sum(n)
    ) %>%
    select(Inst, Frequencia_Absoluta, Frequencia_Relativa)

kable(tabela_inst, caption = "Tabela de Frequências - Grau de Instrução")
Tabela de Frequências - Grau de Instrução
Inst Frequencia_Absoluta Frequencia_Relativa
1o Grau 12 0.3333333
2o Grau 18 0.5000000
Superior 6 0.1666667

Gráficos

  • Gráfico de barras e um gráfico de setores para representar essa distribuição dos diferentes níveis de escolaridade.
#Gráfico de Barras
ggplot(tabela_inst, aes(x = reorder(Inst, -Frequencia_Absoluta), y = Frequencia_Absoluta)) +
    geom_bar(stat = "identity", fill = "blue", alpha = 0.7) +
    labs(title = "Frequência Absoluta - Grau de Instrução", x = "Grau de Instrução", y = "Frequência Absoluta") +
    theme_minimal() +
    coord_flip()  

# Criar gráfico de pizza
ggplot(tabela_inst, aes(x = "", y = Frequencia_Relativa, fill = Inst)) +
    geom_bar(stat = "identity", width = 1, color = "white") +
    coord_polar(theta = "y") +
    labs(title = "Distribuição do Grau de Instrução (Gráfico de Pizza)") +
    theme_minimal() +
    theme(axis.text.x = element_blank(), axis.ticks = element_blank(), panel.grid = element_blank())

4. Análise da Variável Número de Filhos

Aqui, resumimos a distribuição de filhos dos funcionários com:
Tabelas

  • Frequência absoluta, relativa e acumulada (para análise progressiva).
tabela_filhos <- dados %>%
    count(Filhos) %>%
    mutate(
        Frequencia_Absoluta = n,
        Frequencia_Relativa = n / sum(n),
        Frequencia_Acumulada = cumsum(Frequencia_Relativa)
    ) %>%
    select(Filhos, Frequencia_Absoluta, Frequencia_Relativa, Frequencia_Acumulada)


kable(tabela_filhos, caption = "Tabela de Frequências - Número de Filhos")
Tabela de Frequências - Número de Filhos
Filhos Frequencia_Absoluta Frequencia_Relativa Frequencia_Acumulada
0 4 0.1111111 0.1111111
1 5 0.1388889 0.2500000
2 7 0.1944444 0.4444444
3 3 0.0833333 0.5277778
5 1 0.0277778 0.5555556
NA 16 0.4444444 1.0000000
  • Gráficos:

    • Frequência relativa: Comparação entre categorias.
ggplot(tabela_filhos, aes(x = as.factor(Filhos), y = Frequencia_Relativa)) +
    geom_bar(stat = "identity", fill = "blue", alpha = 0.7) +
    labs(title = "Frequência Relativa - Número de Filhos", x = "Número de Filhos", y = "Frequência Relativa") +
    theme_minimal()

  • Frequência acumulada: Identifica pontos de corte (ex: aproximadamente 55% dos funcionários têm até 5 filhos).
ggplot(tabela_filhos, aes(x = as.factor(Filhos), y = Frequencia_Acumulada, group = 1)) +
    geom_line(color = "red", size = 1) +
    geom_point(color = "red", size = 2) +
    labs(title = "Frequência Relativa Acumulada - Número de Filhos", x = "Número de Filhos", y = "Frequência Acumulada") +
    theme_minimal()

5. Análise da Variável Salário

  • Valores máximo e mínimo dos salários e o número ideal de classes para a construção de uma tabela de frequência.
min_salario <- min(dados$Salario, na.rm = TRUE)
max_salario <- max(dados$Salario, na.rm = TRUE)

n <- nrow(dados)  
num_classes <- round(1 + log2(n)) 

list(Minimo = min_salario, Maximo = max_salario, Num_Classes = num_classes)
## $Minimo
## [1] 4
## 
## $Maximo
## [1] 23.3
## 
## $Num_Classes
## [1] 6

Histograma

  • Visualização da distribuição dos salários.
ggplot(dados, aes(x = Salario)) +
    geom_histogram(binwidth = (max_salario - min_salario) / num_classes, fill = "blue", color = "black", alpha = 0.7) +
     geom_vline(aes(xintercept = mean(Salario, na.rm = TRUE)), color = "red", linetype = "dashed") +
    labs(title = "Histograma dos Salários", x = "Salário", y = "Frequência") +
    theme_minimal()

6. Análise Conjunta: Estado Civil e Grau de Instrução

Tabela de Contingência

  • Tabela cruzada para examinar a relação entre estado civil e grau de instrução.
tabela_contingencia <- table(dados$Est.civil, dados$Inst)

kable(tabela_contingencia, caption = "Tabela de Contingência - Estado Civil x Grau de Instrução")
Tabela de Contingência - Estado Civil x Grau de Instrução
1o Grau 2o Grau Superior
casado 5 12 3
solteiro 7 6 3

Gráfico de Barras Comparativo

  • Tabela de contingência em gráficos de barras para facilitar a interpretação.
df_contingencia <- as.data.frame(tabela_contingencia)
colnames(df_contingencia) <- c("EstadoCivil", "GrauInstrucao", "Frequencia")

ggplot(df_contingencia, aes(x = EstadoCivil, y = Frequencia, fill = GrauInstrucao)) +
    geom_bar(stat = "identity", position = "dodge") +
    labs(title = "Distribuição Estado Civil x Grau de Instrução", x = "Estado Civil", y = "Frequência") +
    theme_minimal()

ggplot(df_contingencia, aes(x = EstadoCivil, y = Frequencia, fill = GrauInstrucao)) +
    geom_bar(stat = "identity", position = "stack") +
    labs(title = "Distribuição Estado Civil x Grau de Instrução (Empilhado)", x = "Estado Civil", y = "Frequência") +
    theme_minimal()

7. Análise Conjunta: Grau de Instrução e Salário

Box-Plot

  • Comparação da distribuição dos salários entre os diferentes níveis de instrução.
ggplot(dados, aes(x = Inst, y = Salario, fill = Inst)) +
    geom_boxplot() +
    labs(title = "Box-Plot: Salário por Grau de Instrução", x = "Grau de Instrução", y = "Salário") +
    theme_minimal() +
    theme(legend.position = "none")  

Estatísticas Descritivas

  • Média e o desvio padrão dos salários para cada grau de instrução.
estatisticas <- dados %>%
    group_by(Inst) %>%
    summarise(
        Media_Salario = mean(Salario, na.rm = TRUE),
        DesvioPadrao_Salario = sd(Salario, na.rm = TRUE)
    )

kable(estatisticas, caption = "Média e Desvio Padrão dos Salários por Grau de Instrução")
Média e Desvio Padrão dos Salários por Grau de Instrução
Inst Media_Salario DesvioPadrao_Salario
1o Grau 7.836667 2.956464
2o Grau 11.528333 3.715144
Superior 16.475000 4.502438

8. Cálculo da Idade dos Funcionários

dados <- dados %>%
    mutate(Idade = Anos + Meses / 12)

head(dados)
##   Funcionario Est.civil    Inst Filhos Salario Anos Meses   Regiao    Idade
## 1           1  solteiro 1o Grau     NA    4.00   26     3 interior 26.25000
## 2           2    casado 1o Grau      1    4.56   32    10  capital 32.83333
## 3           3    casado 1o Grau      2    5.25   36     5  capital 36.41667
## 4           4  solteiro 2o Grau     NA    5.73   20    10    outro 20.83333
## 5           5  solteiro 1o Grau     NA    6.26   40     7    outro 40.58333
## 6           6    casado 1o Grau      0    6.66   28     0 interior 28.00000

9. Relação entre Salário e Idade

Grafico

  • Analise da relação entre idade e salário
ggplot(dados, aes(x = Idade, y = Salario)) +
    geom_point(color = "blue", alpha = 0.6) +  
    geom_smooth(method = "lm", col = "red", se = TRUE) +  
    labs(title = "Relação entre Salário e Idade", x = "Idade (anos)", y = "Salário") +
    theme_minimal()
## `geom_smooth()` using formula = 'y ~ x'

  • A correlação entre essas variáveis foi calculada para verificar a força e direção da relação.
correlacao <- cor(dados$Idade, dados$Salario, use = "complete.obs", method = "pearson")

correlacao
## [1] 0.3651397

10

# Análise por Grau de Instrução (Média e Desvio Padrão)
estatisticas_salario <- dados %>%
  group_by(Inst) %>%
  summarise(
    Media_Salario = mean(Salario, na.rm = TRUE),
    DesvioPadrao_Salario = sd(Salario, na.rm = TRUE),
    .groups = "drop"
  ) %>%
  kable(
    caption = "Média e Desvio Padrão por Grau de Instrução",
    col.names = c("Grau de Instrução", "Média", "Desvio Padrão"),
    align = c('l', 'c', 'c')  # Alinhamento das colunas
  )

# Estatísticas gerais (todos os funcionários)
estatisticas_gerais <- dados %>%
  summarise(
    Variancia = var(Salario, na.rm = TRUE),
    Mediana = median(Salario, na.rm = TRUE),
    Q1 = quantile(Salario, 0.25, na.rm = TRUE),
    Q3 = quantile(Salario, 0.75, na.rm = TRUE)
  ) %>%
  kable(
    caption = "Estatisticas Descritivas Gerais dos Salários",
    col.names = c("Variância", "Mediana", "1º Quartil (Q1)", "3º Quartil (Q3)")
  )

estatisticas_salario
Média e Desvio Padrão por Grau de Instrução
Grau de Instrução Média Desvio Padrão
1o Grau 7.836667 2.956464
2o Grau 11.528333 3.715144
Superior 16.475000 4.502438
estatisticas_gerais
Estatisticas Descritivas Gerais dos Salários
Variância Mediana 1º Quartil (Q1) 3º Quartil (Q3)
21.04477 10.165 7.5525 14.06