[R-br] construção de um objecto para calcular os outliers

alanarocha em sapo.pt alanarocha em sapo.pt
Sexta Maio 17 12:29:44 BRT 2013


Boa tarde estou a criar objectos para poder fazer o calculo dos  
outliers mas está a dar tudo NULL, eu queria saber porque..
dados lidos:
    2008 2009 2010 2011 2012
1    49   54   57   54   56
2    53   54   55   53   59
3    52   51   52   53   52
4    57   59   59   60   63
5    63   60   63   64   62
6    58   57   59   58   63
estatísticas:
#estatísticas descritivas
porano<-apply(dados[-c(19,23,36,37),-1],2,function(x)c(summary(x),0)[1:7])
desviopadrao<-apply(dados[-c(19,23,36,37),-1],2,sd,na.rm=TRUE)
variancia<-apply(dados[-c(19,23,36,37),-1],2,var,na.rm=TRUE)
r<-apply(dados[-c(19,23,36,37),-1],2,range,na.rm=TRUE)
diffr<-diff(r)
iqr<-apply(dados[-c(19,23,36,37),-1],2,function(x){quantile(x,na.rm=TRUE)[4]-quantile(x,na.rm=TRUE)[2]})
besq<-apply(dados[-c(19,23,36,37),-1],2,function(x){quantile(x,  
na.rm=TRUE)[2]})-1.5*iqr
bdt<-apply(dados[-c(19,23,36,37),-1],2,function(x){quantile(x,  
na.rm=TRUE)[4]})+1.5*iqr
outliers<-list()
for(i in names(dados[-c(19,23,36,37),-1])){
tmp<-dados[-c(19,23,36,37),i]
outliers[[i]]<-tmp[tmp > bdt[i] | dados[-c(19,23,36,37),i] < besq[i]]
}
row.names(diffr) <- "Diferen?a do range" # Como o resultado do comando  
diff ? uma matriz, voc? precisa colocar o nome da linha antes de  
juntar todos os resultados
rownames(porano)<-c("Mínimo","Primeiro  
Quartil","Mediana","Média","Terceiro Quartil","Máximo","NAs")
todos_resultados_dados<-rbind(porano,"Desvio padr?o"=desviopadrao,  
"Vari?ncia"=variancia, diffr, iqr,besq,bdt,outliers)
todos_resultados_dados
porano
resultado:
                    2008      2009     2010      2011     2012
Mínimo             48        52       56        55.33    58
Primeiro Quartil   4.708149  4.198439 4.554801  5.255589 4.6888
Mediana            22.16667  17.62689 20.74621  27.62121 21.98485
Média              19        19       19        22       18
Terceiro Quartil   6         5        7         6        7
Máximo             43        44.5     41.5      44       41.5
NAs                67        64.5     69.5      68       69.5
Desvio padr?o      Numeric,0 44       Numeric,0 43       Numeric,0
Vari?ncia          NULL      NULL     NULL      NULL     NULL
Diferen?a do range NULL      NULL     NULL      NULL     NULL
iqr                NULL      NULL     NULL      NULL     NULL
besq               NULL      NULL     NULL      NULL     NULL
bdt                NULL      NULL     NULL      NULL     NULL
outliers           NULL      NULL     NULL      NULL     NULL
porquê NULL?
Cumprimentos Ana Rocha



Mais detalhes sobre a lista de discussão R-br