Buscar

UNIDADE 1 - ANALISE ESTATISTICA DE DADOS

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

UNIDADE 1 - ANALISE ESTATISTICA DE DADOS
Vejamos mais alguns exemplos de variáveis e seus tipos de dados.
>c1 = 'Z'
>class(c1)
>c2 = "CASA"
>class(c2)
'character'
'character'
Note como as variáveis c1 e c2 são do mesmo tipo 'character'. Isso porque, para a linguagem R, não há distinção entre caractere único e string, como em outras linguagens. Assim, não importa se o texto tem apenas um caractere ou vários, o tipo é o mesmo.
Vejamos, agora, como lidar com variáveis com valores do tipo lógico.
>x = 1; y = 2
>z = x > y
>z
>class(z)
FALSE
'logical'
Note que a variável “z” recebe o resultado da expressão “x>y”, que é falsa, pois x não é maior que y (1 não é maior que 2). Assim, o valor da variável “z” é FALSE e seu tipo é ‘logical’.
>u = TRUE; v = FALSE
>class(u)
>u & v
>u | v 
>!u
Para verificar o entendimento, observe atentamente os exemplos. Qual o tipo da variável “u”? Qual o resultado das expressões “u & v”, “u | v” e “!u”?
>0 / 5
0
>5 / 0
Inf
>-5 / 0
-Inf
Agora observe estas operações. Na primeira, uma operação normal de divisão, cujo resultado é zero, afinal zero dividido (ou multiplicado) por qualquer valor resulta zero. Porém, nas outras duas operações, temos a divisão por zero, com resultados diferentes (“Inf” e “-Inf”). Esses resultados representam infinito e sinalizam que houve uma divisão por zero cujo resultado não pode ser calculado.
Vejamos mais alguns exemplos.
>x = 367
>x
367
>mode(x)
'numeric'
>typeof(x)
'double'
>y = as.integer(x)
>y
367
>mode(y)
'numeric'
>typeof(y)
'integer'
Temos agora duas funções interessantes: mode() e typeof(). A primeira é similar à função class() e permite verificar o tipo da variável, enquanto a segunda permite verificar o modo interno de armazenamento de uma variável em R.
Note como, apesar de receber um valor inteiro, a variável “x” tem um modo interno de armazenamento “double”. Para que uma variável seja armazenada internamente como inteiro (“integer”), é necessário fazer a conversão explícita do seu tipo, como no exemplo com a variável “y”. É possível também mudar o modo da variável, atribuindo um valor à função mode(), como no exemplo a seguir:
>x = 1
>x
1
>typeof(x)
'double'
>mode(x) = "integer"
>typeof(x)
'integer'
Percebeu como a variável “x” era armazenada como “double” e, após a operação de mudança de modo para “integer”, passou a ter este modo de armazenamento?
OBJETOS
OBJETOS
R é uma linguagem orientada a objetos. Isso significa, entre outras coisas, que toda variável é um objeto. Além disso, é possível acessar métodos e atributos de objetos.
Esses objetos são armazenados em memória, podem ser listados e removidos. Isso é importante, pois é comum termos muitos objetos consumindo a memória do sistema, especialmente quando trabalhamos na própria máquina local, de forma que o sistema pode apresentar lentidão.
Nessas situações, fazer uma limpeza dos objetos na memória pode ser muito útil para melhorar o desempenho do sistema e permitir a carga de novos dados na memória para análise.
Caso esteja usando o RStudio, é possível visualizar e remover os objetos através das opções dos painéis de visualização da sessão de trabalho (workspace), ou ainda através do respectivo menu.
Além disso, há funções nativas da linguagem R para lidar com os objetos em memória.
>ls()
>objects()
As funções ls() e objects() permitem listar os objetos em memória.
>rm(x)
A função rm() permite remover da memória um objeto específico e assim liberar recursos do sistema. Nesse exemplo, a variável “x” foi removida e, caso seja referenciada após a remoção, resultará num erro, pois a variável não está mais armazenada na memória do sistema.
VETORES
VETORES
O objeto mais básico do R para guardar dados é o vetor. Um vetor é uma estrutura que permite armazenar um conjunto de valores do mesmo tipo (por exemplo, números) sob um mesmo nome. Esses elementos podem depois ser acessados individualmente usando um esquema de indexação que iremos descrever posteriormente. Esse tipo de estrutura de dados é bastante útil quando pretendemos armazenar várias coisas relacionadas na memória do computador.
Por exemplo, suponhamos que pretendemos guardar os lucros obtidos pela nossa empresa ao longo dos 12 meses do ano anterior. Em vez de termos 12 objetos diferentes, cada um guardando o lucro em cada mês, uma vez que são números relacionados uns com os outros, faz mais sentido guardá-los todos numa mesma estrutura de dados, que neste caso será um vetor com 12 números. Em R, mesmo quando atribuímos um único número a um objeto (por exemplo, fazendo x<-45), estamos de fato criando um vetor de números com um único elemento (TORGO, 2006).
O exemplo de código a seguir demonstra o que acabamos de descrever:
>a <- 8
>a[1]
8
Além de conter somente um tipo de dado, o vetor possui uma única dimensão, ou seja, seus elementos são referenciados utilizando um único número como índice para o elemento desejado (a[1], a[2] e assim por diante).
>v <- c(1:10)
>v
1.1
2.2
3.3
4.4
5.5
6.6
7.7
8.8
9.9
10.10
>length(v)
10
Note a função c(), usada frequentemente para criar conjuntos de elementos. Tome nota dela, pois ela será muito útil. Nesse exemplo, ela foi usada para criar uma lista de valores de 1 a 10 para preencher o vetor. Note também a função length(), que permite verificar o tamanho do vetor (10).
>v1 = c("Casa", "Mercado", "Igreja")
>v1
1.'Casa'
2.'Mercado'
3.'Igreja'
>v2 = c(5.5, 7.9, 8.7)
>v2
1.5.5
2.7.9
3.8.7
Podemos criar vetores de vários tipos: inteiros, caractere, números de ponto flutuante, basta que sejam todos do mesmo tipo.
>v3 = seq(1:10)
>v3
1.1
2.2
3.3
4.4
5.5
6.6
7.7
8.8
9.9
10.10
>is.vector(v3)
TRUE
Outra função muito útil é a seq(), que permite criar uma sequência de números. Nesse exemplo, a função foi usada para criar uma lista de 10 números de 1 a 10.
>v4 = rep(1,5)
>v4
1.1
2.1
3.1
4.1
5.1
>is.vector(v3)
TRUE
Já a função rep() permite repetir um valor por determinada quantidade de vezes. Nesse exemplo, a função foi usada para criar 5 repetições do valor 1.
É possível ainda realizar operações entre vetores, ou entre um vetor e outro valor ou variável.
>v * 5
5
10
15
20
25
30
35
40
45
50
Observe que cada um dos elementos de v foi multiplicado por 5, como esperado.
>v + v2
Warning message in v + v2:
“longer object length is not a multiple of shorter object length”
6.5
9.9
11.7
9.5
12.9
14.7
12.5
15.9
17.7
15.5
Observe que, embora os vetores v e v2 tenham tamanhos diferentes, a soma foi possível porque o interpretador da linguagem R foi capaz de “repetir” os elementos do vetor menor (v2, no caso) até que houvesse uma quantidade suficiente de elementos que permitisse a soma. Então, é como se fosse feita a soma entre v: “1,2,3,4,5,6,7,8,9,10” e v2: “5.5, 7.9, 8.7, 5.5, 7.9, 8.7, 5.5, 7.9, 8.7, 5.5”. Note que o interpretador ainda informa uma mensagem indicando que o vetor menor não é múltiplo do maior, pois 3 não é múltiplo de 10.
>v - v2
Warning message in v - v2:
“longer object length is not a multiple of shorter object length”
-4.5
-5.9
-5.7
-1.5
-2.9
-2.7
1.5
0.0999999999999996
0.300000000000001
4.5
De forma semelhante à soma, o vetor v2 foi “replicado” para permitir a operação de subtração com o vetor v.
>v * v2
Warning message in v * v2:
“longer object length is not a multiple of shorter object length”
5.5
15.8
26.1
22
39.5
52.2
38.5
63.2
78.3
55
Na operação de multiplicação, da mesma forma, o vetor v2 foi ampliado.
>v / v2
Warning message in v/v2:
“longer object length is not a multiple of shorter object length”
0.181818181818182
0.253164556962025
0.344827586206897
0.727272727272727
0.632911392405063
0.689655172413793
1.27272727272727
1.0126582278481
1.03448275862069
1.81818181818182
Por fim, a operação de divisão foi bem-sucedida graças, mais uma vez, à “inteligência” do interpretador da
linguagem R que sempre busca, quando possível, encontrar a melhor maneira de chegar ao resultado desejado pelo desenvolvedor.
>names(v2) = c("Nota AV1", "Nota AV2", "Nota AV3") 
>v2["Nota AV1"] 
Nota AV1: 5.5
Vetores podem ter nomes atribuídos a cada uma de suas “colunas”, de modo a simplificar a referência aos seus elementos e facilitar o entendimento da sua manipulação. Nesse exemplo, consideramos que o vetor v2 contém as notas dos alunos nas avaliações da disciplina, e assim nomeamos cada uma das notas de acordo com as avaliações realizadas.
MATRIZES
MATRIZES
Por vezes, poderemos estar interessados em armazenar a nossa informação em estruturas de dados com mais do que uma dimensão, como é o caso dos vetores. As matrizes arranjam a informação em duas dimensões. Em R, as matrizes não são mais do que vetores com uma propriedade especial que é a dimensão. Vejamos um exemplo: suponhamos que temos doze números correspondentes às vendas trimestrais durante o último ano, em três lojas. As instruções seguintes permitem “organizar” esses números como uma matriz (TORGO, 2006).
> vendas <- c(45, 23, 66, 77, 33, 44, 56, 12, 78, 23, 78, 90)
> vendas
[1] 45 23 66 77 33 44 56 12 78 23 78 90
> dim(vendas) <- c(3, 4)
> vendas
 [,1] [,2] [,3] [,4]
 [1,] 45 77 56 23
 [2,] 23 33 12 78
 [3,] 66 44 78 90
