In [1]:
options(OutDec = ",")
#==============================================================================
# Exercicio com dados artificiais
#==============================================================================
# Gerando dados artificiais (amostras aleatorias)
#==============================================================================
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
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 [2]:
#==============================================================================
# Calculando algumas estatisticas descritivas
#==============================================================================
print(describe(y)) # Leptocurtica (caudas pesadas)
print(describe(z))
vars n mean sd median trimmed mad min max range skew kurtosis se X1 1 1000 -0,02 1,08 0 -0,02 1 -4,33 3,69 8,02 -0,08 0,51 0,03 vars n mean sd median trimmed mad min max range skew kurtosis se X1 1 1000 -0,03 0,97 -0,04 -0,04 0,97 -3,52 2,76 6,28 0,06 0,07 0,03
In [3]:
#==============================================================================
# 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
# Testando a assimetria
tSy <- Sy/sqrt(6/n) # Razao t-Student
test1 <- abs(tSy) > qnorm(1-alpha/2) # (TRUE=Rejeitar, FALSE=Nao rejeitar)
print(tSy)
print(test1)
print("====================")
# Testando a curtose
tKy <- Ky/sqrt(24/n) # Razao t-Student
test2 <- abs(tKy) > qnorm(1-alpha/2) # (TRUE=Rejeitar, FALSE=Nao rejeitar)
print(tKy)
print(test2)
print("====================")
# Testando a normalidade - teste de Jarque Bera
JB <- tSy^2 + tKy^2
names(JB) <- "Jarque-Bera"
test3 <- JB > qchisq(1-alpha,2) # (TRUE=Rejeitar, FALSE=Nao rejeitar)
print(JB)
print(test3)
print("====================")
print(jarque.bera.test(y)) # Verificar o valor p (mesma conclusao)
print("====================")
skew
X1 -0,9796015
skew
X1 FALSE
[1] "===================="
kurtosis
X1 3,288744
kurtosis
X1 TRUE
[1] "===================="
Jarque-Bera
X1 11,77545
Jarque-Bera
X1 TRUE
[1] "===================="
Jarque Bera Test
data: y
X-squared = 12,079, df = 2, p-value = 0,002383
[1] "===================="
In [4]:
#==============================================================================
# Testando a normalidade (dados da distribuicao normal)
#==============================================================================
Sz <- describe(z)[11] # Assimetria
Kz <- describe(z)[12] # Excesso de curtose
# Testando a assimetria
tSz <- Sz/sqrt(6/n) # Razao-t
test1 <- abs(tSz) > qnorm(1-alpha/2) # (TRUE=Rejeitar, FALSE=Nao rejeitar)
print(tSz)
print(test1)
print("====================")
# Testando a curtose
tKz <- Kz/sqrt(24/n) # Razao-t
test2 <- abs(tKz) > qnorm(1-alpha/2) # (TRUE=Rejeitar, FALSE=Nao rejeitar)
print(tKz)
print(test2)
print("====================")
# Testando a normalidade - teste de Jarque Bera
JB <- tSz^2 + tKz^2
names(JB) <- "Jarque-Bera"
test3 <- JB > qchisq(1-alpha,2) # (TRUE=Rejeitar, FALSE=Nao rejeitar)
print(JB)
print(test3)
print("====================")
print(jarque.bera.test(z)) # Verificar o valor p (mesma conclusao)
print("====================")
skew
X1 0,8243693
skew
X1 FALSE
[1] "===================="
kurtosis
X1 0,4681225
kurtosis
X1 FALSE
[1] "===================="
Jarque-Bera
X1 0,8987233
Jarque-Bera
X1 FALSE
[1] "===================="
Jarque Bera Test
data: z
X-squared = 0,93954, df = 2, p-value = 0,6251
[1] "===================="