SPSS: PROGRAMAS E ROTINAS COMPLEMENTARES (SYNTAX FILES)

 

Estatísticas Descritivas e Distribuições

 

Agrupar dados em classes (classificação) em função
do número optimal de intervalos

Antes da existência generalizada de software de análise estatística, as secções introdutórias dos manuais da disciplina descreviam pormenorizadamente os procedimentos de classificação ou agrupamento dos valores originais de uma variável.

Para além da finalidade óbvia de sumariar os dados com vista à respectiva apresentação, tais procedimentos tinham um objectivo instrumental preciso: simplificar as rotinas de cálculo manual das estatísticas descritivas.

Estando este objectivo instrumental ultrapassado (i.e., sempre que dispõe das variáveis originais na file activa, deve utilizar toda a informação disponível e calcular as estatísticas descritivas sem agrupar os dados), mantém-se a necessidade de sumariar as observações de forma conveniente e, em situações particulares, a necessidade de organizá-las em classes com vista à sua utilização em análises secundárias (v.g., normalização de pontuações brutas).

No SPSS, para além dos menus focalizados na descrição e análise exploratória de dados (Analyze/Descriptive Statistics) e na produção de estatísticas-resumo (Analyze/Reports ou Analyze/Tables), a generalidade dos módulos oferece a possibilidade de obter as médias, desvios-padrão e outras estatísticas descritivas.

Esta sintaxe agrupa os dados originais num número optimal de classes ou intervalos, determinado em função dos efectivos totais e da amplitude teórica da distribuição. Mais exactamente, seguindo as indicações de Howell (2002, p. 20), definem-se o número optimal de classes ou intervalos (NI_OPTIM):

[arredondado para o inteiro mais próximo]

em que:
     
N = Número total de observações

e a amplitude teórica da distribuição (AMP_TEOR - arredondamento para a fracção 0.5 imediatamente inferior do valor mínimo e para a fracção 0.5 imediatamente superior do valor máximo e cálculo da diferença entre estes valores).

Em seguida, a amplitude das classes (AMP_CLAS) ou intervalos é encontrada arredondando para o inteiro mais próximo a razão AMP_TEOR/NI_OPTIM. Por último, o número final de intervalos a reter (NI_FINAL) é o necessário para incluir todos os valores observados em função da amplitude teórica da distribuição e da amplitude das classes. Todos estes valores constam da parte do output intitulada Síntese das Opções de Classificação.

Por convenção, os intervalos (amplitude de classe) são unitários (1, 2, 3, etc.) e os respectivos limites situados em fracções de 0.5. Também, por convenção, os intervalos são fechados à esquerda e abertos à direita (i.e., incluem o limite inferior, mas não o superior). Se a sua variável original é uma série de números inteiros, esta convenção é irrelevante: todos os inteiros situados entre os limites fraccionais estão compreendidos no respectivo intervalo (ver Nota).

Retenha, porém, o conselho humorístico de Howell (2002):

People often became terribly worried about what we could do if a person had a score of 39.50000000 and therefore sat right on the break-point between two intervals. Don’t worry about it. First, it doesn’t happen very often. Second, you can always flip a coin. Third, there are many important things to worry about. [...] This is one of those nonissues that make people think the study of statistics is confusing, boring, or both. (p. 20)

[Só a título de curiosidade, na série gerada para o exemplo desta sintaxe, nenhum dos 1000 casos tinha uma parte decimal exactamente igual a 0.5].

No output, para além da representação gráfica (histograma e gráfico de barras), obterá as estatísticas descritivas, calculadas com os dados não agrupados e com os dados agrupados, e a distribuição de frequências (absolutas e relativas, simples e acumuladas) para os dados agrupados.

No exemplo, gera-se uma variável aleatória (VARX) com distribuição normal (média = 100 e desvio-padrão = 10) e 1000 casos. Para utilizar a sintaxe com outros dados, basta que a variável cujos valores pretende agrupar seja numérica e tenha a designação de VARX. A sintaxe deixa inalterada a sua file activa original e cria uma nova file activa com todas as variáveis listadas na parte do output designada Distribuição de Frequências.

Duas observações finais:

1)       Ainda que esta sintaxe determine o número optimal de classes, nada impede que, por razões de ordem teórica ou atendendo à própria natureza dos dados, opte por um número diferente de classes. Nesse caso, pode utilizar uma outra sintaxe, que lhe dá a liberdade de estabelecer a priori a amplitude das classes ou intervalos.

2)       Se a sua variável é uma série de inteiros e se pretende pura e simplesmente obter as respectivas frequências (o que formalmente seria equivalente a classificar os dados em classes de amplitude 1), não se esqueça que tem à sua disposição o menu Analyze / Descriptive Statistics / Frequencies... da Interface Gráfica do SPSS.

 

** Para efeitos de ilustração, estas linhas criam a variável VARX, uma

** série de 1000 números reais com distribuição normal (M=100; DP=10),

** e calculam as respectivas estatísticas descritivas.

NEW FILE.

INPUT PROGRAM.

LOOP ID=1 TO 1000.

END CASE.