>length(vendas)
12
É possível saber o tamanho da matriz usando a função length().
>vendas[1,1]
45
>vendas[3,4]
90
É possível referenciar elementos específicos da matriz indicando linha e coluna.
>vendas[1,]
45
77
56
23
É possível obter todos os valores de uma linha da matriz.
>vendas[,1]
45
23
66
Também é possível obter todos os elementos de uma coluna da matriz.
Assim como no caso dos vetores, é possível realizar operações de soma, subtração, multiplicação, divisão entre duas matrizes ou uma matriz e um valor ou variável, assim como também é possível utilizar os demais operadores aritméticos, relacionais e lógicos para verificar características da matriz.
>vendas > 50
FALSE TRUE TRUE FALSE
FALSE FALSE FALSE TRUE
TRUE FALSE TRUE TRUE
Observe que o interpretador “percebeu” que desejávamos saber quais os elementos da matriz eram maiores que 50. Na prática, esse resultado indica em quais trimestres as vendas foram superiores a 50 em cada loja. Assim, o interpretador forneceu como resultado uma matriz de valores lógicos em que cada elemento representa a resposta para a verificação do valor da venda: se acima de 50, o elemento tem valor TRUE, caso contrário, FALSE.
ARRAYS
ARRAYS
Os arrays são extensões das matrizes para mais do que duas dimensões. Isso significa que podem ter vários índices. À parte esta pequena diferença, eles podem ser usados da mesma forma que as matrizes. De modo semelhante à função matriz, existe uma função array() para facilitar a criação de arrays. Segue-se um pequeno exemplo (TORGO, 2006).
> a <- array(1:50, dim = c(2, 5, 5))
> a , , 1
[,1] [,2] [,3] [,4] [,5]
 [1,] 1 3 5 7 9
 [2,] 2 4 6 8 10
