Categorias
Auditoria Data Analytics Data Science Tecnologia da Informação

Auditoria Contínua: mapeando padrões, desvios e causa

Auditoria ou Auditar vem da raiz em latim audire que significa ouvir. Um significado mais abrangente seria: analisar, mapear padrões e desvios e identificar a causa de um problema.

Mapear a causa raiz de um problema é um grande desafio visto que esta é bem diferente de uma justificativa ou simples admissão de responsabilidade.

Trata-se do fato gerador do apontamento. Porém – que realmente levou à este desvio? Qual controle falhou para a materialização do risco?

Auditoria Contínua

A Auditoria Contínua é ainda mais desafiadora. Como uma máquina pode identificar problemas, falhas e até mesmo fraudes sem o julgamento humano?

Entender como auditar problemas ou fraudes a partir de padrões é condição sine qua non para automatizar testes de Auditoria Interna. Aliás, esta expressão também é latina:

sine qua non: Sem à qual não há razão de ser

latim, wikipedia

Técnicas

Existem muitas técnicas para identificar outliers. Mas, vejamos duas óticas de análise:

Aderência à regras

Quando um processo possui um fluxo e regras bem definidas, é muito fácil comparar prática e teoria. Primeiramente, podemos simplesmente testar a aderência às regras.

Por exemplo, ao analisar os pedidos de compra da Companhia uma das preocupações pode ser a alçada de aprovação.

Assim sendo, caso exista uma política de alçadas, é simples comparar se a aprovação de um pedido de R$ 2.000,00, por exemplo, foi aprovado por alguém com alçada suficiente.

Identificando padrões e desvios

Um processo estabelecido compreende uma ação ou conjunto de ações constantes – rotina. Portanto, se é possível identificar um padrão de periodicidade, vale a pena avaliar os casos que fogem à regra.

Na contabilidade por exemplo, existem tipos de documentos e contas contábeis específicas para cada situação. Conhecer estes padrões permite identificar exceções e identificar erros nos lançamentos.

O erro operacional, a ineficiência e até mesmo fraude – todos têm uma dimensão em comum: a rotina.

‘Corrupção” vem do latim “rumpere”, ou romper, quebrar. Da mesma origem latina vem a palavra “rota”, através de “ruptura”, que virou “rupta” (um caminho aberto) no latim vulgar e está na origem do francês “route”, rota, e também de “rotina”. “Corrupção” e “rotina” vão se encontrar…

Luís Fernando Verríssimo (O Globo, 13/04/04)

Geralmente, na auditoria, são os outliers (casos que fogem do padrão) que indicam problemas, possibilidades de melhoria ou desvios de conduta.

Auditoria Contínua: identificando padrões, outliers e causa raiz
Outliers em vermelho (Khan Academy)

Implantar um código de ética na empresa, é essencial para o aculturamento dos colaboradores. Parte de um programa de ética, o código especifica claramente qual é a conduta esperada do colaborador, o que ele não deve fazer e como ele será responsabilizado no caso de desvios.

O Discurso do Método na Auditoria

Em 1637, o filósofo e matemático francês René Descartes definiu 4 passos para desenvolver um raciocínio. Esses quatro passos podem orientá-lo na identificação de problemas. São eles:

  • Receber escrupulosamente as informações, examinando sua racionalidade e sua justificação. Verificar a verdade, a boa procedência daquilo que se investiga – aceitar o que seja indubitável, apenas. Esse passo relaciona-se muito ao ceticismo.
  • Análise, ou divisão do assunto em tantas partes quanto possível e necessário.
  • Síntese, ou elaboração progressiva de conclusões abrangentes e ordenadas a partir de objetos mais simples e fáceis até os mais complexos e difíceis.
  • Enumerar e revisar minuciosamente as conclusões, garantindo que nada seja omitido e que a coerência geral exista.

Enablers da Auditoria Contínua

Em conclusão, para aprender mais sobre Auditoria Contínua, procure obter conhecimentos específicos de Tecnologia da Informação, uso de ferramentas de Audit Analytics e Data Science para facilitar essas análises na auditoria interna.

Referências sobre padrões e desvios

Outliers in scatter plots (Khan Academy, 15/08/2019)

Corruptelas (Veríssimo, O Globo 13/04/14)

Categorias
Auditoria Big Data Data Analytics Data Science R

Introdução a linguagem r

Introdução a linguagem r é certamente um dos primeiros temas pesquisados na jornada de aprendizado de um cientista de dados, profissional de bioestatística, auditor em auditoria contínua ou um profissional com foco em data analytics.

No entanto, antes de partir para temas mais complexos como análise preditiva, inteligência artificial, machine learning, Big Data, certamente também vale a pena relembrar e reforçar conceitos básicos de matemática, estatística, lógica de programação e estrutura de dados.

Matemática e Estatística

Muito utilizada por matemáticos e estatísticos, a linguagem R é especializada em manipulação, análise e visualização de dados. Assim sendo, a linguagem R possui funções estatísticas e é muito fácil utilizá-la para obter a média, moda, mediana, criar histogramas, e até mesmo criar e visualizar gráficos elaborados com dispersão, regressão linear e até mesmo três dimensões (3D). Este post mostrará alguns conceitos básicos da linguagem. Por este motivo, para testar os exemplos você precisa instalar o R previamente. Adicionalmente. se preferir, também pode instalar o RStudio – um ambiente gráfico mais amigável e gratuito.

