terça-feira, 25 de agosto de 2015

E-Mail da Disciplina res.estat@gmail.com

Tabela Dinâmica e cluster

Aula VII - Tabela Dinâmica e Cluster Analysis


Estatística Multivariada – Cluster Analysis

Vamos começar a “olhar” com a Estatística (algoritmos matemáticos), de forma multivariada.

Isso é muito familiar para a gente por que nosso cérebro (muito mais poderoso que qualquer computador) enxerga de forma multivariada.

Como reconhecemos os objetos ou as pessoas, por somente um item? Por exemplo, como reconhecemos uma pessoa: sexo, altura, cor do cabelo, formato do rosto, timbre da voz, sotaque, perfume que utiliza (ou que não utiliza), etc.

Na verdade utilizamos todos esses dados e muitos mais simultaneamente, ou seja, nosso sistema de reconhecimento natural é multivariado (como a Estatística Multivariada).

Como nosso cérebro processa toda essa informação em frações de segundo não sabemos. A neurociência está quebrando cabeça com isso. Podemos perguntar para Nicolelis (o neurocientista que dizem ter a maior chance de conseguir um Premio Nobel para o Brasil).

O que podemos fazer com a matemática, estatística e computação é simular de alguma forma primitiva o funcionamento do cérebro.

Esse tipo de abordagem é utilizado nas áreas de Inteligencia de Negócios (BI), Sistemas de Informação ( Data Mining, Data Crunching, Decision Support Systems-DSS e Big Data) e Pesquisa Cientifica.

No exemplo a ser apresentado (arquivo de Excel para download), temos 4 categorias de pessoas: Atletas, Semi-atletas, Sedentários e Professores da ESALQ. Nessas pessoas foram medidas 3 variáveis, Índice de Massa Corporal, Quantos quilômetros corre ou anda por semana e Quilocalorias que Ingere por Dia (modelo trivariado, se tem mais do que uma já é multivariado).
Exemplo para Download:



Aqui apresentamos o nosso objetivo, elaborarmos um dendrograma, que é a representação gráfica da saída do procedimento Cluster Analysis do Programa SAS:




                      Tabela Dinâmica em Excel

Podemos ver nesse exemplo que temos vários representantes de cada categoria, são exatamente 4 (ou quatro repetições de cada categoria)

Para aplicarmos Cluster Analysis devemos calcular previamente as medias aritméticas de cada categoria, para cada uma das 3 variáveis de resposta.





Vamos colocar a sequencia de passos para obtermos essas medias utilizando um recurso muito poderoso de bancos de dados do Excel (tal vez o mais poderoso):

 Tabela Dinâmica ou Pivot Table ou Pivot.


Passo 1 – Marcar o banco de dados original

Passo 2 – Entrar em Inserir e Depois em Tabela Dinâmica.





Passo 3 – Dar OK. Entraremos no Ambiente de Trabalho da Tabela Dinâmica:




Passo 4 – Clicar em Categorias “Cat.”(sem soltar o mouse, operação “Drag”) e arrastar as categorias para o local Rótulos de Linha.




Passo 5 – Arrastar as 3 variáveis observadas: IMC, Corr e Kcal para o local Somatória de Valores (Σ valores). Veja que o protótipo da Tabela Dinâmica, já está pronto, no canto superior esquerdo.



Passo 6 – O problema é que temos somatória dos valores e precisamos de medias aritméticas para entrar no Programa de 

Cluster Analysis do SAS. Como fazer para trocar 

somatória para medias?:


Veja que os dados são de soma, um IMC de 100, praticamente não existe ( 81,9 ; 100,7 ...)