END LOOP.

END FILE.

END INPUT PROGRAM.

SET SEED RANDOM.

COMPUTE VARX=RV.NORMAL(100,10).

EXECUTE.

 

** Quando tem os dados na file activa, a sintaxe começa aqui.

*** Agrupar dados em classes (número optimal de intervalos).

*** Valentim Rodrigues Alferes (Universidade de Coimbra, 2003)

*** valferes@fpce.uc.pt.

FORMATS VARX(F8.2).

SUMMARIZE/TABLES=varx/FORMAT=NOLIST TOTAL/TITLE='Dados Não Agrupados: '

+'Estatísticas Descritivas I'/CELLS=COUNT MIN MAX RANGE MEDIAN SUM MEAN SEMEAN.

SUMMARIZE/TABLES=varx/FORMAT=NOLIST TOTAL/TITLE='Dados Não Agrupados: '

+'Estatísticas Descritivas II'/CELLS=VAR STDDEV SKEW SESKEW KURT SEKURT.

GRAPH/HISTOGRAM(NORMAL)=VARX/TITLE='Histograma'.

COMPUTE K=1.

EXECUTE.

AGGREGATE/OUTFILE=FOUTX/BREAK=K/MIN=MIN(VARX)/MAX=MAX(VARX)/N=N.

MATCH FILES/FILE=*/TABLE=FOUTX/BY K.

EXECUTE.

COMPUTE NI_OPTIM=RND(SQR(N)).

COMPUTE AMP_REAL=MAX-MIN.

COMPUTE MINX=TRUNC(MIN*2)/2.

COMPUTE MAXX=TRUNC((MAX+.5-10**-10)*2)/2.

COMPUTE AMP_X=MAXX-MINX.

COMPUTE AMP_CLAS=RND(AMP_X/NI_OPTIM).

COMPUTE VAR_CEN=VARX-MINX.

COMPUTE CLASSE=TRUNC(VAR_CEN*(1/AMP_CLAS))/(1/AMP_CLAS).

EXECUTE.

RANK VARIABLES=CLASSE(A)/RANK/PRINT=NO/TIES=CONDENSE.

COMPUTE LIM_INF=RCLASSE*AMP_CLAS+MINX-AMP_CLAS.

COMPUTE LIM_SUP=LIM_INF+AMP_CLAS.

COMPUTE CLASSE=RCLASSE.

EXECUTE.

SORT CASES BY RCLASSE(A).

AGGREGATE/OUTFILE=*/BREAK=CLASSE/N=MEAN(N)/MIN=MEAN(MIN)/MAX=MEAN(MAX)

/AMP_REAL=MEAN(AMP_REAL)/AMP_CLAS=MEAN(AMP_CLAS)/NI_FINAL=MAX(RCLASSE)

/LIM_INF=MEAN(LIM_INF)/LIM_SUP=MEAN(LIM_SUP)/NI_OPTIM=MEAN(NI_OPTIM)

/AMP_TEOR=MEAN(AMP_X)/FREQ_ABS=N.

EXECUTE.

COMPUTE VCENTRAL=(LIM_INF+LIM_SUP)/2.

CREATE FCUM=CSUM(FREQ_ABS).

COMPUTE FA_ACUM=FCUM.

COMPUTE FREQ_REL=FREQ_ABS/N.

COMPUTE FR_ACUM=FA_ACUM/N.

EXECUTE.

FORMATS ALL(F8.0) AMP_REAL AMP_TEOR(F8.2) FREQ_REL FR_ACUM(F8.4) LIM_INF

LIM_SUP VCENTRAL(F8.1).

SORT CASES BY NI_FINAL(D).

SUMMARIZE/TABLES=n AMP_REAL AMP_TEOR ni_optim ni_final amp_clas/FORMAT=NOLIST

TOTAL/TITLE='Síntese das Opções de Classificação'/CELLS=FIRST.

SORT CASES BY CLASSE(A).

SUMMARIZE/TABLES=CLASSE LIM_INF LIM_SUP VCENTRAL FREQ_ABS FA_ACUM FREQ_REL

FR_ACUM/FORMAT=VALIDLIST NOCASENUM TOTAL

/TITLE='Distribuição de Frequências'/CELLS=NONE.

SAVE OUTFILE=FOUTY.

GET FILE=FOUTY/KEEP CLASSE LIM_INF LIM_SUP VCENTRAL FREQ_ABS FA_ACUM

FREQ_REL FR_ACUM.

WEIGHT BY FREQ_ABS.

SUMMARIZE/TABLES=VCENTRAL/FORMAT=NOLIST TOTAL/TITLE='Dados Agrupados: '

+'Estatísticas Descritivas I'/CELLS=COUNT MIN MAX RANGE MEDIAN SUM MEAN SEMEAN.

SUMMARIZE/TABLES=VCENTRAL/FORMAT=NOLIST TOTAL/TITLE='Dados Agrupados: '

+'Estatísticas Descritivas II'/CELLS=VAR STDDEV SKEW SESKEW KURT SEKURT.

