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")| Var1 | Freq |
|---|---|
| casado | 20 |
| solteiro | 16 |
| 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")| 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")| 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")| 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")| 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
## 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.
## [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| 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 |
| Variância | Mediana | 1º Quartil (Q1) | 3º Quartil (Q3) |
|---|---|---|---|
| 21.04477 | 10.165 | 7.5525 | 14.06 |