Uma abordagem de classificação para prever a sobrevivência de um acidente aéreo

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


[Esteartigofoipublicadopelaprimeiravezem[Thisarticlewasfirstpublishedon Dados de histórias falam, e gentilmente contribuiu para os R-blogueiros]. (Você pode relatar um problema sobre o conteúdo desta página aqui)


Deseja compartilhar seu conteúdo com R-blogueiros? clique aqui se você tiver um blog ou aqui se não tiver.

Introdução

Historicamente, houve vários casos de acidentes de avião. Este estudo é uma tentativa de explorar as possíveis causas de tais acidentes aéreos e determinar se as viagens aéreas são uma opção segura.

Objetivo

O objetivo deste estudo é duplo, a saber;

uma. Para realizar uma Análise Exploratória de Dados (EDA) para determinar a causa / razão comum de um acidente de avião, países com um número máximo / mínimo de acidentes de avião, mortalidade versus sobrevida e qualquer outra tendência interessante.

b. Desenvolver um Modelo Preditivo (MP) para determinar o seguinte;

  1. Viajar de avião é uma opção segura?
  2. Em particular, analise os dados históricos para determinar a precisão da sobrevivência de um acidente aéreo.

Análise de dados

Uma análise sistemática dos dados foi realizada para responder aos objetivos.

A. Fonte de dados

  • Para esta análise, usei duas fontes de dados. A fonte de dados primária era Kaggle e a fonte secundária era www.planecrashinfo.com
  • O conjunto de dados hospedado no Kaggle foi de 1908 a 2009.
  • A fonte de dados secundária foi necessária porque eu precisava de dados de acidentes de avião de 2010 a 2020. Isso ajudaria na EDA e na PM.
  • Portanto, para essa análise, escrevi um raspador personalizado para extrair os dados de acidentes aéreos de www.planecrashinfo.com

B. Análise Exploratória de Dados

Ambos os conjuntos de dados estavam sujos. Várias tarefas de gerenciamento de dados foram realizadas para limpar os dados. De acordo com um pesquisador Wickham, H. (2014), dados organizados são um conjunto de dados em que cada variável é uma coluna e cada observação (ou caso) é uma linha.

1. Decisões de gerenciamento de dados
  • O conjunto de dados Kaggle consistiu em 5.268 observações em 13 variáveis. Tinha 10.198 valores ausentes
  • O conjunto de dados externos consistiu em 237 observações em 13 variáveis.
  • Os valores ausentes no conjunto de dados externo foram codificados como “?”. Estes foram recodificados para NA. Havia 222 valores ausentes.
  • O conjunto de dados Kaggle e os dados externos foram mesclados em um quadro de dados composto, a seguir denominado df.
  • o df consistiu em 5.505 observações em 13 variáveis.
  • O intervalo de anos de queda de aeronaves foi de 1908 a 2020.
ii. Engenharia de recursos

O resumo da variável continha texto em formato livre relacionado aos detalhes da queda de avião. Continha informações importantes. Mas precisava de limpeza. Então eu criei algumas variáveis ​​derivadas como crash_reason, crash_date, crash_month, crash_year, crash_hour, crash_minute, crash_second, crash_area, crash_country, crash_route_start, crash_route_mid, crash_route_end, crash_operator_type, survived, alive_dead_ratio.

C. Visualização de dados

Como diz o ditado comum, “uma imagem vale mais que mil palavras”. Depois que os dados foram limpos e compostos em um formato organizado, eles estavam prontos para visualizações. A visualização de dados ajuda a determinar o possível relacionamento entre variáveis. Nas Fig. 1 e Fig. 2, mostro os motivos mais comuns de acidentes aéreos classificados por descrições e palavras. Em particular, o acidente aéreo durante as decolagens é máximo, veja a Fig-1.

Eu. Visualizar os motivos comuns atribuídos ao acidente aéreo

plot1

Fig-1: Descrições comuns de acidentes aéreos

ii. Visualização das palavras comuns usadas para acidente aéreo

plot2

Fig-2: Palavras comuns sobre acidentes aéreos

iii. Visualização dos operadores de vôo acidentados

A maioria dos operadores de vôo são militares dos EUA, AirForce, Aeroflot, Air France e Luftansa, como visto na Fig-3.

plot3

Fig-3: Operadores de vôo em caso de acidente aéreo

O pico de sobreviventes de acidentes aéreos ocorreu no ano de 2000, veja a Fig-4. Provavelmente, o motivo pode ser por causa de aeronaves melhores em comparação com as do passado.

iv. Visualizando os sobreviventes de um acidente aéreo

plot4

Fig-4: Sobreviventes de acidentes aéreos por ano

Verificou-se que houve mais acidentes aéreos civis em comparação com acidentes militares. Além disso, são observadas 3.198 mortes em acidentes aéreos desde 1908, incluindo acidentes civis e militares. Então, peguei um subconjunto dos dados de acidentes aéreos civis e o plotei. Apresento-os abaixo na forma de alguma hipótese.

Leia Também  Bright.worker: Acelere os aplicativos R Shiny descarregando cálculos pesados
v. Visualizando as mortes de acidentes aéreos civis

plot5

Fig-5: Sobreviventes civis de acidentes aéreos por ano

  • O pico de acidentes aéreos estava entre os anos 1970-1980.

  • Destas 58 aeronaves caíram no Alasca, seguidas por 45 na Rússia, 32 e 30 na Colômbia e na Califórnia, respectivamente.

  • Filtrei os dados do acidente ano após ano 2010 e constatei que a Rússia registrou o número máximo de mortes de civis no ano de 2011 (óbito = 5), seguida pela Indonésia no ano de 2015 (óbito = 4) e a Rússia no ano de 2012 (óbito = 4). Veja a Fig-5.

vi. Existe uma relação entre o ano do acidente aéreo civil e o motivo do acidente

Plotei esse relacionamento e encontrei o seguinte:

  • Houve 4.692 acidentes aéreos civis desde 1908 e 813 acidentes aéreos induzidos por militares. Veja a Fig-6.
  • Desses 4.692 acidentes aéreos civis, 644 ocorreram após o ano 2000.
  • Dos 644 acidentes aéreos civis, 301 foram falhas técnicas, 86 por causa natural, 52 caíram nas montanhas e 7 foram abatidos por militares. Existem 198 falhas não categorizadas.
  • As aeronaves civis abatidas por militares caíram em países como Congo (ano 2003), Irã (ano 2020), Laos (ano 2014), Kedarnath, Índia (ano 2013), Rapua (ano 2016), Rússia (ano 2001) e Zabul província (ano de 2010).
  • A maioria dos acidentes aéreos civis ocorreu devido a falha técnica. Pelo menos quatro aeronaves caíram na Rússia em 2011 por causa de falha técnica. Seguiu-se o Sudão, onde três aviões foram perdidos em 2008 por causa de falha técnica. Desde o ano de 2010, houve 20 acidentes de aeronaves civis na Rússia, 10 no Nepal, seguidos pelo Congo e pela Indonésia, com nove cada.
  • A mediana do acidente aéreo relacionado a ações militares foi por volta do ano de 1951
  • A mediana das colisões e colisões naturais foi por volta do ano 1976
  • A mediana das falhas relacionadas a falhas técnicas foi por volta de 1977.

plot6

Fig-6: Razões para acidentes aéreos civis classificados por ano

vii. Existe uma relação entre o mês do acidente aéreo civil e o motivo do acidente

Plotei esse relacionamento e encontrei o seguinte:

  • A maioria dos acidentes aéreos ocorreu por volta do mês de julho. Esses acidentes foram relacionados a razões naturais, diversas, naturais e de montanha. Veja a Fig-7.
  • A Rússia está no topo da lista com 7 aeronaves caídas no mês de julho por causa de falha técnica. Dessas 7 aeronaves, 4 eram da série Antonov An.

plot7

Fig-7: Razões para acidentes aéreos civis classificados por mês

viii. Existe uma relação entre as mortes de acidentes aéreos civis e a razão do acidente

Embora a mediana das mortes por acidentes aéreos civis normalmente tenha centrado em cerca de 1 a 5 pessoas, também havia vários valores extremos. Por exemplo, em um acidente de avião civil induzido por uma ação militar, tirou a vida de todas as 290 pessoas a bordo. Este incidente ocorreu em 1988 às 22h55 no Golfo Pérsico, perto de Bandar Abbas, no Irã. O número de registro EPIBU do Airbus A300B2-203 foi abatido por um navio da Marinha dos EUA USS Vincennes por um míssil SAM (superfície ao ar). Veja a Fig-8.

plot8

Fig-8: Razões para acidentes aéreos civis classificados por fatalidades

D. Subconfiguração de dados

Observando a distribuição dos dados, constatei que a observação máxima estava relacionada a acidentes de aeronaves civis (n = 4692), enquanto as observações de acidentes de aeronaves militares eram menores (n = 813). Além disso, subconjunto os acidentes de aeronaves civis desde o ano de 2010. O raciocínio é que, para responder ao primeiro objetivo, “viajar de avião é uma opção segura”, eu precisava analisar os dados da última década. A dimensão dos dados para acidentes de aeronaves civis desde o ano de 2010 foi de 205 observações em 24 variáveis ​​(inclui variáveis ​​originais e derivadas).

E. Detectando variação zero próximo (NZV)

NZV é uma propriedade em que uma determinada variável tem tendência quase zero, ou seja, todos os seus valores são idênticos. Eu encontrei duas dessas variáveis ​​em acidentes de aeronaves civis. Eles eram “solo” e “tipo de operador de colisão”. Eu os removi de uma análise mais aprofundada. Também removi a variável de resumo. Nesta fase, a dimensão dos dados para acidentes de aeronaves civis desde o ano de 2010 foi de 205 observações em 21 variáveis ​​(inclui variáveis ​​originais e derivadas)

F. Análise de dados ausentes

Existem dois tipos de dados ausentes:

  1. Faltando completamente aleatoriamente (MCAR): é um cenário desejável

  2. Ausência não aleatória: é um problema sério e seria melhor verificar o processo de coleta de dados.

Para esta análise, estou assumindo que os dados são MCAR. Geralmente, um limite mínimo seguro é de 5% do total para um conjunto de dados. Para uma determinada variável, se os dados estiverem ausentes por mais de 5%, é seguro deixar essa variável fora de análise. Com base nessa suposição, encontrei as seguintes variáveis, Crash_hour, Crash_minute, Flight, Crash_route_start, Crash_route_mid, Crash_route_end, Fuselage_number, com mais de 5% de dados ausentes.

Deve-se notar que, para acidentes de aeronaves civis desde 1908, houve 16051 observações com dados ausentes. Além disso, para acidentes de aeronaves civis desde 2010, havia 370 valores ausentes. Como o tamanho da amostra era pequeno (n = 205), imputei os valores ausentes como Zero.

G. Detecção de correlação

Ao criar um modelo preditivo, é sempre aconselhável levar em consideração a correlação. É um termo estatístico que mede o grau de dependência linear entre variáveis. Portanto, variáveis ​​que são altamente correlacionadas entre si são consideradas não contribuintes para um determinado modelo preditivo. Na Figura 9, mostro o gráfico de correlação para variáveis ​​contínuas. Por exemplo, a variável a bordo e as fatalidades têm uma forte correlação negativa.

Leia Também  RcppAPT 0.0.6 | R-bloggers

plot9

Fig-9: Detecção de correlação para variáveis ​​contínuas

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
Eu. Tratamento de correlação

Para tratar a correlação, apliquei uma abordagem não supervisionada de redução de dimensionalidade e seleção de recursos, denominada Análise de Componentes Principais (PCA) para variáveis ​​contínuas e Análise de Correspondência Múltipla (MCA) para variáveis ​​categóricas.
Na Fig-10, mostrei componentes principais relevantes (PCs). Observe a linha horizontal vermelha na Fig 10 (B). Esta linha vermelha indica o ponto de corte. Portanto, as variáveis ​​contínuas, a saber, “a bordo, fatalidades, minuto do acidente, mês do acidente, data do acidente, ano do acidente” são consideradas relevantes para análises posteriores.

plot10

Fig-10: Análise de componentes principais para redução de dimensionalidade e seleção de recursos

Em seguida, na Figura 11, mostrei o MCA para variáveis ​​categóricas. Observe a linha horizontal vermelha na Fig-11 (B). Esta linha vermelha indica o ponto de corte. Como podemos ver neste gráfico, nenhuma das variáveis ​​categóricas é considerada relevante para análises posteriores.

plot11

Fig-11: Análise de correspondência múltipla para redução de dimensionalidade e seleção de recursos

Nesta fase, a dimensão dos dados para acidentes de aeronaves desde 2010 foi reduzida para 205 observações em 7 variáveis.

H. Análise preditiva

A variável derivada survived era de natureza contínua. Para uma tarefa de classificação, eu a coagi em categórica com dois níveis. Se houvesse 0 sobreviventes, eu o codifiquei como “morto” e se houvesse mais de 1 sobrevivente, ele seria codificado como alive e salvou-o como uma variável chamada crash survivor.

Descobri que em 205 observações limpas completas, a proporção de mortos era de 63% e a de vivos era de 37%. Isso indicou que a variável resultado / dependente crash survivor estava desequilibrado. Se essa anomalia for deixada sem tratamento, qualquer modelo baseado nessa variável fornecerá resultados incorretos. Um conjunto de dados desequilibrado refere-se à disparidade encontrada na variável dependente (resposta).

Portanto, um problema de classificação desequilibrado é aquele em que a variável dependente possui proporção desequilibrada de classes. Em outras palavras, um conjunto de dados que exibe uma distribuição desigual entre suas classes é considerado desequilibrado. Dividi o conjunto de dados limpo em uma divisão de 70/30% por validação cruzada de 10 vezes. O conjunto de treinamento continha 145 observações em 7 variáveis. O conjunto de testes continha 60 observações em 7 variáveis. As 7 variáveis ​​independentes são, crash year, crash month, crash date, crash minute, aboard, fatalities and crash survivor.

Eu. Métodos para lidar com a classificação desequilibrada
  1. Sob amostragem

Com a subamostragem, selecionamos aleatoriamente um subconjunto de amostras da classe com mais instâncias para corresponder ao número de amostras provenientes de cada classe. A principal desvantagem da subamostragem é que perdemos informações potencialmente relevantes das amostras deixadas de fora.

  1. Sobre amostragem

Com o excesso de amostragem, duplicamos aleatoriamente amostras da classe com menos instâncias ou geramos instâncias adicionais com base nos dados que temos, para corresponder ao número de amostras em cada classe. Embora evitemos perder informações com essa abordagem, também corremos o risco de ajustar demais o modelo, pois é mais provável que obtenhamos as mesmas amostras no treinamento e nos dados de teste, ou seja, os dados de teste não são mais independentes dos dados de treinamento. Isso levaria a uma superestimação do desempenho e generalização do nosso modelo.

  1. ROSE e SMOTE

Além da sobre e subamostragem, existem métodos híbridos que combinam a subamostragem com a geração de dados adicionais. Dois dos mais populares são ROSE e SMOTE.

A solução ideal é que não devemos simplesmente realizar amostragem excessiva ou insuficiente nos dados de treinamento e executar o modelo. Precisamos levar em consideração a validação cruzada e executar sobre ou sub-amostragem em cada dobra de forma independente para obter uma estimativa honesta do desempenho do modelo.

ii. Previsão no conjunto de dados desequilibrado

Para testar a precisão dos sobreviventes de acidentes aéreos, apliquei três algoritmos de classificação, denominados Árvores de Classificação e Regressão (CART), K-vizinhos mais próximos (KNN) e Regressão logística (GLM) no conjunto de dados limpo e desequilibrado. Os modelos CART e GLM oferecem 100% de precisão. Veja a Fig-12.

plot12

Fig-12: Gráfico de precisão de modelos preditivos em dados desequilibrados

Eu mostrei abaixo os resultados da modelagem preditiva no conjunto de dados desequilibrados.

Call:
summary.resamples(object = models)

Models: cart, knn, glm 
Number of resamples: 100 

ROC 
  Min.   1st Qu.Median  Mean   3rd Qu. Max. NA's
cart 0.4907407 0.7666667 0.8605556 0.8390667 0.933796310
knn  0.3444444 0.6472222 0.7527778 0.7460315 0.845833310
glm  0.9000000 1.0000000 1.0000000 0.9977593 1.000000010

Sens 
  Min. 1st Qu. Median  Mean   3rd Qu. Max. NA's
cart 0.1666667 0.60.8 0.7310000 0.833333310
knn  0.0000000 0.40.5 0.5406667 0.666666710
glm  0.6000000 1.01.0 0.9723333 1.000000010

Spec 
  Min.   1st Qu.Median  Mean   3rd Qu. Max. NA's
cart 0.6666667 0.8000000 0.8888889 0.8846667 1.000000010
knn  0.5555556 0.7777778 0.8888889 0.8461111 0.888888910
glm  0.8888889 1.0000000 1.0000000 0.9801111 1.000000010
Confusion Matrix and Statistics

  Reference
Prediction alive dead
 alive220
 dead  0   38
 
   Accuracy : 1  
 95% CI : (0.9404, 1)
No Information Rate : 0.6333 
P-Value [Acc NIR] : 1.253e-12  
 
  Kappa : 1  
 Mcnemar's Test P-Value : NA 
 
Sensitivity : 1.0000 
Specificity : 1.0000 
 Pos Pred Value : 1.0000 
 Neg Pred Value : 1.0000 
 Prevalence : 0.3667 
 Detection Rate : 0.3667 
   Detection Prevalence : 0.3667 
  Balanced Accuracy : 1.0000 
 
   'Positive' Class : alive   

Pelo resultado acima, é evidente que a sensibilidade do modelo CART e GLM é máxima.

iii. Previsão no conjunto de dados balanceado

Equilibrei o conjunto de dados aplicando o método sob, sobre amostragem, bem como o método ROSE. A partir dos resultados mostrados acima, escolhi o modelo de regressão logística para treinar os dados balanceados. Como podemos ver agora, a sensibilidade para sobre e sub-amostragem é máxima quando aplicado o algoritmo de regressão logística. Então, eu escolhi, sob amostragem, para testar o modelo. Veja a Fig-13 e os resultados da matriz de confusão são mostrados abaixo.

Leia Também  Extrapolando com splines B e GAMs

plot13

Fig-13: Gráfico de precisão de modelos preditivos em dados balanceados

Após equilibrar os dados e reaplicar um algoritmo de regressão logística, a precisão para prever a precisão do sobrevivente de um acidente aéreo foi reduzida para 98%, conforme mostrado na matriz de confusão abaixo.

Call:
summary.resamples(object = models)

Models: glm_under, glm_over, glm_rose 
Number of resamples: 100 

ROC 
   Min.   1st Qu.Median  Mean   3rd Qu.  Max.
glm_under 0.8240741 1.0000000 1.0000000 0.9920185 1.0000000 1.0000000
glm_over  0.9000000 1.0000000 1.0000000 0.9977593 1.0000000 1.0000000
glm_rose  0.0000000 0.1638889 0.2722222 0.2787333 0.3555556 0.7777778
  NA's
glm_under0
glm_over 0
glm_rose 0

Sens 
  Min. 1st Qu.Median  Mean 3rd Qu. Max. NA's
glm_under  0.6 1.0 1.0000000 0.9746667 1.010
glm_over   0.6 1.0 1.0000000 0.9723333 1.010
glm_rose   0.0 0.2 0.3666667 0.3533333 0.510

Spec 
   Min.   1st Qu.Median  Mean   3rd Qu.  Max.
glm_under 0.7777778 1.0000000 1.0000000 0.9745556 1.0000000 1.0000000
glm_over  0.8888889 1.0000000 1.0000000 0.9801111 1.0000000 1.0000000
glm_rose  0.0000000 0.2222222 0.3333333 0.3538889 0.4444444 0.8888889
  NA's
glm_under0
glm_over 0
glm_rose 0
 Confusion Matrix and Statistics

  Reference
Prediction alive dead
 alive221
 dead  0   37
  
   Accuracy : 0.9833  
 95% CI : (0.9106, 0.9996)
No Information Rate : 0.6333  
P-Value [Acc > NIR] : 4.478e-11   
  
  Kappa : 0.9645  
 Mcnemar's Test P-Value : 1   
  
Sensitivity : 1.0000  
Specificity : 0.9737  
 Pos Pred Value : 0.9565  
 Neg Pred Value : 1.0000  
 Prevalence : 0.3667  
 Detection Rate : 0.3667  
   Detection Prevalence : 0.3833  
  Balanced Accuracy : 0.9868  
  
   'Positive' Class : alive       
iv. Interpretação dos resultados

Ao responder ao segundo objetivo desta análise, verificou-se que o modelo de regressão logística fornece 98% de precisão na determinação da precisão de uma sobrevivência de um acidente aéreo. Isso explica a necessidade de equilibrar o conjunto de dados antes da modelagem.

I. Limitações

Talvez um dos desafios ao trabalhar nesse conjunto de dados tenha sido o maior número de variáveis ​​categóricas. E cada uma dessas variáveis ​​possui mais de 10 níveis distintos. A decomposição em um número menor de níveis significativos exigiria a ajuda de um especialista no assunto. Além disso, o conjunto de dados continha um grande número de valores ausentes nas variáveis ​​categóricas. Imputá-los seria um gargalo para a memória principal. Substituí os valores ausentes por Zero.

J. Discussão

Pode haver um argumento sobre a necessidade do balanceamento de dados. Por exemplo, nesta análise, mostrei que os dados desequilibrados fornecem 100% de precisão, ao contrário, a precisão dos dados balanceados se reduz a 98%. O raciocínio aqui é que dados balanceados ou desequilibrados dependem da distribuição dos pontos de dados. Ao equilibrar os dados, o analista está absolutamente certo sobre a robustez do modelo, o que não seria possível com um conjunto de dados desequilibrado.

Viajar de avião é certamente uma opção segura nos tempos atuais. Eu provei essa afirmação realizando uma análise sistemática e rigorosa dos dados. Além disso, o modelo de regressão logística treinado em dados sub-amostrados balanceados produz a sensibilidade máxima.

K. Conclusão e trabalho futuro

Neste estudo, analisei os últimos 101 anos de dados sobre acidentes de aeronaves. Eu mostrei em minha análise detalhada que, devido a certos fatores como crash year, crash month, crash date, crash minute, aboard, fatalities and survived, é possível prever a precisão dos sobreviventes de acidentes aéreos. Eu testei várias hipóteses neste trabalho, consulte a seção C. Seria interessante ver as tendências entre o tipo de aeronave e as mortes em acidentes aéreos que deixo como trabalho futuro.

Referência

Wickham, H. (2014). Arrumar dados. Jornal do software estatístico, 59 (10), 1-23.

Apêndice A

Explicação dos termos estatísticos utilizados neste estudo
  • Variável: é qualquer característica, número ou quantidade mensurável. Exemplo, idade, sexo, renda são variáveis.
  • Variável contínua: é uma variável numérica ou quantitativa. As observações podem assumir qualquer valor entre um conjunto de números reais. Exemplo, idade, tempo, distância.
  • Variável categórica: descreve a qualidade ou característica de uma unidade de dados. Normalmente, ele contém valores de texto. São variáveis ​​qualitativas.
  • Nominal-categórico: é uma variável categórica em que a observação pode assumir um valor que não pode ser organizado em uma sequência lógica. Exemplo, religião, marca do produto.
  • Variável independente: também conhecida como variável preditora. É uma variável que está sendo manipulada em um experimento para observar um efeito na variável dependente. Geralmente em um experimento, a variável independente é a “causa”.
  • Variável dependente: também conhecida como variável de resposta ou resultado. É a variável que precisa ser medida e é afetada pela manipulação de variáveis ​​independentes. Geralmente, em um experimento, é o “efeito”.
  • Variação: explica a distribuição dos dados, ou seja, a que distância um conjunto de números aleatórios é distribuído em relação aos valores originais.
  • Sensibilidade: é a capacidade de um teste identificar corretamente a ocorrência de um valor na variável dependente ou na resposta. Também conhecida como a verdadeira taxa positiva.
  • Especificidade: é a capacidade de um teste identificar corretamente, a não ocorrência de um valor na variável dependente ou na resposta. Também conhecida como a verdadeira taxa negativa.
  • Kappa de Cohen: é uma estatística para medir a confiabilidade inter-taxa de uma variável categórica. Varia de -1 a +1.

Apêndice B

O código R deste estudo pode ser baixado aqui

var vglnk = {key: ‘949efb41171ac6ec1bf7f206d57e90b8’};

(função (d, t) {
var s = d.createElement
s.src = ‘//cdn.viglink.com/api/vglnk.js’;
var r = d.getElementsByTagName
} (documento, ‘script’));

Para Deixe um comentário para o autor, siga o link e comente no blog: Dados de histórias falam.

R-bloggers.com oferece atualizações diárias por email sobre notícias e tutoriais do R sobre o aprendizado do R e muitos outros tópicos. Clique aqui se você deseja publicar ou encontrar um emprego em ciência da dados / R.


Deseja compartilhar seu conteúdo com R-blogueiros? clique aqui se você tiver um blog ou aqui se não tiver.



cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br