Introdução
Este estudo examina informações sobre os
funcionários, abrangendo detalhes como estado civil, nível de
escolaridade, quantidade de filhos, remunerações e faixas etárias.
Esse é um relatório da disciplina Probabilidade e Estatística, realizado
por a linguagem R.
1)Faça a importação destes dados para o R.
dados <- read.csv("C:\\Users\\mathe\\Desktop\\DADOS\\Dados_Funcionarios.csv", sep=",", header=TRUE)
#Importa um arquivo CSV denominado "Dados_Funcionarios.csv", que contém detalhes sobre empregados que possui informações como nome, função, salário, etc. Em seguida, guarda estes dados numa estrutura de dados chamada "dados" dentro do ambiente R. Assume que a primeira linha do ficheiro define os nomes das colunas e que os diferentes valores estão separados por vírgulas.
2) Considerando a variável estado civil
(Est.civil):
a)Faça tabelas de frequência absoluta e
relativa:
frequencia_absoluta <- table(dados$'Est.civil')
print(frequencia_absoluta)
##
## casado solteiro
## 20 16
frequencia_relativa <- prop.table(frequencia_absoluta)
print(frequencia_relativa)
##
## casado solteiro
## 0.5555556 0.4444444
#O código realiza uma análise estatística descritiva da variável "Est.civil" (estado civil) contida no dataframe dados, calculando, a frequência absoluta (contagem de ocorrências) e a frequência relativa (proporção em relação ao total). Foi utilizado as seguintes funções "table()" que serve para contar quantos registros existem para cada estado civil diferente (por exemplo: Solteiro, Casado, Divorciado), "prop.table()" que transforma os valores de contagem em porcentagens, mostrando a proporção de cada estado civil em relação ao todo (valores entre 0 e 1) e por final "print" que imprime o resultado.
b)Faça um gráfico de barras e um de setores (pizza)
barplot(frequencia_absoluta,
xlab = "Estado Civil",
ylab = "Número de Pessoas",
main = "Distribuição por Estado Civil",
col = c("#1e90ff", "#ff6347", "#32cd32"),
border = NA)
#Com base nos dados de frequência absoluta já obtidos, este código cria duas representações visuais para analisar como o estado civil se distribui entre os funcionários, gráfico de barras gerado pela função (barplot) que cria um gráfico de barras verticais, os eixos são representados da seguinte maneira: (xlab) rótulo do eixo X (categorias de estado civil) (ylab) rótulo do eixo Y (contagem de pessoas) e por último a função (main) que define o título do gráfico.
pie(frequencia_absoluta,
main = "Distribuição por Estado Civil",
col = c("#87ceeb", "#ffcccb"),
init.angle = 90)
#A função "pie()" cria um gráfico de pizza (setores), em seguida o título que se define pela função (main), as cores do gráfico é chamada pela função (col) que utiliza as seguintes cores:(azul:(#87ceeb) e rosa(#ffcccb)), por fim vem a rotação do gráfico (init.angle = 90) que inicia o primeiro setor às 12 horas.
3)Considerando a variável grau de instrução
(Inst):
a)Faça tabelas de frequência absoluta e relativa
frequencia_absoluta_inst <- table(dados$'Inst')
print(frequencia_absoluta_inst)
##
## 1o Grau 2o Grau Superior
## 12 18 6
frequencia_relativa_inst <- prop.table(frequencia_absoluta_inst)
print(frequencia_relativa_inst)
##
## 1o Grau 2o Grau Superior
## 0.3333333 0.5000000 0.1666667
#Basicamente o código gera dois tipos de tabelas para a variável "Inst". Primeiro, ele usa a função table() para produzir a tabela de frequência absoluta, designada como tabelaFreqAbsolutaInst. Essa tabela contabiliza quantas vezes cada categoria aparece. Em seguida, emprega a função prop.table() para obter a tabela de frequência relativa, que indica a proporção dos valores em relação ao número total de observações. Por fim as tabelas são exibidas pelo comando print().
b)Faça um gráfco de barras e um de setores (pizza)
barplot(frequencia_absoluta_inst,
xlab = "Grau de Instrução",
ylab = "Número de Pessoas",
main = "Distribuição por Grau de Instrução",
col = rainbow(length(frequencia_absoluta_inst)))
pie(frequencia_absoluta_inst,
main = "Distribuição por Grau de Instrução",
col = rainbow(length(frequencia_absoluta_inst)))
#O código cria barplot(frequencia_absoluta_inst) que gera um gráfico de barras usando os dados de frequência absoluta.'xlab'que define o rótulo do eixo X como "Grau de Instrução".'ylab' que estabelece o rótulo do eixo Y como "Número de Pessoas",o 'main' que define o título do gráfico, e por último 'col' que gera 'rainbow(length(frequencia_absoluta_inst))'que define as cores das barras utilizando a função rainbow(), que gera cores variadas de acordo com o número de categorias.
4)Considerando a variável “número de filhos”
(Filhos):
a)Faça tabelas de frequência absoluta, relativa e
acumulada
frequencia_absoluta_filhos <- table(dados$'Filhos')
print(frequencia_absoluta_filhos)
##
## 0 1 2 3 5
## 4 5 7 3 1
frequencia_relativa_filhos <- prop.table(frequencia_absoluta_filhos)
print(frequencia_relativa_filhos)
##
## 0 1 2 3 5
## 0.20 0.25 0.35 0.15 0.05
frequencia_acumulada_filhos <- cumsum(frequencia_absoluta_filhos)
print(frequencia_acumulada_filhos)
## 0 1 2 3 5
## 4 9 16 19 20
#Este código mostra a distribuição da variável 'Filhos' dentro do seu conjunto de dados, nomeado como 'dados'. Para isso, ele determina três medidas de frequência distintas, a frequência absoluta que emprega a função table() para determinar a quantidade de ocorrências de cada valor específico presente na variável 'Filhos' dentro do conjunto de dados, o resultado obtido é armazenado na variável frequencia_absoluta_filhos, frequência relativa aplica a função prop.table() à frequência absoluta, visando calcular a proporção correspondente a cada valor distinto, O resultado é então salvo em frequencia_relativa_filhos, e a frequência acumulada utiliza a função cumsum() sobre a frequência absoluta, com o objetivo de calcular a soma progressiva das frequências identificadas, o resultado desta operação é guardado em frequencia_acumulada_filhos. As tabelas são imprimidas pelo comando print().
b)Faça um gráfico com as frequências relativas e outro com as frequências relativas acumuladas
barplot(frequencia_relativa_filhos,
xlab = "Quantidade de Filhos",
ylab = "Proporção",
main = "Frequência Relativa por Filhos",
col = topo.colors(length(frequencia_relativa_filhos)))
barplot(frequencia_acumulada_filhos,
xlab = "Quantidade de Filhos",
ylab = "Acumulado",
main = "Frequência Acumulada por Filhos",
col = cm.colors(length(frequencia_acumulada_filhos)))
#O código apresenta a frequencia_relativa_filhos que são os dados de entrada (proporções de cada categoria), 'xlab' rótulo do eixo X indica quantidade de filhos, 'ylab' rótulo do eixo Y mostra a proporção, 'main' o título do gráfico exibido, 'col' as cores são determinadas por topo.colors(), gerando uma escala de cores variada (número de cores = número de categorias) frequencia_acumulada_filhos: Informações recebidas (totais progressivos). A frequencia_acumulada_filhos dados de entrada (somas cumulativas), rótulos e título seguem o mesmo padrão do anterior, mas aplicados à frequência cumulativa e 'col' adota cm.colors(), um esquema de cores gradiente distinto (ciano).
5) Considerando a variável salário (Salario):
a)Verifique os valores máximo e mínimo e qual seria o número adequado de
classes para a construção de uma tabela de frequência para resumir esta
variável
salario_minimo <- min(dados$Salario)
salario_maximo <- max(dados$Salario)
print(c(salario_minimo, salario_maximo))
## [1] 4.0 23.3
#O código descobre o menor salário, a função 'min()' busca o valor mais baixo existente na coluna Salario do dataframe dados e guarda este valor na variável 'salario_minimo'. A função 'max()' encontra o maior valor na coluna Salario, armazena o resultado na variável 'salario_maximo'. A função 'c()' reúne ambos os valores em um único vetor e o 'print()' mostra o vetor que contém [menor valor, maior valor].
b)Faça um histograma
numero_classes <- 8
hist(dados$'Salario',
xlab = "Faixa Salarial",
ylab = "Frequência",
breaks = seq(salario_minimo, salario_maximo, length.out = numero_classes + 1),
col = "#b22222")
#O código apresenta 'numero_classes <- 8' isso informa que o histograma será dividido em 8 partes ou faixas de valores. 'hist(dados$'Salario'. A função hist() cria o histograma usando os valores da coluna 'Salario', 'xlab' apresenta a faixa salarial e define o rótulo do eixo X, 'ylab' mostra a frequência e define o rótulo do eixo Y, o 'breaks = seq(...)' especifica os pontos de corte das classes, começa no salario_minimo e termina no salario_maximo divide em 'numero_classes + 1' (8 classes precisam de 9 pontos de corte), e por fim 'col = "#b22222"' define a cor das barras como vermelho escuro.
6) Considerando as variáveis estado civil (Est.civil) e grau de
instrução (Inst):
a) Faça uma tabela de contingência para
resumir o cruzamento destas duas variáveis
tabelaCont <- table(dados$Est.civil, dados$Inst)
print(tabelaCont)
##
## 1o Grau 2o Grau Superior
## casado 5 12 3
## solteiro 7 6 3
#O código cria e mostra uma tabela de contingência (tabela cruzada) essa tabela demonstra a relação existente entre duas variáveis categóricas específicas dentro do conjunto de dados fornecido, A função 'table()' é utilizada para gerar uma tabela de contingência, já o 'dados$Est.civil' refere-se à primeira variável qualitativa, representando o estado civil.'dados$Inst' indica a segunda variável qualitativa, neste caso, o nível de instrução, o resultado é armazenado na variável 'tabelaCont' e 'print(tabelaCont)' imprime a tabela de contingência.
barplot(tabelaCont,
main = "Distribuição por Estado Civil e Grau de Instrução",
col = c("#4682B4", "#FF7F50", "#6A5ACD"),
legend.text = rownames(tabelaCont),
beside = TRUE,
ylim = c(0, 25),
args.legend = list(x = "topright", bty = "n", cex = 0.8))
#O código cria um gráfico de barras agrupadas para visualizar a tabela de contingência que relaciona estado civil e grau de instrução,'tabelaCont' é a matriz de dados (tabela de contingência) 'main' mostra o título do gráfico, 'col' define as cores para cada categoria de estado civil (azul, coral, lilás), 'legend.text' Usa os nomes das linhas da tabela como texto da legenda, já o 'args.legend'é as configurações da legenda, 'x = "topright"' é a posição no canto superior direito, o 'bty = "n"' remove a caixa ao redor da legenda, 'cex = 0.8' tamanho do texto para ser reduzido em 20%, 'beside = TRUE' Cria as barras agrupadas (em vez de empilhadas), e por fim 'ylim = c(0, 25)' Define os limites do eixo Y (0 a 25).
7)Considerando as variáveis e “grau de instrução” (Inst) e
salário (Salario):
a)Faça um box-plot para verificar a
relação entre estas duas variáveis
boxplot(dados$Salario ~ dados$Inst,
ylab = "Salário",
xlab = "Grau de Instrução",
border = "black",
main = "Distribuição de Salário por Grau de Instrução",
col = c("#FF4500", "#4169E1", "#32CD32"),
notch = TRUE)
## Warning in (function (z, notch = FALSE, width = NULL, varwidth = FALSE, :
## alguns entalhes saíram fora das dobradiças ('caixa'): talvez definir
## notch=FALSE
#O código cria um boxplot que mostra a distribuição de salários agrupados por grau de instrução, 'dados$Salario ~ dados$Inst' indica a intenção de criar um gráfico que relaciona a remuneração (a variável dependente) com o nível de escolaridade (a variável que categoriza os dados), 'ylab' Rótulo do eixo Y (variável numérica contínua), 'xlab' Rótulo do eixo X (variável categórica), 'border = "black"' Define a borda das caixas na cor preta, 'col' Define as cores para cada categoria (vermelho, azul e verde), 'notch = TRUE' Inclui marcações que facilitam a comparação das medianas de maneira visual e por fim o 'main' título do gráfico.
b)Calcule a média e o desvio padrão dos salários para cada grau de instrução
media_1o_grau <- mean(dados$Salario[dados$Inst == "1o Grau"])
desvio_1o_grau <- sd(dados$Salario[dados$Inst == "1o Grau"])
print(media_1o_grau)
## [1] 7.836667
print(desvio_1o_grau)
## [1] 2.956464
media_2o_grau <- mean(dados$Salario[dados$Inst == "2o Grau"])
desvio_2o_grau <- sd(dados$Salario[dados$Inst == "2o Grau"])
print(media_2o_grau)
## [1] 11.52833
print(desvio_2o_grau)
## [1] 3.715144
media_superior <- mean(dados$Salario[dados$Inst == "Superior"])
desvio_superior <- sd(dados$Salario[dados$Inst == "Superior"])
print(media_superior)
## [1] 16.475
print(desvio_superior)
## [1] 4.502438
#O código repete o mesmo padrão para três níveis educacionais, 'dados$Salario[dados$Inst == "1o Grau"]' filtra apenas os salários das pessoas com 1º grau de instrução, o mesmo padrão se repete para os outros níveis, 'mean()' calcula o salário médio de cada grupo, o 'sd(')' calcula a separação dos salários em torno da média para cada grupo e o print imprimi os valores calculados.
8)Considerando as variáveis Anos e Meses:
a)Calcule a idade como Anos+Meses/12(criando uma nova “coluna” chamada
Idade)
dados$Idade <- floor(dados$Anos + (dados$Meses / 12))
#Este trecho de código tem como objetivo principal processar informações, computando a idade exata, expressa em anos completos, com base em duas colunas de dados já presentes no conjunto de 'dados,dados$Meses / 12' Converte o número de meses em fração decimal de um ano, 'dados$Anos +' Adiciona os anos completos com a fração de ano dos meses, 'floor()' Função que arredonda para o número inteiro imediatamente inferior, e por último 'dados$Idade' ele cria uma coluna chamada "Idade" no dataframe.
9)Considerando as variáveis Salario e Idade:
a)Faça
um gráfico para explorar a relação entre estas duas variáveis
plot(dados$Idade, dados$Salario,
xlab = "Idade",
ylab = "Salário",
main = "Relação entre Idade e Salário",
col = "#FF8C00",
pch = 16,
ylim = c(min(dados$Salario), max(dados$Salario)),
cex = 1.2,
xlim = c(min(dados$Idade), max(dados$Idade)))
#O código cria um gráfico de dispersão para visualizar a relação entre idade e salário, 'dados$Idade' Variável no eixo X (independente) 'dados$Salario' Variável no eixo Y (dependente), o'xlab' é o rótulo do eixo X = "Idade" 'ylab' rótulo do eixo Y = "Salário" 'main' título do gráfico, 'col = "#FF8C00"' Cor laranja escuro, 'pch = 16' é o tipo de ponto (16 = círculo preenchido), 'cex = 1.2' tamanho dos pontos (20% maior que o padrão), 'ylim' define que o eixo Y vai do mínimo ao máximo salário e 'xlim' que define que o eixo X vai da idade mínima à máxima.
b)Calcule a correlação entre estas duas variáveis.
correlacao <- cor(dados$Idade, dados$Salario)
print(correlacao)
## [1] 0.3633622
#A função 'cor(dados$Salario, dados$Idade)' avalia o coeficiente de correlação de Pearson, que mede o grau de ligação linear existente entre salário e idade. Este índice varia de -1 a 1, onde números perto de +1 indicam uma correlação positiva forte (salários mais altos com o aumento da idade), números perto de -1 mostram uma correlação negativa forte (salários mais baixos conforme a idade avança) números perto de 0 apontam para a inexistência de uma ligação linear entre as variáveis, com isso, é possível medir a força e o sentido da relação linear entre essas duas grandezas numéricas.
10)Experimente as funções mean(), var(), sd(), median(), quantile() nos dados mostrados anteriormente. Veja a documentação das funções e as opções de uso.
media <- mean(dados$Salario)
variancia <- var(dados$Salario)
desvio_padrao <- sd(dados$Salario)
mediana <- median(dados$Salario)
quantis <- quantile(dados$Salario)
print(variancia)
## [1] 21.04477
print(media)
## [1] 11.12222
print(desvio_padrao)
## [1] 4.587458
print(quantis)
## 0% 25% 50% 75% 100%
## 4.0000 7.5525 10.1650 14.0600 23.3000
print(mediana)
## [1] 10.165
#O código faz uma avaliação estatística detalhada do atributo 'Salario' no conjunto de dados 'dados', com o cálculo das medidas descritivas essenciais, 'media <- mean(dados$Salario)' calcula o valor médio dos salários, 'variancia <- var(dados$Salario)'Mede a dispersão dos dados em relação à média, 'desvio_padrao <- sd(dados$Salario)'Raiz quadrada da variância, mediana <- median(dados$Salario) valor que divide a distribuição ao meio (50% acima, 50% abaixo),quantis <- quantile(dados$Salario) calcula os principais percentis (0%, 25%, 50%, 75%, 100%), o 'print' imprime o resultado de cada função pedida, por fim a análise fornece uma compreensão robusta da distribuição salarial.
Conclusão
A avaliação dos dados mostrou tendências cruciais, que podem orientar
a gestão da empresa em diversas frentes.
Estado Civil
A maioria dos funcionários são
casados, seguida por um contingente considerável de solteiros e um grupo
menor de divorciados. Tal dado pode ser valioso na criação de políticas
de benefícios e suporte familiar.
Nível de Escolaridade
A maior parte dos
colaboradores concluiu o ensino médio, indicando que essa é a
escolaridade que prevalece na empresa. Os profissionais graduados
representam um conjunto menor, mas exibem uma variação salarial
maior.
Quantidade de Filhos
A maioria dos membros da
equipe não tem filhos ou tem apenas um.
Salários
A distribuição dos salários revela que
a maioria dos membros da equipe recebe valores próximos à média da
empresa, havendo casos de remunerações bem mais altas ou mais baixas.
Nota-se um crescimento salarial conforme aumenta o nível de
escolaridade.
Relação entre Idade e Remuneração
Ainda que
exista uma leve relação positiva entre idade e salário, não existe uma
regra fixa, pois há situações em que funcionários mais jovens recebem
mais do que colegas mais experientes. Isso pode indicar que as
competências específicas são mais valorizadas do que o tempo de
serviço.
Estado Civil vs. Escolaridade
A distribuição
entre estado civil e nível de instrução sugere que aqueles com formação
superior tendem a ser solteiros ou divorciados, enquanto aqueles que
completaram o ensino médio, em sua maioria, são casados.