dados <- read.csv("C:\\Users\\WAGNER\\Downloads\\Dados_Funcionarios.csv", sep=",", header=TRUE, stringsAsFactors=FALSE)
head(dados)
## Funcionario Est.civil Inst Filhos Salario Anos Meses Regiao
## 1 1 solteiro 1o Grau NA 4.00 26 3 interior
## 2 2 casado 1o Grau 1 4.56 32 10 capital
## 3 3 casado 1o Grau 2 5.25 36 5 capital
## 4 4 solteiro 2o Grau NA 5.73 20 10 outro
## 5 5 solteiro 1o Grau NA 6.26 40 7 outro
## 6 6 casado 1o Grau 0 6.66 28 0 interior
table(dados$Est.civil)
##
## casado solteiro
## 20 16
prop.table(table(dados$Est.civil))
##
## casado solteiro
## 0.5555556 0.4444444
Como podemos ver nas tabelas, a relação de pessoas casadas é superior à de solteiras. Isso sugere que, nessa base de dados, existem mais pessoas “tristes” do que “felizes” (ou não).
barplot(table(dados$Est.civil),
main="Distribuição do Estado Civil",
col="lightblue",
ylab="Frequência",
xlab="Estado Civil",
las=1)
pie(table(dados$Est.civil),
main="Distribuicao do Estado Civil",
col=rainbow(length(unique(dados$Est.civil))))
Nesses Graficos, podemos ver de maneira mais clara o que foi dito anteriormente, enfantizando ainda mais a parte das pessoas tristes serem maioria nessa base de dados.
table(dados$Inst)
##
## 1o Grau 2o Grau Superior
## 12 18 6
prop.table(table(dados$Inst)) * 100
##
## 1o Grau 2o Grau Superior
## 33.33333 50.00000 16.66667
Podemos observar que a distribuição do grau de instrução varia entre os funcionários, com algumas categorias sendo mais predominantes que outras. Os dados indicam que a maioria dos funcionarios possuem ate o segundo grau completo, junto a uma menor porcentagem de pessoas com ensino superior. Essa distribuição pode indicar que a maior parte das funções exercidas pelos funcionários não exige formação superior, refletindo o perfil educacional predominante na empresa.
par(mar=c(8, 4, 4, 2))
barplot(table(dados$Inst),
main="Distribuição do Grau de Instrução",
col="lightgreen",
ylab="Frequência",
xlab="Grau de Instrução",
border="black",
las=1,
cex.names=0.8)
pie(table(dados$Inst),
main="Distribuição do Grau de Instrução",
col=rainbow(length(unique(dados$Inst))),
labels=paste(names(table(dados$Inst)), " - ", ... = round(prop.table(table(dados$Inst)) * 100, 1), "%"))
Os gráficos reforçam essa distribuição, mostrando que a maioria dos funcionários está nos níveis fundamental e médio, enquanto uma parcela menor alcançou o ensino superior.
table(dados$Filhos)
##
## 0 1 2 3 5
## 20 5 7 3 1
prop.table(table(dados$Filhos)) * 100
##
## 0 1 2 3 5
## 55.555556 13.888889 19.444444 8.333333 2.777778
cumsum(table(dados$Filhos))
## 0 1 2 3 5
## 20 25 32 35 36
Os dados indicam que a maior parte dos funcionários tem uma estrutura familiar pequena, com uma grande proporção sem filhos. A diversidade nas famílias com mais filhos é limitada, refletindo uma tendência de famílias menores entre os funcionários analisados.
barplot(prop.table(table(dados$Filhos)) * 100,
main="Distribuição do Número de Filhos (Frequência Relativa)",
col="lightcoral",
ylab="Porcentagem (%)",
xlab="Número de Filhos",
border="black",
las=1)
freq_acumulada <- cumsum(prop.table(table(dados$Filhos)))
plot(names(freq_acumulada), freq_acumulada * 100, type="o", col="blue",
main="Distribuição Acumulada do Número de Filhos",
xlab="Número de Filhos", ylab="Frequência Acumulada (%)",
pch=16, las=1)
Esses gráficos reforçam a análise anterior, apresentando de forma mais clara a distribuição do número de filhos, que varia de nenhum até 5 filhos.
salario_max <- max(dados$Salario, na.rm = TRUE)
salario_min <- min(dados$Salario, na.rm = TRUE)
n <- length(dados$Salario[!is.na(dados$Salario)])
num_classes <- round(1 + 3.3 * log10(n))
salario_min
## [1] 4
salario_max
## [1] 23.3
num_classes
## [1] 6
Analisando os salários, observamos que o menor valor registrado é 4, enquanto o maior é 23,3. Para facilitar a visualização da distribuição salarial, os dados serão organizados em seis intervalos de classe. Essa abordagem permite identificar em quais faixas salariais há maior concentração de funcionários e possibilita uma análise mais intuitiva da variação salarial dentro da empresa.
hist(dados$Salario,
main="Distribuição dos Salários",
xlab="Salário",
ylab="Número de Funcionários", # Substituindo "Frequência"
col="lightblue",
border="black",
breaks=num_classes,
las=1)
Este histograma reforça a análise anterior, mostrando a distribuição dos salários em seis classes, com valores variando de 0 a 25. Observa-se que a maior concentração de funcionários está na faixa salarial entre 5 e 10, evidenciando a predominância dessa faixa dentro da empresa.
tabela_contingencia <- table(dados$Est.civil, dados$Inst)
print(tabela_contingencia)
##
## 1o Grau 2o Grau Superior
## casado 5 12 3
## solteiro 7 6 3
Pela tabela, podemos observar que a maior parte dos funcionários com escolaridade mais elevada está entre os casados. No entanto, entre os solteiros, os níveis de escolaridade são bastante próximos, sem discrepâncias significativas. Essa análise sugere uma possível relação entre estado civil e grau de instrução, mas fatores como idade e tempo de experiência também podem influenciar essa distribuição e devem ser considerados para uma interpretação mais completa.
barplot(tabela_contingencia, beside=TRUE, col=rainbow(nrow(tabela_contingencia)),
main="Distribuição do Grau de Instrução por Estado Civil",
xlab="Grau de Instrução", ylab="Quantidade de Funcionários", legend.text=rownames(tabela_contingencia),
args.legend = list(x = "topright", bty = "n"),
las=1)
barplot(tabela_contingencia, beside=FALSE, col=rainbow(nrow(tabela_contingencia)),
main="Distribuição do Grau de Instrução por Estado Civil",
xlab="Grau de Instrução",
ylab="Quantidade de Funcionários",
width = 10,
legend.text = "Legenda",
las=1)
Esses gráficos reforçam a análise anterior, apresentando a distribuição dos dados de forma mais visual e intuitiva.
boxplot(dados$Salario ~ dados$Inst,
main = "Distribuicao Salarial por Grau de Instrucao",
xlab = "Grau de Instrucao",
ylab = "Salario",
col = "lightblue",
border = "black",
las=1)
O gráfico evidencia de forma intuitiva que os salários tendem a aumentar conforme o grau de escolaridade, indicando que funcionários mais escolarizados recebem salários mais altos. No entanto, também é possível notar que alguns funcionários com ensino superior possuem salários semelhantes aos de quem tem apenas o segundo grau, sugerindo que outros fatores podem influenciar a remuneração.
media_salario <- tapply(dados$Salario, dados$Inst, mean, na.rm = TRUE)
desvio_padrao_salario <- tapply(dados$Salario, dados$Inst, sd, na.rm = TRUE)
media_salario
## 1o Grau 2o Grau Superior
## 7.836667 11.528333 16.475000
desvio_padrao_salario
## 1o Grau 2o Grau Superior
## 2.956464 3.715144 4.502438
A análise dos dados mostra que a média salarial aumenta conforme o grau de instrução, variando de 7.84 no 1º Grau para 16.48 no Superior. O desvio padrão também cresce, indicando maior variação salarial entre os mais escolarizados, o que sugere diferenças nas faixas salariais dentro desse grupo.
dados$Idade <- dados$Anos + dados$Meses / 12
head(dados[c("Funcionario", "Anos", "Meses", "Idade")])
## Funcionario Anos Meses Idade
## 1 1 26 3 26.25000
## 2 2 32 10 32.83333
## 3 3 36 5 36.41667
## 4 4 20 10 20.83333
## 5 5 40 7 40.58333
## 6 6 28 0 28.00000
plot(dados$Idade, dados$Salario,
main=iconv("Relacao entre Salário e Idade", to="UTF-8"),
xlab="Idade",
ylab="Salario",
col="blue",
pch=16,
las=1)
O gráfico revela que funcionários mais velhos tendem a receber salários mais altos. No entanto, é possível observar uma diferença pequena na relação entre idade e salário, o que sugere que a empresa leva em consideração outros fatores além da idade para determinar a remuneração.
cor(dados$Idade, dados$Salario)
## [1] 0.3651397
A correlação entre Idade e Salário foi de 0.365, indicando uma correlação positiva moderada. Isso sugere que, em geral, à medida que a idade aumenta, o salário tende a ser maior, mas a relação não é muito forte. Outros fatores além da idade provavelmente influenciam o salário dos funcionários.
dados <- dados[order(dados$Filhos), ]
mean(dados$Filhos)
## [1] 0.9166667
var(dados$Filhos)
## [1] 1.564286
sd(dados$Filhos, na.rm = TRUE)
## [1] 1.250714
median(dados$Filhos)
## [1] 0
quantile(dados$Filhos, probs = c(0.25, 0.5, 0.75), na.rm = TRUE)
## 25% 50% 75%
## 0 0 2
dados <- dados[order(dados$Filhos), ]
mean(dados$Salario, na.rm = TRUE)
## [1] 11.12222
var(dados$Salario, na.rm = TRUE)
## [1] 21.04477
sd(dados$Salario, na.rm = TRUE)
## [1] 4.587458
median(dados$Salario, na.rm = TRUE)
## [1] 10.165
quantile(dados$Salario, probs = c(0.25, 0.50, 0.75), na.rm = TRUE)
## 25% 50% 75%
## 7.5525 10.1650 14.0600