, , 2
[,1] [,2] [,3] [,4] [,5]
 [1,] 11 13 15 17 19
 [2,] 12 14 16 18 20
, , 3
[,1] [,2] [,3] [,4] [,5]
 [1,] 21 23 25 27 29
 [2,] 22 24 26 28 30
, , 4
[,1] [,2] [,3] [,4] [,5]
 [1,] 31 33 35 37 39
 [2,] 32 34 36 38 40
, , 5
[,1] [,2] [,3] [,4] [,5]
 [1,] 41 43 45 47 49
 [2,] 42 44 46 48 50 
Perceba que, nesse exemplo, é como se houvesse 5 matrizes “empilhadas”, formando uma figura multidimensional.
A maioria das operações que podem ser feitas com vetores e matrizes são também válidas para arrays.
LISTAS
Uma lista é uma coleção ordenada de objetos conhecidos como os componentes da lista. Esses componentes não precisam ser do mesmo tipo, modo ou tamanho. Os componentes de uma lista em R são sempre numerados e podem também ter um nome associado a eles. Vejamos um pequeno exemplo de criação de uma lista em R (TORGO, 2006).
> estudante <- list(nro = 34453, nome = "Carlos Silva", notas = c(14.3, + 12, 15, 19))
O objeto estudante é uma lista formada por três componentes. Um é um número e tem o nome nro, outro é uma string e tem o nome, já o terceiro componente é um vetor de números com o nome notas. Podemos extrair componentes específicos de uma lista através da seguinte sintaxe (TORGO, 2006):
> estudante[[1]]
[1] 34453
> estudante[[3]]
[1] 14.3 12.0 15.0 19.0
Listas possuem a peculiaridade de permitir dados de tipos distintos, ao contrário das estruturas anteriores. Isso torna este tipo de objeto mais interessante em situações onde é necessário manter uma estrutura de dados complexa que armazene vários tipos de dados.
Porém, ainda que a lista tenha utilidade em várias situações, o tipo de objeto que analistas utilizam com mais frequência é o que veremos a seguir.
DATA FRAMES
Um data frame é um objeto do R que é normalmente usado para guardar tabelas de dados de um problema qualquer. Na sua forma, um data frame é muito semelhante a uma matriz, mas as suas colunas têm nomes e podem conter dados de tipo diferente, contrariamente a uma matriz. Um data frame pode ser visto como uma tabela de uma base de dados, em que cada linha corresponde a um registo (linha) da tabela. Cada coluna corresponde às propriedades (campos) a serem armazenadas para cada registo da tabela. Podemos criar um data frame da seguinte forma (TORGO, 2006):
>notas.inform <- data.frame(nros = c(2355, 3456, 2334, 5456), + turma = c("tp1", "tp1", "tp2", "tp3"), notas = c(10.3, 9.3, + 14.2, 15))
>notas.inform
nros turma notas
 1 2355 tp1 10.3
 2 3456 tp1 9.3
 3 2334 tp2 14.2
 4 5456 tp3 15.0