·       Colocar o cursor na célula “soma de IMC

    ·   Pressionar o botão direito do mouse






    ·       Escolher a opção: “Configurações do Campo de Valor

    ·       Veja que está em “Soma”, clicar em “Média”. 




    Veja que agora temos Média de ICM para cada categoria.


    ·       Fazer mesma operação para Corr e Kcal.




    Fim do calculo das medias de cada categoria.


    Agora é somente copiar e colar no SAS.

    Programa SAS para Cluster Analysis dos Dados Calculados no Excel:

    data  pessoas;
    input cat $ imc corr kcal;
    cards;
    AT      20.475       54.35  3100
    PR      25.175  2.55  2662.5
    SE       25.575  2.925  2700
    SEM   23.05         16.6  2950
    ;
    proc cluster data=pessoas outtree = arvore method = average;
    var imc corr kcal;
    id cat;
    run;
    PROC TREE DATA = arvore;
    RUN;












    2015_09_15_Aula V_ Gravar Videoaula de ACP com Biplot

    2015_09_01_aula_IV - Eduardo e Douglas

    2015_09_01_aula_IV - Eduardo e Douglas
    Semana que vem não tem aula, Semana da Pátria

    - 15h Douglas - Monitoramento da susceptibilidade de helicoveerpa armigera a Inseticidas reguladores de Crescimento

    - Pivot Table (Tabela Dinâmica)

    - 16h Eduardo Bonilha : Pesquisas Gratuitas no Google. Ferramenta Questionário (Esperar os 3 professores). 
         - Falar com Eduardo para gravar videoaula em 2 semanas.
         - Podemos gravar também micro Gabriel

    terça-feira, 18 de agosto de 2015

    Potencia do Teste

    *-----------------------------------------------+                                 
     | Generated: Friday, November 27, 2014 21:46:37 |                                 
     | Data: \                                       |                                
     +----------------------------------------------*;                                
           title;                                                                  
           footnote;                                                              
     *** Calculate Power ***;                                                     
     data WORK._SAMPOW_;                                                           
        do NTRT = 4;                                                              
           NDF  = NTRT - 1;                                                       
           do STD = 2.64;                                                          
              VAR = STD * STD;                                                    
              do ALPHA = 0.05;                                                    
                 TALPHA = 1 - ALPHA;                                              
                 do CSS = 32,75;                                                  
                    CSSV = CSS / VAR;                                             
                    do N = 2 to 30 by 1;                                           
                       DDF   = NTRT * (N - 1);                                    
                       FCRIT = finv(TALPHA, NDF, DDF);                            
                       NC    = N * CSSV;                                           
                       POWER = sdf('f', FCRIT, NDF, DDF, NC);                     
                       output;                                                    
                    end;                                                           
                 end;                                                             
              end;                                                                
           end;                                                                   
        end;                                                                      
        label NTRT  = "# Treatments"                                              
              CSS   = "CSS of Means"                                              
              ALPHA = "Alpha"                                                     
              POWER = "Power"                                                     
              N     = "N per Group"                                               
              STD   = "Standard Deviation";                                       
     run;                                                                         
                                                                                  
     proc format;                                                                 
        picture PFMT low -< .01  = '<.01' (noedit)                                
                     .01.99  = '9.999'                                        
                     .99 <- high = '>.99' (noedit);                               
     run;                                                                         
     proc sort data=WORK._SAMPOW_;                                                
       by CSS ;                                                                    
     run;                                                                         
     *** Print Results ***;                                                       
     proc print data=WORK._SAMPOW_ label noobs;                                   
        title1 "One-Way ANOVA";                                                   
        title2 "# Treatments = 4   Standard Deviation = 2.64   Alpha = 0.05";     
        by CSS ;                                                                   
        id CSS ;                                                                  
        var N POWER;                                                              
        format POWER PFMT.;                                                        
     run;                                                                         
     *** Create ID Variable for Plots ***;                                        
     data WORK._SAMPOW_;                                                          
        set WORK._SAMPOW_;                                                        
        PLTID = trim(put(CSS,best8.));                                            
     run;                                                                         
     *** Power Curves ***;                                                         
     goptions ctext=BLACK ftext=SWISS htext=1;                                    
                                                                                  
     proc gplot data=WORK._SAMPOW_ ;                                               
        plot POWER * N = PLTID                                                    
              / vaxis = axis1     haxis  = axis2        caxis = BLACK             
                lvref = 20                    legend = legend1                    
                lhref = 20                                                        
                frame             cframe = CXF7E1C2                               
                description = "Plot of Power vs. N per Group" name = 'POWR';      
        ** Generate multiple SYMBOL statements in case **;                        
        ** user has limited colors available           **;                        
        symbol1   i=join w=1 v=none l=1;                                          
        symbol2   i=join w=1 v=none l=2;                                          
        symbol3   i=join w=1 v=none l=3;                                          
        symbol4   i=join w=1 v=none l=4;                                          
        symbol5   i=join w=1 v=none l=5;                                          
        symbol6   i=join w=1 v=none l=6;                                          
        symbol7   i=join w=1 v=none l=7;                                          
        symbol8   i=join w=1 v=none l=8;                                          
        symbol9   i=join w=1 v=none l=9;                                          
        symbol10  i=join w=1 v=none l=10;                                         
        legend1 label=('CSS of Means' position=(middle left))                     
                frame;                                                            
        axis1   offset=(3 pct) minor=none width=1 label=(a=90 r=0)                
                order=(0 to 1 by .2);                                             
        axis2   offset=(3 pct) minor=none width=1;                                
     run;                                                                         
     quit;                                                                        
     goptions reset=all device=WIN ; 






    Resultado Programa