Quais são as estruturas de dados no R?

Como atribuir um valor no R?

Primeiramente, vamos aprender a atribuir o valor 1 à x. Para isto, basta utilizar o comando abaixo:

> x <- 1

Como resultado, apesar de conter apenas um item (1), veja que ainda sim para o R, x é considerado um vetor de tamanho 1.

Como exibir valores no R?

Para exibir o valor de x, basta digitar x e teclar enter:

> x
[1] 1

Você pode atribuir mais de um número à um vetor, por exemplo, concatenando os valores (1,2,3,4,5) à partir da função c( ) :

> x <- c(1,2,3,4,5)
> x
[1] 1 2 3 4 5

Outra forma de fazer o mesmo, seria atribuir uma sequência numérica sequencial “1:5” através do operador “:

> x <- 1:5
> x
[1] 1 2 3 4 5

Para exibir o valor de uma estrutura de dados (variável, vetor, matriz, data frame), basta digitar o nome e teclar enter:

Como transformar um vetor em uma matriz no R?

Vejamos o vetor x contendo números de 1 à 20:

> x <- 1:20
> x
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20

Utilizando a função dim( ) podemos atribuir os parâmetros nrow=10 (número de linhas = 10), ncol=2 (número de colunas = 2) para o vetor x, transformando-o em uma matriz 10 x 2:

> dim(x) <- c(10,2)

Exibindo o valor de x vemos uma matriz de 10 linhas e 2 colunas:

> x
      [,1] [,2]
 [1,]    1   11
 [2,]    2   12
 [3,]    3   13
 [4,]    4   14
 [5,]    5   15
 [6,]    6   16
 [7,]    7   17
 [8,]    8   18
 [9,]    9   19
[10,]   10   20

Como realizar uma operação matemática entre matrizes no R?

Vamos criar outro vetor y, contendo números de 20 à 39 e formatá-lo como uma matriz 10 x 2. Para isso basta utilizar os seguintes comandos:

> y <- 20:39
> dim(y) <- c(10,2)

Exibindo o resultado de y temos:

> y
      [,1] [,2]
 [1,]   20   30
 [2,]   21   31
 [3,]   22   32
 [4,]   23   33
 [5,]   24   34
 [6,]   25   35
 [7,]   26   36
 [8,]   27   37
 [9,]   28   38
[10,]   29   39

O código abaixo multiplica a matriz x pela matriz y e guarda o resultado na matriz z.

> z <- x * y
> z
      [,1] [,2]
 [1,]   20  330
 [2,]   42  372
 [3,]   66  416
 [4,]   92  462
 [5,]  120  510
 [6,]  150  560
 [7,]  182  612
 [8,]  216  666
 [9,]  252  722
[10,]  290  780

Assim como na matemática, a linguagem R procura multiplicar os elementos das matrizes que estão na mesma posição, ou seja o item presente na linha 1, coluna 1 da matriz x (1) é multiplicado pelo item presente na linha 1, coluna 1 da matriz y (20), e assim por diante.

O código fonte completo

Finalmente, depois de tudo que vimos acima, temos abaixo o código fonte completo utilizado neste post. Você pode simplesmente copiar e executar de uma vez e observar os resultados obtidos.

x <- 1:20
x
dim(x) <- c(10,2)
x
y <- 20:39
dim(y) <- c(10,2)
y
z <- x * y
z
dim(z) <- c(5,4)
z

Resultado obtido

> x <- 1:20
> x
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
> dim(x) <- c(10,2)
> x
      [,1] [,2]
 [1,]    1   11
 [2,]    2   12
 [3,]    3   13
 [4,]    4   14
 [5,]    5   15
 [6,]    6   16
 [7,]    7   17
 [8,]    8   18
 [9,]    9   19
[10,]   10   20
> y <- 20:39
> dim(y) <- c(10,2)
> y
      [,1] [,2]
 [1,]   20   30
 [2,]   21   31
 [3,]   22   32
 [4,]   23   33
 [5,]   24   34
 [6,]   25   35
 [7,]   26   36
 [8,]   27   37
 [9,]   28   38
[10,]   29   39
> z <- x * y
> z
      [,1] [,2]
 [1,]   20  330
 [2,]   42  372
 [3,]   66  416
 [4,]   92  462
 [5,]  120  510
 [6,]  150  560
 [7,]  182  612
 [8,]  216  666
 [9,]  252  722
[10,]  290  780
> dim(z) <- c(5,4)
> z
     [,1] [,2] [,3] [,4]
[1,]   20  150  330  560
[2,]   42  182  372  612
[3,]   66  216  416  666
[4,]   92  252  462  722
[5,]  120  290  510  780
> 

Perguntas sobre R respondidas aqui

  1. Introdução a linguagem R
  2. Quais são as estruturas de dados no R?
  3. Como criar uma variável no R?
  4. Como atribuir um valor a uma variável no R?
  5. Como exibir uma variável no R?
  6. Como atribuir um range de números sequenciais à um vetor no R?
  7. Como transformar um vetor em uma matriz no R?
  8. Como realizar uma operação matemática entre matrizes no R?

Referências sobre linguagem R

R Programming for Data Science ( Roger D. Peng ) Professor de Bioestatística Bloomberg Public Health School – Johns Hopkins University.

você está offline!