GRAPH/BAR(SIMPLE)=PCT BY CLASSE/TITLE='Gráfico de Barras'.

Output

 
** Para efeitos de ilustração, estas linhas criam a variável VARX, uma
 

[...]

 

Dados Não Agrupados: Estatísticas Descritivas I
VARX

N

Minimum

Maximum

Range

Median

Sum

Mean

Std. Error of Mean

1000

67,55

129,44

61,89

99,2316

99536,02

99,5360

,31443

 

[...]

 

 

Dados Não Agrupados: Estatísticas Descritivas II
VARX

Variance

Std. Deviation

Skewness

Std. Error of Skewness

Kurtosis

Std. Error of Kurtosis

98,864

9,94303

,003

,077

-,107

,155

 

 
GRAPH/HISTOGRAM(NORMAL)=VARX/TITLE='Histograma'.

 

Graph

[...]

 

 

Síntese das Opções de Classificação
First

N

AMP_REAL

AMP_TEOR

NI_OPTIM

NI_FINAL RANK of CLASSE

AMP_CLAS

1000

61,89

62,00

32

31

2

 
[...]
 

 

Distribuição de Frequências

 

 

CLASSE

LIM_INF

LIM_SUP

VCENTRAL

FREQ_ABS

FA_ACUM

FREQ_REL

FR_ACUM

1

1

67,5

69,5

68,5

1

1

,0010

,0010

2

2

69,5

71,5

70,5

2

3

,0020

,0030

3

3

71,5

73,5

72,5

2

5

,0020

,0050

4

4

73,5

75,5

74,5

1

6

,0010

,0060

5

5

75,5

77,5

76,5

6

12

,0060

,0120

6

6

77,5

79,5

78,5

4

16

,0040

,0160

7

7

79,5

81,5

80,5

18

34

,0180

,0340

8

8

81,5

83,5

82,5

19

53

,0190

,0530

9

9

83,5

85,5

84,5

31

84

,0310

,0840

10

10

85,5

87,5

86,5

33

117

,0330

,1170

11

11

87,5

89,5

88,5

45

162

,0450

,1620

12

12

89,5

91,5

90,5

54

216

,0540

,2160

13

13

91,5

93,5

92,5

52

268

,0520

,2680

14

14

93,5

95,5

94,5

72

340

,0720

,3400

15

15

95,5

97,5

96,5

73

413

,0730

,4130

16

16

97,5

99,5

98,5

95

508

,0950

,5080

17

17

99,5

101,5

100,5

71

579

,0710

,5790

18

18

101,5

103,5

102,5

69

648

,0690

,6480

19

19

103,5

105,5

104,5

65

713

,0650

,7130

20

20

105,5

107,5

106,5

72

785

,0720

,7850

21

21

107,5

109,5

108,5

62

847

,0620

,8470

22

22

109,5

111,5

110,5

45

892

,0450

,8920

23

23

111,5

113,5

112,5

30

922

,0300

,9220

24

24

113,5

115,5

114,5

24

946

,0240

,9460

25

25

115,5

117,5

116,5

13

959

,0130

,9590

26

26

117,5

119,5

118,5

20

979

,0200

,9790

27

27

119,5

121,5

120,5

9

988

,0090

,9880

28

28

121,5

123,5

122,5

2

990

,0020

,9900

29

29

123,5

125,5

124,5

5

995

,0050

,9950

30

30

125,5

127,5

126,5

4

999

,0040

,9990

31

31

127,5

129,5

128,5

1

1000

,0010

1,0000

 

[...]

 

Dados Agrupados: Estatísticas Descritivas I
VCENTRAL

N

Minimum

Maximum

Range

Median

Sum

Mean

Std. Error of Mean

1000

68,5

128,5

60,0

98,500

99540,0

99,540

,3145

 

[...]

 

Dados Agrupados: Estatísticas Descritivas II
VCENTRAL

Variance

Std. Deviation

Skewness

Std. Error of Skewness

Kurtosis

Std. Error of Kurtosis

98,889

9,9443

-,001

,077

-,123

,155

 

 
GRAPH/BAR(SIMPLE)=PCT BY CLASSE/TITLE='Gráfico de Barras'.

 

Graph

Nota

Se a sua variável é uma série de inteiros, na apresentação da classificação num artigo ou relatório científico, pode perfeitamente optar pela indicação dos limites em valores inteiros. Admitindo que os dados do exemplo eram inteiros e não números com parte decimal:

Quadro 1 – Distribuição de frequências ...
[Amostra 1 / N = 1000]

Classe

Frequências
Absolutas

Frequências
Absolutas Acumuladas

Frequências
Relativas

Frequências
Relativas Acumuladas

68-69

1

1

0.0010

0.0010

70-71

2

3

0.0020

0.0030

[...]

[...]

[...]

[...]

[...]

128-129

1

1000

0.0010

1.0000

 

 

Referência

Howell, D. C. (2002). Statistical methods for psychology (5th ed.). Pacific Grove, CA: Duxbury Press.

 

NIIPS / CSEO

SYNTAX FILES

valferes@fpce.uc.pt

Última actualização: 2003-04-18