{"id":22116901,"url":"https://github.com/gabrieladados/people-analytics","last_synced_at":"2026-04-17T15:01:40.651Z","repository":{"id":265683458,"uuid":"896450214","full_name":"gabrieladados/people-analytics","owner":"gabrieladados","description":"People Analytics: Insights para Retenção de Talentos","archived":false,"fork":false,"pushed_at":"2024-12-28T20:32:35.000Z","size":40,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-20T22:37:15.114Z","etag":null,"topics":["bigquery","figma","people-analytics","sql","tableau"],"latest_commit_sha":null,"homepage":"https://public.tableau.com/views/hr_attrition_17105255789630/Demographics?:language=en-US\u0026:sid=\u0026:redirect=auth\u0026:display_count=n\u0026:origin=viz_share_link","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gabrieladados.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-30T11:54:23.000Z","updated_at":"2024-12-28T20:32:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"899e7c2f-1a6f-46e6-b9fe-4232d1834346","html_url":"https://github.com/gabrieladados/people-analytics","commit_stats":null,"previous_names":["gabrieladados/people-analytics"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gabrieladados/people-analytics","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrieladados%2Fpeople-analytics","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrieladados%2Fpeople-analytics/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrieladados%2Fpeople-analytics/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrieladados%2Fpeople-analytics/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gabrieladados","download_url":"https://codeload.github.com/gabrieladados/people-analytics/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gabrieladados%2Fpeople-analytics/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31933736,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-17T12:37:54.787Z","status":"ssl_error","status_checked_at":"2026-04-17T12:37:25.095Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bigquery","figma","people-analytics","sql","tableau"],"created_at":"2024-12-01T13:19:16.382Z","updated_at":"2026-04-17T15:01:40.587Z","avatar_url":"https://github.com/gabrieladados.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# People Analytics: Insights para Retenção de Talentos\n\n\u003e Este repositório apresenta uma análise de People Analytics utilizando SQL para explorar e gerar insights a partir de uma base de dados fictícia da IBM. \n\u003e\n\n## 🤔 O que é People Analytics?  \n\nPeople Analytics é uma metodologia que coleta, organiza e analisa dados de forma estratégica, transformando informações gerenciais em insights valiosos. Esses insights ajudam as lideranças a tomar decisões mais assertivas em relação aos colaboradores da organização.\n\n## 🛠️ Tecnologias Utilizadas  \n\n- **SQL:** Para consultas e extração dos dados.\n- **Google BigQuery:** Para armazenamento e manipulação da base de dados.\n- **Tableau:** Para visualização dos insights.\n\n\n## 🗂️ Base de Dados  \n\nA base utilizada é o conjunto de dados **IBM HR Analytics Attrition Dataset**, disponível no Kaggle. Você pode acessá-la através deste [link](https://www.kaggle.com/datasets/pavansubhasht/ibm-hr-analytics-attrition-dataset?resource=download).\n\n### 🗃️ Estrutura dos Dados\n\nA base original possui 35 colunas, mas utilizamos 15 colunas relevantes para a análise. Confira o dicionário dos dados:\n\n| **Coluna**              | **Descrição**                                                                                  |\n|--------------------------|-----------------------------------------------------------------------------------------------|\n| `Age`                   | Idade dos colaboradores.                                                                      |\n| `Attrition`             | Indica se o colaborador está ativo ou não na empresa.                                         |\n| `BusinessTravel`        | Frequência de viagens a trabalho.                                                             |\n| `Department`            | Departamento onde o colaborador trabalha.                                                    |\n| `DistanceFromHome`      | Distância da casa do colaborador até o trabalho.                                              |\n| `Education`             | Grau de escolaridade (1: Below College, 2: College, 3: Bachelor, 4: Master, 5: Doctor).       |\n| `EmployeeNumber`        | Identificador único do colaborador.                                                           |\n| `EnvironmentSatisfaction` | Satisfação com o ambiente de trabalho (1: Baixa, 4: Muito Alta).                            |\n| `Gender`                | Gênero do colaborador.                                                                        |\n| `JobInvolvement`        | Envolvimento com o trabalho (1: Baixo, 4: Muito Alto).                                        |\n| `JobSatisfaction`       | Satisfação com o trabalho (1: Baixa, 4: Muito Alta).                                          |\n| `MaritalStatus`         | Estado civil do colaborador.                                                                  |\n| `MonthlyIncome`         | Renda mensal do colaborador.                                                                  |\n| `RelationshipSatisfaction` | Satisfação com os relacionamentos no trabalho (1: Baixa, 4: Muito Alta).                   |\n| `YearsAtCompany`        | Tempo de empresa em anos.                                                                     |\n\n## 📥 Importação da Base para o BigQuery  \n\n1. Faça o download da base de dados no Kaggle.\n2. Acesse o BigQuery e crie um novo projeto.\n3. Adicione o arquivo baixado ao projeto como uma nova tabela:\n   - Nome do conjunto de dados: `employee`.\n   - Nome da tabela: `employee_attrition`.\n\nA tabela contém **1.470 linhas** e **15 colunas**.\n\n---\n## 🔍 Análise por Idade\n\n### Pergunta:\nSerá que existe alguma faixa etária mais propensa a sair da empresa?\n\nAbaixo, vamos analisar a idade média, mínima e máxima dos colaboradores da base de dados da IBM.\n\n### Consulta SQL: Idade Geral\n```sql\nSELECT\n  ROUND(AVG(Age),2) AS IdadeMedia,\n  MIN(Age) AS IdadeMin,\n  MAX(Age) AS IdadeMax\nFROM projeto-ibm-hr.employee.employee_attrition\n```\n![sql 1](https://github.com/user-attachments/assets/43c45303-c17e-4d40-979a-7d96aae21d0b)\n\nVamos verificar se existe uma diferença na idade média dos colaboradores que saíram em comparação aos colaboradores que continuaram ativos na empresa.\n```sql\nSELECT\n  ROUND(AVG(Age),2) AS IdadeMedia,\n  MIN(Age) AS IdadeMin,\n  MAX(Age) AS IdadeMax\nFROM projeto-ibm-hr.employee.employee_attrition\nWHERE Attrition = false\n```\n![sql 2](https://github.com/user-attachments/assets/7f558176-1430-4786-b64c-d37ab06cb653)\n\n```sql\nSELECT\n  ROUND(AVG(Age),2) AS IdadeMedia,\n  MIN(Age) AS IdadeMin,\n  MAX(Age) AS IdadeMax\nFROM projeto-ibm-hr.employee.employee_attrition\nWHERE Attrition = true\n```\n![sql3](https://github.com/user-attachments/assets/893a6704-e2d4-4cd9-b97b-73cd594aa70f)\n\nPercebemos que em média os colaboradores que saíram da empresa eram 4 anos mais novos que os colaboradores que continuaram ativos. Para conseguirmos aprofundar na análise, vamos criar faixas etárias.\n```sql\nSELECT\n  CASE \n    WHEN Age \u003e= 18 AND Age\u003c25 THEN \"18-24\"\n    WHEN Age \u003e=25 AND Age \u003c35 THEN \"25-34\"\n    WHEN Age \u003e=35 AND Age \u003c 45 THEN \"35-44\"\n    WHEN Age \u003e=45  THEN \"45-60\"\n  END AS FaixaEtaria,\nFROM projeto-ibm-hr.employee.employee_attrition\n```\n\nAgora, vamos trazer algumas informações por faixa etária como: o número total de colaboradores, número de desligados, percentual do total de desligados e a taxa de atrito. Na taxa de atrito consideramos a quantidade de pessoas desligadas naquela faixa etária e dividimos pela quantidade total de colaboradores na mesma faixa etária. Assim, conseguimos entender a representatividade dessas saídas para aquele grupo em questão.\n```sql\nSELECT FaixaEtaria,\n  COUNT(EmployeeNumber) AS TotalFunc,\n  SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END) AS DesligadosFunc,\n  CONCAT(ROUND((SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END)*100)/(SELECT COUNT(EmployeeNumber) FROM projeto-ibm-hr.employee.employee_attrition WHERE Attrition = true),2),\"%\") AS PorcentagemTotalDesligados,\n  CONCAT(ROUND((SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END) * 100)/ COUNT(EmployeeNumber), 2), \"%\") AS TaxaAtrito\nFROM\n  (SELECT\n    CASE \n      WHEN Age \u003e= 18 AND Age\u003c25 THEN \"18-24\"\n      WHEN Age \u003e=25 AND Age \u003c35 THEN \"25-34\"\n      WHEN Age \u003e=35 AND Age \u003c 45 THEN \"35-44\"\n      WHEN Age \u003e=45  THEN \"45-60\"\n    END AS FaixaEtaria,\n    Age,\n    Attrition,\n    EmployeeNumber\n  FROM projeto-ibm-hr.employee.employee_attrition) AS ClassificacaoEtaria\nGROUP BY FaixaEtaria\nORDER BY FaixaEtaria\n```\n![sql4](https://github.com/user-attachments/assets/c2b38993-e8cb-49b9-9cce-ab85c9ff9edd)\n\nNota-se que a faixa etária de colaboradores entre 18 e 24 anos é a que apresenta maior taxa de atrito (39,18%), seguido pelos colaboradores entre 25 e 34 anos (20,22%).\n\n---\n## 🔍 Análise por Gênero\n\n### Pergunta: \nQual é o gênero que apresenta maior taxa de atrito?\n\n```sql\nSELECT Gender,\n  COUNT(EmployeeNumber) AS TotalFunc,\n  SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END) AS DesligadosFunc,\n  CONCAT(ROUND((SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END)*100)/(SELECT COUNT(EmployeeNumber) FROM projeto-ibm-hr.employee.employee_attrition WHERE Attrition = true),2),\"%\") AS PorcentagemTotal,\n  CONCAT(ROUND((SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END)*100)/COUNT(EmployeeNumber),2),\"%\") AS TaxaAtrito\nFROM projeto-ibm-hr.employee.employee_attrition\nGROUP BY Gender\n```\n![sql5](https://github.com/user-attachments/assets/d091f1e8-0e2f-400d-9724-cbabf8b61bd1)\n\nPercebe-se que a taxa de atrito do gênero masculino (17,01%) é relativamente maior que do gênero feminino (14,8%).\n\n---\n## 🔍 Análise pelo Grau de Escolaridade\n\n### Pergunta: \nExiste algum grau de escolaridade mais propenso a sair da empresa?\n\nComo o campo Education retorna resultados numéricos de 1 a 4, vamos classificar de acordo com o dicionário da base de dados.\n```sql\nSELECT \n  CASE \n    WHEN Education = 1 THEN 'Below College'\n    WHEN Education = 2 THEN 'College'\n    WHEN Education = 3 THEN 'Bachelor'\n    WHEN Education = 4 THEN 'Master'\n    WHEN Education = 5 THEN  'Doctor'\n  END AS GrauEscolaridade\nFROM projeto-ibm-hr.employee.employee_attrition\n```\nFeito isso, agora vamos verificar o número total de colaboradores, número de inativos, o percentual de inativos e a taxa de atrito por grau de escolaridade.\n\n```sql\nSELECT \n  GrauEscolaridade,\n  COUNT(EmployeeNumber) AS TotalFunc,\n  SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END) AS DesligadosFunc,\n  CONCAT(ROUND((SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END)*100)/(SELECT COUNT(EmployeeNumber) FROM projeto-ibm-hr.employee.employee_attrition WHERE Attrition = true),2),\"%\") AS PorcentagemTotal,\n  CONCAT(ROUND((SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END)*100)/COUNT(EmployeeNumber),2),\"%\") AS TaxaAtrito\nFROM\n(SELECT \n  CASE \n    WHEN Education = 1 THEN 'Below College'\n    WHEN Education = 2 THEN 'College'\n    WHEN Education = 3 THEN 'Bachelor'\n    WHEN Education = 4 THEN 'Master'\n    WHEN Education = 5 THEN  'Doctor'\n  END AS GrauEscolaridade,\n  Attrition,\n  EmployeeNumber\nFROM projeto-ibm-hr.employee.employee_attrition)\nGROUP BY GrauEscolaridade\n\n```\n\n![sql6](https://github.com/user-attachments/assets/102e1eda-8971-4c59-a587-61bfa048209c)\n\nÉ notável que os colaboradores que apresentam um grau de escolaridade mais baixo são os que possuem as maiores taxas de atrito. Enquanto os que possuem mestrado (14,57%) ou doutorado (10,42%), são os que possuem as menores taxas de atrito.\n\n---\n## 🔍 Análise por Estado Civil\n\n### Pergunta: \nQual é o estado civil que apresenta maior taxa de atrito?\n```sql\nSELECT \n  MaritalStatus,\n  COUNT(EmployeeNumber) AS TotalFunc,\n  SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END) AS DesligadosFunc,\n  CONCAT(ROUND((SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END)*100)/ (SELECT COUNT(EmployeeNumber)FROM projeto-ibm-hr.employee.employee_attrition WHERE Attrition = true),2),\"%\") AS PorcentagemTotal,\n  CONCAT(ROUND((SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END)*100)/COUNT(EmployeeNumber),2),\"%\") AS TaxaAtrito\nFROM projeto-ibm-hr.employee.employee_attrition\nGROUP BY MaritalStatus\n```\n![sql7](https://github.com/user-attachments/assets/a9e4c0da-39c0-4c2c-8de1-7ee53192ef0a)\n\nOs colaboradores solteiros são os que apresentam o maior número absoluto de desligados (120), além da maior taxa de atrito (25,53%).\n\n\n---\n## 🔍 Análise por Tempo de Empresa\n\n### Pergunta: \nOs colaboradores com menor tempo de empresa são os que apresentam a maior taxa de atrito?\n\nAbaixo, vamos analisar a média, o mínimo e o máximo de tempo que os colaboradores da IBM ficam na empresa.\n```sql\nSELECT \n  ROUND(AVG(YearsAtCompany),2) AS MediaTempoEmpresa,\n  MIN(YearsAtCompany) AS MinTempoEmpresa,\n  MAX(YearsAtCompany) AS MaxTempoEmpresa\nFROM projeto-ibm-hr.employee.employee_attrition\n```\n![sql8](https://github.com/user-attachments/assets/6038a02f-fdef-4b31-94b2-49be39c083d9)\n\nPara facilitar a análise, criaremos classificações do tempo de empresa.\n\n```sql\nSELECT\n  CASE \n   WHEN YearsAtCompany \u003c 3 THEN \"0-2\"\n   WHEN YearsAtCompany \u003e=3 AND YearsAtCompany \u003c 6 THEN \"3-5\"\n   WHEN YearsAtCompany \u003e=6 AND YearsAtCompany \u003c 11 THEN \"5-10\"\n   WHEN YearsAtCompany \u003e=11 AND YearsAtCompany \u003c 21 THEN \"11-20\"\n   WHEN YearsAtCompany \u003e=21 AND YearsAtCompany \u003c 31 THEN \"21-30\"\n   WHEN YearsAtCompany \u003e=31 AND YearsAtCompany \u003c 41 THEN \"31-40\"\n  END AS AnosEmpresa\nFROM projeto-ibm-hr.employee.employee_attrition\n```\nFeito isso, agora é hora de analisarmos o número total de colaboradores, o número de inativos, o percentual de inativos e a taxa de atrito por tempo de empresa.\n\n```sql\nSELECT \n  AnosEmpresa,\n  COUNT(EmployeeNumber) AS TotalFunc,\n  SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END) AS DesligadosFun,\n  CONCAT(ROUND((SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END)*100)/(SELECT COUNT (EmployeeNumber) FROM projeto-ibm-hr.employee.employee_attrition WHERE Attrition = true),2),\"%\") AS PorcentagemTotal,\n  CONCAT(ROUND((SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END)*100)/ COUNT(EmployeeNumber),2),\"%\") AS TaxaAtrito\nFROM\n(SELECT\n  CASE \n   WHEN YearsAtCompany \u003c 3 THEN \"0-2\"\n   WHEN YearsAtCompany \u003e=3 AND YearsAtCompany \u003c 6 THEN \"3-5\"\n   WHEN YearsAtCompany \u003e=6 AND YearsAtCompany \u003c 11 THEN \"5-10\"\n   WHEN YearsAtCompany \u003e=11 AND YearsAtCompany \u003c 21 THEN \"11-20\"\n   WHEN YearsAtCompany \u003e=21 AND YearsAtCompany \u003c 31 THEN \"21-30\"\n   WHEN YearsAtCompany \u003e=31 AND YearsAtCompany \u003c 41 THEN \"31-40\"\n  END AS AnosEmpresa,\n  EmployeeNumber,\n  Attrition\nFROM projeto-ibm-hr.employee.employee_attrition)\nGROUP BY AnosEmpresa\n```\n![sql9](https://github.com/user-attachments/assets/c7e8649c-e231-4bc5-98c7-01310dba8e93)\n\nNota-se que a maior taxa de atrito está nos colaboradores que possuem entre 0 e 2 anos de empresa (29,82%). Essa taxa vai se reduzindo ao longo do tempo de empresa, até apresentar um novo pico com os colaboradores que possuem de 31 a 40 anos de empresa (25,00%).\n\n---\n## 🔍 Análise Salarial\n\n### Pergunta: \nOs colaboradores que saíram da empresa apresentavam menores salários comparado aos que estão ativos?\n\nInicialmente, vamos analisar a média, o mínimo e o máximo de salário de todos os colaboradores.\n\n```sql\nSELECT \n  ROUND(AVG(MonthlyIncome),2) AS SalarioMedio,\n  MIN(MonthlyIncome) AS SalarioMin,\n  MAX(MonthlyIncome) AS SalarioMax\nFROM projeto-ibm-hr.employee.employee_attrition\n```\n![sql10](https://github.com/user-attachments/assets/f450cf98-760b-45c4-9c9b-45fac0aac6aa)\n\nAgora iremos comparar essas mesmas medidas entre aqueles que foram desligados e aqueles permanecem ativos na empresa.\n\n```sql\nSELECT \n  ROUND(AVG(MonthlyIncome),2) AS SalarioMedio,\n  MIN(MonthlyIncome) AS SalarioMin,\n  MAX(MonthlyIncome) AS SalarioMax\nFROM projeto-ibm-hr.employee.employee_attrition\nWHERE Attrition = false\n```\n![sql11](https://github.com/user-attachments/assets/8e11020c-8f97-4195-aed4-99b3bfcb0716)\n\n```sql\nSELECT \n  ROUND(AVG(MonthlyIncome),2) AS SalarioMedio,\n  MIN(MonthlyIncome) AS SalarioMin,\n  MAX(MonthlyIncome) AS SalarioMax\nFROM projeto-ibm-hr.employee.employee_attrition\nWHERE Attrition = true\n```\n![sql12](https://github.com/user-attachments/assets/8ed9d4b9-7f3c-4038-84e3-5e8fec0f1414)\n\nNota-se que os colaboradores que saíram da empresa recebiam aproximadamente 29,94% a menos que os demais colaboradores.\n\n---\n## 🔍 Análise por Departamento\n\n### Pergunta: \nQual é o departamento com a maior taxa de atrito?\n```sql\nSELECT \n  Department,\n  COUNT(EmployeeNumber) AS TotalFunc,\n  SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END) AS TotalDesligados,\n  CONCAT(ROUND((SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END)*100)/ (SELECT COUNT(EmployeeNumber) FROM projeto-ibm-hr.employee.employee_attrition WHERE Attrition = true),2), \"%\") AS PorcentagemTotalDesligados,\n  CONCAT(ROUND((SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END)*100)/COUNT(EmployeeNumber),2),\"%\") AS TaxaAtrito\nFROM projeto-ibm-hr.employee.employee_attrition\nGROUP BY Department\n```\n![sql14](https://github.com/user-attachments/assets/83355e50-2f8e-4a4e-aadc-1ee769bce0e5)\n\nComo podemos notar, o departamento de vendas é o que apresenta a maior taxa de atrito (20,63%), seguido por recursos humanos (19,05%). Vamos cruzar esses dados com o de salário para conseguirmos mais insights.\n\nAbaixo segue a média, o valor mínimo e máximo do salário dos colaboradores que permaneceram na empresa em comparação aos que saíram.\n\n**Departamento x Salário**\n```sql\nSELECT \n  Department,\n  ROUND(AVG(MonthlyIncome),2) AS MediaSal,\n  MIN(MonthlyIncome) AS MinSal,\n  MAX(MonthlyIncome) AS MaxSal\nFROM projeto-ibm-hr.employee.employee_attrition\nWHERE Attrition = false\nGROUP BY(Department)\n```\n![sql15](https://github.com/user-attachments/assets/aad6d35c-0b36-49bf-a0d5-d015659134f5)\n\n```sql\nSELECT \n  Department,\n  ROUND(AVG(MonthlyIncome),2) AS MediaSal,\n  MIN(MonthlyIncome) AS MinSal,\n  MAX(MonthlyIncome) AS MaxSal\nFROM projeto-ibm-hr.employee.employee_attrition\nWHERE Attrition = true\nGROUP BY(Department)\n```\n![sql16](https://github.com/user-attachments/assets/ae4a883c-add7-4bf1-bc64-1bdc77da91c4)\n\nEm uma análise geral, percebe-se a média salarial dos colaboradores que permaneceram na empresa é maior quando comparado aqueles que saíram. Isso pode ser percebido em todos os 3 departamentos.\n\nVamos analisar melhor essa diferença entre as médias salariais de cada departamento:\n\n- **Research \u0026 Development**: 7232,24 (média dos colaboradores que ficaram) — 4108,08 (média dos colaboradores que saíram) = 3124,16 → (3124,16/7232,24)*100 = 43,19%\n\n- **Sales**: 6630,33 (média dos colaboradores que ficaram) — 5908,46 (média dos colaboradores que saíram) = 721,87 → (721,87/6630,33)*100 = 10,88%\n\n- **Human Resources**: 7345,98 (média dos colaboradores que ficaram) — 3715,75 (média dos colaboradores que saíram) = 3630,23 → (3630,23/7345,98)*100 = 49,41%\n\nPercebe-se que os colaboradores de recursos humanos que saíram da empresa recebiam em média 49,41% a menos que os demais colaboradores do mesmo departamento. Isso explica a alta taxa de atrito de 19,05%.\n\nJá a área de vendas, que apresentou a maior taxa de atrito (20,63%), nota-se que os colaboradores que saíram recebiam em média 10,88% a menos que os demais, o que comparado com os outros dois setores não é um número tão elevado. Vale destacar que para uma taxa de atrito ser alta podemos ter diversas variáveis envolvidas. Vamos analisar agora por uma ótica de clima e cultura para conseguirmos mais informações.\n\n**Departamento x Satisfação com o Trabalho**\n```sql\nSELECT \n  Department,\n  ROUND(AVG(EnvironmentSatisfaction),2) AS SatisfacaoAmbiente,\n  ROUND(AVG(JobInvolvement),2) AS EnvolvimentoTrabalho,\n  ROUND(AVG(JobSatisfaction),2) AS SatisfacaoTrabalho,\n  ROUND(AVG(RelationshipSatisfaction),2) AS SatisfacaoRelacionamentos\nFROM projeto-ibm-hr.employee.employee_attrition\nWHERE Attrition = false\nGROUP BY(Department)\n```\n![sql17](https://github.com/user-attachments/assets/348fce2f-5943-422a-9c39-c25eadb8837e)\n\n```sql\nSELECT \n  Department,\n  ROUND(AVG(EnvironmentSatisfaction),2) AS SatisfacaoAmbiente,\n  ROUND(AVG(JobInvolvement),2) AS EnvolvimentoTrabalho,\n  ROUND(AVG(JobSatisfaction),2) AS SatisfacaoTrabalho,\n  ROUND(AVG(RelationshipSatisfaction),2) AS SatisfacaoRelacionamentos\nFROM projeto-ibm-hr.employee.employee_attrition\nWHERE Attrition = true\nGROUP BY(Department)\n```\n![sql18](https://github.com/user-attachments/assets/d59c9230-8662-40b1-9e0f-be2702359a5d)\n\nAnalisando a satisfação do ambiente e com o trabalho, o departamento de recursos humanos é o que apresenta as menores médias. Já em relação ao envolvimento com o trabalho o departamento de vendas possui a menor média (2,47) e na satisfação com os relacionamentos, a menor média é do departamento de P\u0026D (2,52).\n\nPortanto, percebemos que a alta taxa de atrito do departamento de recursos humanos (19,05%) pode ser explicada pela diferença salarial de 49,41% a menos em relação aos demais colaboradores do mesmo setor, além da baixa satisfação com o ambiente e o trabalho.\n\nJá em relação ao departamento de vendas (com taxa de atrito de 20,63%) não foi possível tirar informações conclusivas com os dados de salário e engajamento disponíveis. O ideal seria analisar as pesquisas de desligamentos desses colaboradores, além de aplicar pesquisas de pulsos direcionadas para esse público, a fim de identificar as causas e criar planos de ação.\n\n---\n## 🔍 Análise da Distância de casa para o trabalho\n\n### Pergunta: \nA distância em relação ao trabalho impacta na decisão dos colaboradores de sair da empresa?\n\nPrimeiramente, vamos analisar a distância média, máxima e mínimia.\n```sql\nSELECT \n  ROUND(AVG(DistanceFromHome),2) AS DistanciaMedia,\n  MIN(DistanceFromHome) AS DistanciaMin,\n  MAX(DistanceFromHome) AS DistanciaMax\nFROM projeto-ibm-hr.employee.employee_attrition\n```\n![sql19](https://github.com/user-attachments/assets/4a4cc0da-f783-473f-8b79-cb2d66e7c5f7)\nPara facilitar a análise, criaremos uma classificação das distâncias em grupos:\n\n```sql\nSELECT \n CASE\n   WHEN DistanceFromHome \u003e 0 AND DistanceFromHome \u003c6 THEN \"01-05\"\n   WHEN DistanceFromHome \u003e= 6 AND DistanceFromHome \u003c 11 THEN \"06-10\"\n   WHEN DistanceFromHome \u003e= 11 AND DistanceFromHome \u003c 21 THEN \"11-20\"\n   WHEN DistanceFromHome \u003e=  21 AND DistanceFromHome \u003c 30 THEN \"21-29\"\n END AS ClassificacaoDistancia\nFROM projeto-ibm-hr.employee.employee_attrition\nGROUP BY ClassificacaoDistancia\nORDER BY ClassificacaoDistancia\n```\nFeito isso, vamos analisar o número total de colaboradores, número de colaboradores inativos, o percentual dos inativos e a taxa de atrito por grupo de distância de casa até o trabalho.\n\n```sql\nSELECT \n  ClassificacaoDistancia,\n  COUNT(EmployeeNumber) AS TotalFunc,\n  SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END) AS DesligadosFunc,\n  CONCAT(ROUND((SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END)*100)/ (SELECT COUNT (EmployeeNumber) FROM projeto-ibm-hr.employee.employee_attrition WHERE Attrition = true), 2), \"%\") AS PorcentagemTotal,\n  CONCAT(ROUND((SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END)*100)/ COUNT(EmployeeNumber), 2), \"%\") AS TaxaAtrito\n\nFROM\n(SELECT \n  CASE\n    WHEN DistanceFromHome \u003e 0 AND DistanceFromHome \u003c6 THEN \"01-5\"\n    WHEN DistanceFromHome \u003e= 6 AND DistanceFromHome \u003c 11 THEN \"06-10\"\n    WHEN DistanceFromHome \u003e= 11 AND DistanceFromHome \u003c 21 THEN \"11-20\"\n    WHEN DistanceFromHome \u003e=  21 AND DistanceFromHome \u003c 30 THEN \"21-29\"\n  END AS ClassificacaoDistancia,\n  EmployeeNumber,\n  Attrition\nFROM projeto-ibm-hr.employee.employee_attrition)\nGROUP BY ClassificacaoDistancia\nORDER BY ClassificacaoDistancia\n\n```\n![sql20](https://github.com/user-attachments/assets/2c927911-27d1-4db9-bc6a-05d36d2f8290)\n\nObserva-se que quanto maior a distância que o colaborador tem da sua casa até o trabalho, maior se torna a taxa de atrito. Destaque-se os colaboradores que moram de 21 a 29 km de distância com taxa de 22,06%.\n\nAgora vamos comparar esses dados com a satisfação. Será que os colaboradores que moram mais distante do trabalho estão mais insatisfeitos?\n\n**Distância X Satisfação**\n\n```sql\nSELECT  \n  ClassificacaoDistancia,\n  ROUND(AVG(EnvironmentSatisfaction),2) AS SatisfacaoAmbiente,\n  ROUND(AVG(JobInvolvement),2) AS EnvolvimentoTrabalho,\n  ROUND(AVG(JobSatisfaction),2) AS SatisfacaoTrabalho,\n  ROUND(AVG(RelationshipSatisfaction),2) AS SatisfacaoRelacionamentos\nFROM\n(SELECT \n  CASE\n    WHEN DistanceFromHome \u003e 0 AND DistanceFromHome \u003c6 THEN \"01-5\"\n    WHEN DistanceFromHome \u003e= 6 AND DistanceFromHome \u003c 11 THEN \"06-10\"\n    WHEN DistanceFromHome \u003e= 11 AND DistanceFromHome \u003c 21 THEN \"11-20\"\n    WHEN DistanceFromHome \u003e=  21 AND DistanceFromHome \u003c 30 THEN \"21-29\"\n  END AS ClassificacaoDistancia,\n  EmployeeNumber,\n  Attrition, \n  DistanceFromHome,\n  EnvironmentSatisfaction,\n  JobInvolvement,\n  JobSatisfaction,\n  RelationshipSatisfaction\nFROM projeto-ibm-hr.employee.employee_attrition)\nGROUP BY ClassificacaoDistancia\nORDER BY ClassificacaoDistancia\n```\n![sql21](https://github.com/user-attachments/assets/223da330-0f8b-4270-a252-0f7a648718b7)\n\nPercebemos que a média de satisfação com o ambiente e o envolvimento com o trabalho daqueles que moram entre 21 a 29 km de distância é menor que comparado aos demais grupos.\n\n---\n## 🔍 Análise pela frequência de Viagens a Trabalho\n\n### Pergunta: \nOs colaboradores que realizam muitas viagens a trabalho são os que apresentam maior taxa de atrito?\n\nAbaixo segue a análise do total de colaboradores, número de inativos, percentual de inativos e a taxa de atrito por frequência de viagens a trabalho.\n\n```sql\nSELECT \n  BusinessTravel,\n  COUNT(EmployeeNumber) AS TotalFunc,\n  SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END)AS DesligadosFunc,\n  CONCAT(ROUND((SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END)*100)/(SELECT COUNT(EmployeeNumber) FROM projeto-ibm-hr.   employee.employee_attrition WHERE Attrition = true),2), \"%\") AS PorcentagemTotalDesligados,\n  CONCAT(ROUND((SUM(CASE WHEN Attrition = true THEN 1 ELSE 0 END)*100)/COUNT(EmployeeNumber),2), \"%\") AS TaxaAtrito\nFROM projeto-ibm-hr.employee.employee_attrition\nGROUP BY BusinessTravel\n```\n![sql22](https://github.com/user-attachments/assets/18db8997-8200-490c-b76e-ff44d5ab40a4)\n\nPodemos perceber que quanto maior a frequência de viagens a trabalho, maior a taxa de atrito dos funcionários. Os que viajam frequentemente possuem uma taxa de 24,91%, os que viajam raramente apresentam 14,91% e os que não viajam apenas 8,00%.\n\n\n\n\n\n\n\n\n\n\n\n\n\n## 💡 Principais Insights  \n\nA análise revelou fatores que influenciam na capacidade de retenção dos colaboradores na empresa:\n\n- **Idade:** Jovens (18-34 anos) têm maior taxa de atrito, enquanto os mais experientes têm taxas mais baixas.\n- **Gênero:** Homens possuem uma taxa de atrito maior (17,01%) que mulheres (14,08%).\n- **Escolaridade:** Colaboradores com maior escolaridade têm menores taxas de atrito.\n- **Estado Civil:** Solteiros têm a maior taxa de atrito (25,53%).\n- **Tempo de Empresa:** Colaboradores com até 2 anos de empresa apresentam a maior taxa de atrito (29,82%).\n- **Remuneração:** Colaboradores que saíram recebiam 29,94% menos que a média dos demais.\n- **Departamento:** Profissionais do departamento de Recursos Humanos recebiam em média 49,41% a menos que os demais do mesmo setor, e esse departamento apresenta a menor média de satisfação com o trabalho e o ambiente.\n- **Distância Casa-Trabalho:** Maior distância está associada a maior taxa de atrito.\n- **Viagens a Trabalho:** Colaboradores que viajam frequentemente têm maior taxa de atrito (24,91%).\n\n---\n\n## 🎯 Recomendações Estratégicas  \n\nCom base nos insights, propomos as seguintes ações:\n\n1. **Programas de Retenção para Colaboradores Jovens**: Criar programas com foco de desenvolvimento profissional e oportunidades de crescimento para os colaboradores mais jovens, visando aumentar o engajamento e a retenção.\n\n2. **Incentivos para Funcionários Experientes**: Reconhecer e valorizar a experiência dos colaboradores mais experientes por meio de programas de reconhecimento, eventos anuais para colaboradores com muitos anos de empresa e criação de benefícios adicionais.\n\n3. **Incentivos Educacionais**: Oferecer incentivos para educação continuada, como bolsas de estudo ou programas de treinamento interno, para reduzir a taxa de atrito entre os colaboradores sem graduação.\n\n4. **Programas de Integração para Novos Colaboradores**: Desenvolver programas de integração robustos para novos colaboradores, especialmente para aqueles com menos de 2 anos de empresa, para aumentar o envolvimento e a conexão com a empresa desde o início.\n\n5. **Revisão de Remuneração**: Realizar uma revisão salarial para garantir que os salários dos colaboradores estejam alinhados com o mercado e com as responsabilidades do cargo.\n\n6. **Melhoria do Ambiente de Trabalho**: Realizar pesquisas periódicas de pulso e engajamento para identificar os motivos de baixa insatisfação com o trabalho e ambiente, visando a implantação de contramedidas.\n\n7. **Flexibilidade no Modelo de Trabalho**: Considerar políticas de trabalho remoto ou flexível para colaboradores que moram mais longe do escritório, visando reduzir o impacto da distância na taxa de atrito.\n\n8. **Redução das Viagens a Trabalho**: Avaliar a necessidade e frequência das viagens a trabalho e buscar maneiras de reduzir a carga de viagens, quando possível, para minimizar o impacto na taxa de atrito dos colaboradores.\n\n\n---\n\n## 📈 Dashboard no Tableau \n\n- **KPIs monitorados e Análises Realizadas**:\n    - Total de Colaboradores (ativos e desligados).\n    - Total de Colaboradores ativos\n    - Total de Colaboradores Desligados\n    - Taxa de Desligamento.\n    - Taxa de Desligamento por idade, gênero, escolaridade e estado civil.\n    - Taxa de Desligamento por anos de empresa, departamento, distância e frequência de viagens a trabalho.\n    - Análise Salarial por departamento dos colaboradores ativos e desligados. \n    \u003cbr\u003e  \n      \n  \u003e 👉 **Acesse o dashboard no Tableau Public aqui:**   [Dashboard no Tableau](https://public.tableau.com/views/hr_attrition_17105255789630/Demographics?:language=en-US\u0026:sid=\u0026:redirect=auth\u0026:display_count=n\u0026:origin=viz_share_link)\n\n\n![Demographics](https://github.com/user-attachments/assets/130d93bf-9a10-48a1-a891-ef19d1eaea4c)\n\n![image](https://github.com/user-attachments/assets/4175546d-b6a7-4148-a4d4-7fe9ead68be1)\n\n\n---\n\n\n## Contribuições\n\nMuito obrigada por acompanhar meu projeto até aqui! 🎉\n\nContribuições são **muito bem-vindas**. Se você tem sugestões ou melhorias, fique à vontade para abrir uma **issue** ou enviar um **pull request**.\n\nGostou do projeto? Não esqueça de dar uma ⭐️! \n\n\n**Meus Contatos:**\n\n💻 [LinkedIn](https://www.linkedin.com/in/gabrielasantanamorais/)  \n📩 [E-mail](mailto:gabrielasmorais01@gmail.com)\n\n**Até a próxima!** 🚀\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrieladados%2Fpeople-analytics","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgabrieladados%2Fpeople-analytics","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrieladados%2Fpeople-analytics/lists"}