Os elementos de um data frame podem ser acessados como uma matriz:
>notas.inform[2, 2]
[1] tp1
Levels: tp1 tp2 tp3
Note que, além de fornecer o dado solicitado (o nome da 2ª turma), o interpretador R informa que há três “níveis” (levels). Isso ocorre em razão de o interpretador ter reconhecido que, na coluna “turma” do data frame, ocorre somente três valores, “tp1”, “tp2” e “tp3”, de forma que esse dado foi identificado como um dado categórico que classifica a informação. Essa “inteligência” é muito útil ao explorar dados desconhecidos a priori que precisam ser analisados, pois permite identificar rapidamente dados que refletem algum tipo de classificação como sexo, etnia, cidade, estado, país e outros dados comumente usados com este objetivo.
Perceba que o data frame foi criado a partir de vários vetores (nros, turma e notas). Poderíamos obter o mesmo resultado com as operações a seguir:
>nros = c(2355, 3456, 2334, 5456)
>turma = c("tp1", "tp1", "tp2", "tp3")
>notas = c(10.3, 9.3, +14.2, 15)
>notas.inform <- data.frame()
>notas.inform<- cbind(notas.inform,nros)
>notas.inform<- cbind(notas.inform,turma)
>notas.inform<- cbind(notas.inform,notas)
A rigor, poderíamos simplificar as linhas que utilizam a função cbind() numa única linha de código:
>notas.inform <- data.frame(nros,turma,notas)
A utilização da função cbind() serve para ilustrar a possibilidade de compor o data frame coluna a coluna, o que pode ser necessário em algumas situações. De forma semelhante, a função rbind() permite acrescentar linhas ao data frame.
Observe que, ainda que exija mais linhas de código para chegar ao mesmo resultado, esta abordagem é mais legível para quem analisa o código e pode ser mais interessante nos casos em que os dados que venham a compor o data frame precisem ser obtidos de fontes distintas (arquivos ou tabelas de bancos de dados diferentes, por exemplo).
Data frame é, provavelmente, o tipo de dado mais usado para análises de dados utilizando a linguagem R, pois permite uma analogia praticamente perfeita com os conjuntos de dados comumente encontrados nas empresas. Em geral, esses dados estão em tabelas de bancos de dados, arquivos, ou ainda são coletados de fontes externas de outras empresas, da Internet, enfim. Em todos os casos, frequentemente é possível organizar esses dados em uma tabela que inclui dados de vários tipos; nesse tipo de situação, o
data frame é a escolha mais adequada para facilitar o tratamento e análise dos dados.
Data frames são tipos de dados que oferecem uma infinidade de recursos para facilitar o seu manuseio, desde filtros, “fatiamento” (slicing) e outros recursos muito interessantes que abordaremos gradativamente.
Além disso, a linguagem R traz um conjunto de dados de exemplos (os chamados datasets) que permitem explorar um universo muito interessante de dados e possibilidades de análise, desde informações sobre veículos automotivos (dataset mtcars) até informações sobre os passageiros do Titanic (dataset Titanic).
Vamos explorar um pouco o conjunto de dados sobre os passageiros do Titanic?
>?Titanic
This data set provides information on the fate of passengers on the fatal maiden voyage of the ocean liner ‘Titanic’, summarized according to economic status (class), sex, age and survival.
(...)
No Name Levels 
1 Class 1st, 2nd, 3rd, Crew 
2 Sex Male, Female 
3 Age Child, Adult 
4 Survived No, Yes
Como você pode observar, ao pedir a ajuda sobre o dataset Titanic, são fornecidas informações que explicam se tratar de um conjunto de dados sobre o fatídico acidente com o famoso navio, e que o conjunto de dados inclui informações sobre a classe dos passageiros (1ª, 2ª, 3ª classe e tripulação), sexo (masculino ou feminino), idade (criança ou adulto) e sobrevivente (sim ou não).
>df = as.data.frame(Titanic)
>df
Class Sex Age Survived Freq
1st Male Child No 0
2nd Male Child No 0}
3rd Male Child No 35
Crew Male Child No 0
1st Female Child No 0
2nd Female Child No 0
3rd Female Child No 17
Crew Female Child No 0
1st Male Adult No 118
2nd Male Adult No 154
3rd Male Adult No 387
Crew Male Adult No 670
(...)
Observe que o conjunto de dados está organizado de modo a exibir a situação de cada “tipo” de passageiro. A primeira linha, por exemplo, indica que nenhuma criança do sexo masculino que viajava na primeira classe morreu (Class=1st, Sex=Male, Age=Child, Survived=No, Freq=0). Perceba que o campo “Freq” é um contador de frequência, ou seja, indica quantas vezes ocorreu aquele conjunto de condições. Esse campo serve, neste exemplo, para demonstrar o quantitativo de passageiros sobreviventes ou não de maneira estratificada a partir de suas características.
Para verificar o entendimento, observe a amostra do dataset e identifique quantas crianças do sexo masculino que viajavam na terceira classe não sobreviveram.
Observe agora que o dataset foi armazenado num objeto data frame (“df”) para que pudéssemos manipular o conjunto de dados e fazer algumas verificações, aproveitando as facilidades do objeto do tipo data frame.
>df$Freq
0
0
35
0
(...)
Veja que é possível fazer referência a qualquer coluna do data frame a partir do seu nome. Nesse caso, foi exibido o conteúdo da coluna “Freq”. Isso ocorre porque, no dataset Titanic, as colunas foram nomeadas. Caso contrário, seria necessário fazer referência aos números que identificam cada uma das colunas, usando a notação df[,5] para obter o mesmo resultado (todos os elementos da coluna 5, que corresponde à coluna Freq).
Para atribuir nomes às colunas de um data frame, deve ser usada a função names():
>names(df) = c(“Class”, “Sex”, “Age”, “Survived”, “Freq”)
Também é possível usar as funções colnames() e rownames() para atribuir nomes às colunas e linhas, respectivamente, do data frame.
Na linguagem R, utiliza-se a denominação de observações e variáveis para o que comumente se chama de linhas e colunas em tabelas de bancos de dados. É muito importante entender essa nomenclatura, pois ela reflete bem o propósito analítico e estatístico da linguagem, em que cada conjunto de dados representa uma série de observações (linhas) sobre o comportamento de variáveis (campos ou colunas).
>dim(df)
1.32
2.5
A função dim() fornece as dimensões de um data frame, expressas em termos de observações (32) e variáveis (5). Essa função pode ser muito útil para dar uma ideia de volume e complexidade dos dados.
Além da função dim(), há várias outras funções bastante úteis para entender, explorar e analisar conjuntos de dados usando data frames.
>nrow(df)
32
>ncol(df)
5
>head(df)
Class Sex Age Survived Freq
1st Male Child No 0
2nd Male Child No 0
3rd Male Child No 35
Crew Male Child No 0
1st Female Child No 0
2nd Female Child No 0
>tail(df)
Class Sex Age Survived Freq
27 3rd Male Adult Yes 75
28 Crew Male Adult Yes 192
29 1st Female Adult Yes 140
30 2nd Female Adult Yes 80
31 3rd Female Adult Yes 76
32 Crew Female Adult Yes 20
>sum(df$Freq)
2201
Você pode notar que é possível obter o número de linhas (nrow()) e colunas (ncol()) do data frame, além de obter as primeiras (head()) ou as últimas (tail()) linhas. Além disso, a função sum() permite utilizar a coluna Freq do data frame para calcular a quantidade de passageiros do Titanic.
Por fim, temos as funções que permitem importar dados de arquivos e armazená-los em objetos data frame. Há suporte para arquivos do Microsoft Excel (read.xls()), SPSS (read.spss()), arquivos txt (read.table()), arquivos csv (read.csv()), arquivos com delimitadores (read.delim()), dentre outros.
FUNÇÕES
Funções são trechos de código que são agrupados e recebem um nome para que possam ser executados com maior facilidade, especialmente nos casos em que aquele trecho de código é utilizado com muita frequência. Uma função tem um nome e pode receber parâmetros em R, sendo considerado também um objeto. Isso significa, entre outras coisas, que uma função pode ser passada como parâmetro para outra, um recurso muito útil em algumas situações de análise de dados.
quadrado <- function(x) {
 quad <- x * x
 return(quad)
}
quadrado(5)
ESTRUTURAS DE CONTROLE
A linguagem R fornece diversas estruturas que permitem controlar o fluxo de execução do código. Vejamos quais são elas.
x = 25
if (x < 10) {
 print("Este número é menor que 10")
} else {
 print("Este número é maior ou igual a 10")
}
A estrutura condicional if é muito usada em diversas linguagens de programação, e também está disponível em R.
x = 1
repeat {
 x = x + 3
 if (x > 99)
 break
 print(x)
}
A estrutura repeat também é muito comum em várias linguagens de programação e permite repetir a execução de um trecho de código.
for (i in 1:20) {
 print(i)
}
for (q in c(10,20,30,40,50)) {
 print(q)
}
A estrutura for também permite repetir a execução de um trecho de código, porém é uma estrutura mais controlada no sentido de que facilita a execução de uma quantidade determinada de repetições. Nos exemplos anteriores, observamos que o uso da estrutura for é recomendado para situações em que desejamos repetir a execução do código enquanto uma variável muda de valor a cada iteração. Essa mudança de valor pode ser dentro de uma faixa de valores determinada ou variável, baseada numa lista resultante da execução de uma função, por exemplo.
x = 1
while(x < 5){
 x = x + 1
 print(x)
}
A estrutura while repete a execução de um trecho de código enquanto uma determinada condição for verdadeira, permitindo que a repetição seja feita uma quantidade indeterminada de vezes, conforme
a condição permanecer válida.
Conhecendo a Plataforma SAS
A plataforma SAS é um pacote computacional de software utilizado em todo o mundo por instituições comerciais, acadêmicas e científicas.
A plataforma SAS conta com diversas soluções, sendo a principal delas denominada SAS Intelligence Platform.
A SAS Intelligence Platform é uma solução que fornece toda a infraestrutura para criar, gerenciar, e distribuir inteligência corporativa de negócios (SAS, 2006).
A solução inclui recursos que permitem realizar um conjunto de tarefas importantes para prover os meios de acesso pelos colaboradores aos recursos de inteligência de negócios oferecidos. Dentre as atividades facilitadas estão:
Extrair dados de uma variedade de fontes operacionais em múltiplas plataformas e construir um data warehouse e os respectivos data marts que integram os dados extraídos;
Armazenar grandes volumes de dados de maneira eficiente e com suporte a uma variedade de formatos;
Fornecer capacidade de exploração de dados através de navegador web para usuários em todos os níveis de habilidade, do iniciante ao experiente, permitindo a realização de consultas, relatórios e resultados atualizados de análises complexas;
Acesso às técnicas analíticas de alta complexidade para prover habilidades como modelagem preditiva e descritiva, previsões, otimização, simulação e design experimental;
Controle centralizado da acurácia e consistência dos dados em toda a organização.
Graças a esse conjunto amplo de recursos e funcionalidades, a plataforma SAS é reconhecida como uma das alternativas do mercado para profissionais e empresas que demandam soluções robustas para análise de dados, contemplando fim a fim todo o processo de coleta, tratamento, organização, análise e visualização de resultados.

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando