In [1]:
# rm(list=ls())
options(OutDec = ",")
#==============================================================================
# Exercicio com dados artificiais
#==============================================================================
silence <- suppressPackageStartupMessages # Para omitir mensagens de alertas
silence(library(psych))   # Para a funcao 'describe'
silence(library(tseries)) # Para o teste de normalidade de Jarque-Bera
In [2]:
#==============================================================================
# Gerando dados artificiais (amostras aleatorias)
#==============================================================================
set.seed(3345)   # Fixa a sequencia de numeros pseudo-aleatorios
n  <- 1000       # Tamanho da amostra
df <- 10         # Graus de liberdade da distribuicao t-Student
y  <- rt(n,df)   # Dados artificiais da distribuicao t-Student
z  <- rnorm(n)   # Dados artificiais da distribuicao normal
In [3]:
#==============================================================================
# Calculando algumas estatisticas descritivas
#==============================================================================
print(describe(cbind(y,z)))      # y: Leptocurtica (caudas pesadas); z: normal
  vars    n  mean   sd median trimmed  mad   min  max range  skew kurtosis   se
y    1 1000 -0,02 1,08   0,00   -0,02 1,00 -4,33 3,69  8,02 -0,08     0,51 0,03
z    2 1000 -0,03 0,97  -0,04   -0,04 0,97 -3,52 2,76  6,28  0,06     0,07 0,03
In [4]:
#==============================================================================
# Testando a normalidade (dados da distribuicao t-Student)
#==============================================================================
alpha <- 0.05               # Nivel de significancia do teste
Sy    <- describe(y)[11]    # Assimetria
Ky    <- describe(y)[12]    # Excesso de curtose
In [5]:
#==============================================================================
# Testando a assimetria (TRUE=Rejeitar, FALSE=Nao rejeitar)
#==============================================================================
tSy   <- Sy/sqrt(6/n)       # Razao t-Student
print(c(abs(tSy) > qnorm(1-alpha/2)))
[1] FALSE
In [6]:
#==============================================================================
# Testando a curtose (TRUE=Rejeitar, FALSE=Nao rejeitar)
#==============================================================================
tKy   <- Ky/sqrt(24/n)      # Razao t-Student
print(c(abs(tKy) > qnorm(1-alpha/2)))
[1] TRUE
In [7]:
#==============================================================================
# Testando a normalidade - teste de Jarque Bera 
# (TRUE=Rejeitar, FALSE=Nao rejeitar)
#==============================================================================
JB    <- tSy^2 + tKy^2
print(c(JB  >  qchisq(1-alpha,2))) # Testanto 
print("=============")
jarque.bera.test(y)                # Verificar o valor p (mesma conclusao)
[1] TRUE
[1] "============="
	Jarque Bera Test

data:  y
X-squared = 12,079, df = 2, p-value = 0,002383
In [8]:
#==============================================================================
# Testando a normalidade (dados da distribuicao normal)
#==============================================================================
Sz    <- describe(z)[11]    # Assimetria
Kz    <- describe(z)[12]    # Excesso de curtose
In [9]:
#==============================================================================
# Testando a assimetria (TRUE=Rejeitar, FALSE=Nao rejeitar)
#==============================================================================
tSz   <- Sz/sqrt(6/n)       # Razao t-Student
print(c(abs(tSz) > qnorm(1-alpha/2)))
[1] FALSE
In [10]:
#==============================================================================
# Testando a curtose (TRUE=Rejeitar, FALSE=Nao rejeitar)
#==============================================================================
tKz   <- Kz/sqrt(24/n)      # Razao t-Student
print(c(abs(tKz) > qnorm(1-alpha/2)))
[1] FALSE
In [11]:
#==============================================================================
# Testando a normalidade - teste de Jarque Bera 
# (TRUE=Rejeitar, FALSE=Nao rejeitar)
#==============================================================================
JB    <- tSz^2 + tKz^2
print(c(JB  >  qchisq(1-alpha,2))) # Testanto 
print("=============")
jarque.bera.test(z)                # Verificar o valor p (mesma conclusao)
[1] FALSE
[1] "============="
	Jarque Bera Test

data:  z
X-squared = 0,93954, df = 2, p-value = 0,6251