Como sabemos, las medidas de dispersión y forma basan sus cálculos respecto a la media aritmética de los datos, sin embargo, suponga que ahora queremos calcular estos resúmenes numéricos respecto a la mediana. Con este antecedente, cree un R-función propia llamada descriptivos cuyos inputs son:
Los outputs que debe generar esta función son los siguientes:
Nota importante: Todos los cálculos en los que corresponda, se deben realizar dividiendo para n y no para n-1. Tenga en cuenta que tanto para la varianza como para la simetría y curtosis, no se deben usar las funciones que existen por defecto en R, puesto que estas realizan el cálculo dividiendo las sumatorias para “n-1” en lugar de “n” Un ejemplo de la salida que debe proporcionar la función es:
descriptivos<- function(x, na.rm = FALSE,central) {
if (central== "media") {
n<-length(x)-sum(is.na(x))
media<-sum(x,na.rm=na.rm)/n
VAR<-sum(((x[!is.na(x)])-mean(x,na.rm=na.rm))^2)/n
DES<-sqrt(VAR)
COE<-DES/media
bx <- boxplot(x, plot = FALSE)
ASI<-sum(((x[!is.na(x)])-mean(x,na.rm=na.rm))^3)/(n*DES^3)
CUR<-sum(((x[!is.na(x)])-mean(x,na.rm=na.rm))^4)/(n*DES^4)-3
par(mfrow=c(1, 2))
boxplot(x)
hist(x)
return(list(T.central=c("media"=media),Dispersion=c("Varianza"=VAR,
"D.estandar"=DES,
"C.V."=COE),
Posicion=c("min"=bx$stats[1],"C1"=bx$stats[2],
"C2"=bx$stats[3],"C3"=bx$stats[4],"max"=bx$stats[5],
"n.atip"=length(bx$out)),
Forma=c("Simetria"=ASI,"Curtosis"=CUR)))
}else{
if(central=="mediana" ) {
n<-length(x)-sum(is.na(x))
mediana<-median(x,na.rm = na.rm)
VAR<-sum(((x[!is.na(x)])-mediana)^2)/n
DES<-sqrt(VAR)
COE<-DES/mediana
bx <- boxplot(x, plot = FALSE)
ASI<-sum(((x[!is.na(x)])-mediana)^3)/(n*(DES^3))
CUR<-sum(((x[!is.na(x)])-mediana)^4)/(n*(DES^4))-3
return(list(T.central=c("mediana"=mediana),
Dispersion=c("Varianza"=VAR
,"D.estandar"=DES,"C.V."=COE),
Posicion=c("min"=bx$stats[1],"C1"=bx$stats[2],
"C2"=bx$stats[3],"C3"=bx$stats[4],
"max"=bx$stats[5],"n.atip"=length(bx$out)),
Forma=c("Simetria"=ASI,"Curtosis"=CUR)))
} else{
warning("ingrese solo la palabra media o mediana")
}
}
}
data<- c(1.60, 1.25, 0.19, 0.88, 2.16, 1.72, 1.19, 1.14, 0.19, 1.34, 2.05,
0.58, 0.48, 1.06, 3.24, 1.24, NA, 1.33, 1.21, 5.09, 0.76, NA)
descriptivos(x=data,na.rm = FALSE,central = "media")
## $T.central
## media
## NA
##
## $Dispersion
## Varianza D.estandar C.V.
## NA NA NA
##
## $Posicion
## min C1 C2 C3 max n.atip
## 0.190 0.820 1.225 1.660 2.160 2.000
##
## $Forma
## Simetria Curtosis
## NA NA
descriptivos(x=data,na.rm = TRUE,central = "media")
## $T.central
## media
## 1.435
##
## $Dispersion
## Varianza D.estandar C.V.
## 1.1783350 1.0855114 0.7564539
##
## $Posicion
## min C1 C2 C3 max n.atip
## 0.190 0.820 1.225 1.660 2.160 2.000
##
## $Forma
## Simetria Curtosis
## 1.930854 4.058655
descriptivos(x=data,na.rm = TRUE,central = "mediana")
## $T.central
## mediana
## 1.225
##
## $Dispersion
## Varianza D.estandar C.V.
## 1.2224350 1.1056378 0.9025615
##
## $Posicion
## min C1 C2 C3 max n.atip
## 0.190 0.820 1.225 1.660 2.160 2.000
##
## $Forma
## Simetria Curtosis
## 2.383420 5.156789
descriptivos(x=data,na.rm = TRUE,central = "moda")
## Warning in descriptivos(x = data, na.rm = TRUE, central = "moda"): ingrese solo
## la palabra media o mediana