Control de Calidad de Datos
Control de Calidad de Datos
SOBRE ANDESQC
ANDESQC se ha programado sobre R, a partir de
RClimdex-extraqc y ha sido realizado bajo el
contrato CCI-009-ATN/OC-12439-RG-2012 para
CIIFEN.
Los problemas que se intentan detectar con el QC son - entre otros - los
relacionados con errores de digitalizacin: 53 fue digitalizado en lugar de
35 en la columna de temperatura mxima
TESTS INCLUDOS EN
ANDESQC
TEST
FECHA
PRECIP
TX
TN
DTR
Outliers pentadales
Outliers gamma
Outliers espaciales
Diferencias interdiarias
Valores consecutivos
Precip. acumulada
Cadenas de Markov
Cadena Precip
Redondeo
Estratifica cada una de las variables TX, TN y precipitacin distinta de 0 por meses y
produce diagramas de caja (boxplot) de las mismas
fourboxes()
Parmetros
configurables
Caractersticas
Ejemplo de
parametrizacin
outrange
outrangeprec
OUTLIERS PENTADALES
Test de nueva implementacin
Estratifica cada una de las variables TX, TN por ventanas mviles de 5 das. Identifica como outliers para
el da central de cada ventana, aquellos valores que
Nota: los valores de referencia para cada uno de los 365 das julianos, se encentran suavizados mediante
una media mvil de 11 puntos. Existe la posibilidad de modificar la parametrizacin de la funcin para
realizar dicho filtro mediante LOESS.
pentaouts()
Parmetros
configurables
Caractersticas
Ejemplo de
parametrizacin
rangepent
OUTLIERS GAMMA
Test de nueva implementacin
precipouts()
Parmetros configurable
Caractersticas
Ejemplo parametrizacin
gaquant
numrico, cuantil de la
distribucin gamma que acta
como lmite a valores outliers.
0.99
OUTLIERS ESPACIALES.
+ Funcin auxiliar percentcor()
Test de nueva implementacin. Posiblemente, sea el test ms complejo includo en este paquete
Utilizando los datos del periodo de referencia Estratifica los datos en pntadas mviles. Para
cada una de ellas (5 x 30 valores), se extrae la distribucin emprica de probabilidad.
OUTLIERS ESPACIALES.
+ Funcin auxiliar percentcor()
percentcor()
Parmetros
configurables
ref1
ref2
Caractersticas
numrico, primer ao periodo
referencia para cmputo de
correlaciones
numrico, ao final del periodo
de referencia para el cmputo
de correlaciones,
Ejemplo
parametrizacin
1961
1990
spatialouts()
Parmetros
configurables
Caractersticas
Ejemplo
parametrizacin
perdi
0.50
tmaxmim()
Parmetros
configurables
Caractersticas
Ejemplo de
parametrizacin
carece de parmetros
configurables
Los valores etiquetados por este test no son considerados outliers o valores
sospechosos sino ERRORES.
humongous()
Parmetros configurables
Caractersticas
Ejemplo de parametrizacin
smalltx
-60
smalltn
-80
bigtx
60
bigtn
40
bigprecip
800
VALORES DUPLICADOS
Test ya implementado en extra-qc
duplivals()
Parmetros
configurables
Caractersticas
Ejemplo de
parametrizacin
carece de
parmetros
configurables
DIFERENCIAS INTERDIARIAS
Test ya implementado en extra-qc. Reprogramado para mejorar
eficiencia.
jumps()
Parmetros configurables
Caractersticas
Ejemplo de parametrizacin
maxjump
20
VALORES CONSECUTIVOS
Test ya implementado en extra-qc. Reprogramado para
mejorar eficiencia.
flatline()
Parmetros configurables
Caractersticas
Ejemplo de parametrizacin
maxflat
10
PRECIP. ACUMULADA
Test de nueva implementacin.
suspectacumprec()
Parmetros configurables
Caractersticas
Ejemplo de parametrizacin
limit
100
tolerance
10
CADENAS DE MARKOV
Test de nueva implementacin.
Se trata de un test de notable complejidad estadstica. Se basa en cadenas de Markov de dos estados
(Seco = 0; hmedo = distinto de cero) y rango 1
Las series de precipitacin se estratifican por ventanas mviles de 11 das
P00 = probabilidad dia seco tras dia seco; P01 probabilidad da lluvioso tras da seco
Con las probabilidades obtenidas, se utiliza la distribucin geomtrica para extraer de la misma la racha que
representa un determinado cuantil (configurable por el usuario)
De encontrarse una racha que exceda la determinada anteriormente, se etiquetarn como sospechosos
todos los das que la componen ms el anterior y el posterior.
markovchain()
Parmetros configurables
Caractersticas
Ejemplo de parametrizacin
targetquant
0,025
CADENAS DE PRECIPITACIN
Test de nueva implementacin.
Caractersticas
Ejemplo de parametrizacin
chapa
nmero mximo de
observaciones idnticas
(presumiblemente 0) permitidas
275
REDONDEO
Adicionalmente a la salida grfica para evaluacin cualitativa ya
presente en extraqc, se ofrece un test que etiqueta valores
sospechosos
Caractersticas
Ejemplo de parametrizacin
maxround
nmero mximo de
observaciones
FUNCIONES ADICIONALES
Adems de las funciones mencionadas previamente,
responsables de los distintos tests de control de calidad,
ANDESQC ofrece tres funciones adicionales que amplan sus
capacidades y facilitan su conexin con otras herramientas como
RClimdex o HOMER
FUNCIONALIDADES ADICIONALES
NOMBRE DE LA FUNCIN
OBJETIVO
preclean()
smartcorrection()
makemonthly()
PRECLEAN
preclean()
Parmetros configurables
Caractersticas
Ejemplo de parametrizacin
fudd
c(4,4,5,5)
bunny
c(-1,-4,-999.9,-999.9)
duck
c(0,0,-99.9,-99.9)
SMARTCORRECTION
smartcorrection()
Parmetros configurables
levcorr
Caractersticas
Ejemplo de parametrizacin
nivel de correccin
MAKEMONTHLY
makemonthly()
Parmetros configurables
Caractersticas
Ejemplo de parametrizacin
dailystats
stations.txt
percent
minyear
1901
maxyear
2014
OUTPUT
CONTENIDO
ANDESQC presenta dos salidas de su control de calidad:
I. OUTPUT GENERAL:
VISION DE CONJUNTO
VISIN GENERAL DE LA
SERIE (I): TX
VISIN GENERAL DE LA
SERIE (II): TN
VISIN GENERAL DE LA
SERIE (III): DTR
VISIN GENERAL DE LA
SERIE (IV): PRECIP
GRAFICO OUTLIERS
MENSUALES (I): PRECIP
GRAFICO OUTLIERS
MENSUALES (II): TX
GRAFICO OUTLIERS
MENSUALES (III): TN
GRAFICO OUTLIERS
MENSUALES (IV): DTR
GRAFICO VALORES
AUSENTES PRECIPITACIN
GRAFICO VALORES
AUSENTES TX
GRAFICO VALORES
AUSENTES TN
GRAFICO CONTROL DE
REDONDEO (II): TX
GRAFICO CONTROL DE
REDONDEO (III): TN
GRAFICO CONTROL DE
REDONDEO (I): PRECIP
grficos de redondeo
GRFICO-RESUMEN QC
POR PERIODOS DE 5 AOS
!
QC OUTPUT FOR 1895 - 1899 ra00047407.txt
!
TX
Pentadal-based Outliers. Upper Threshold Outpassed
year month day pc
tx
tn
1898
12 16 2.1 18.6 -10.0
1899
1 29 1.9 24.0 -9.6
Monthly-based Outliers. Upper Threshold Outpassed
year month day pc
tx
tn
1898
12 16 2.1 18.6 -10.0
1899
1 29 1.9 24.0 -9.6
TX smaller or equal than TN
year month day pc
tx tn
1896
1
8 0.4 -4.3 0
1896
2
7 0.0 -3.4 0
1896
3
6 1.0 -3.1 0
1896
12
5 0.0 -1.4 0
1897
2
8 0.0 -1.9 0
Difference between consecutive days is too large
year month day pc
tx
tn
1899
1 28 0.0 -3.0 -14.6
1899
1 29 1.9 24.0 -9.6
1899
1 30 2.7 2.2 -9.6
Spatial Outlier
year month day pc
tx tn
1898
12 16 2.1 18.6 -10
DTR Monthly-based Outliers. Upper Threshold Outpassed
year month day
pc
tx
tn
1895
12 26 0.3 -2.0 -27.9
1895
12 28 27.4 5.5 -23.3
1895
12 30 0.5 -1.0 -29.3
1896
7 17 0.0 27.9
0.0
1896
8
7 1.3 28.3
0.0
1898
12 16 2.1 18.6 -10.0
1899
1 29 1.9 24.0 -9.6
LISTADO DE VALORES
ETIQUETADOS POR
EL QC
TX
TX smaller or equal than TN
year month day pc
tx
tn
1902
1 25 4.0 -18.7 59.0
1903
5 22 2.8
0.7 1.7
1903
12 20 4.3 -5.4 0.0
1904
2 14 0.6 -7.9 -7.9
Spatial Outlier
year month day pc
tx
tn
1904
2 14 0.6 -7.9 -7.9
DTR Monthly-based Outliers. Upper Threshold Outpassed
year month day pc
tx
tn
1903
10
4 0.0 18.4 -21.3
1903
12 16 1.1 3.4 -22.6
1904
1 27 2.6 -2.4 -35.3
1904
12 18 1.4 -2.0 -40.8
DTR Monthly-based Outliers. Upper Threshold Outpassed
year month day pc
tx tn
1902
1 25 4 -18.7 59
1
Falla test que le
identifica como ERROR
Es TAMBIN
outlier ESPACIAL
5o+
Es ERROR y
outlier ESPACIAL
MASTERQC. Formato de
Fichero
Example Master QC File
station yearmonthday pc
tx
ra00047418.txt1890
0-2.9-19.6
ra00047418.txt1890
0-3.9-19.5
ra00047418.txt1890
35.1-3.4-16.2
ra00047418.txt1890
40.9-3.9 -15
ra00047418.txt1890
0-2.2-21.7
ra00047418.txt1890
0 4.9 -20
ra00047418.txt1890
0 1.4-13.9
ra00047418.txt1890
0 1.9-14.2
ra00047418.txt1890
0-0.1-14.9
El fichero masterqc contiene un las siguientes columnas: nombre fichero, ao, mes, da, precip, tx, tn + una
columna para cada uno de los controles de calidad realizados, que se abrevian con un cdigo de cuatro letras, que
se detalla en la diapositiva siguiente.
Las celdas correspondientes a los distintos tests pueden albergar slo dos valores:
Dado que cada registro (fila) es nico no solo en el fichero, sino en el conjunto de las estaciones analizadas, por
estar etiquetado por estacin, ao, mes y da, los ficheros pueden combinarse y/o integrarse en una base de datos
NOMBRE
CONTENIDO
COLUMNA
NOMBRE
CONTENIDO
STATION
Nombre estacin
PCNE
YEAR
DUPL
Fecha duplicada
MONTH
Ao
Mes
Mes
TXJU
DAY
Da
TNJU
PC
Valor precipitacin
TXSE
TX
TNSE
TN
AA
SUCU
PCUP
AB
ROPC
Sospecha redondeo PC
TXUP
AC
ROTX
Sospecha redondeo TX
TXLO
AD
ROTN
Sospecha redondeo TN
TNUP
AE
UPTX
TNLO
AF
LOTX
DTUP
AG
UPTN
DTLO
AH
LOTN
TXTN
AI
PCGA
Outlier gamma-precipitacin
TXXL
AJ
SPTX
Outlier espacial, TX
TXXS
AK
SPTN
Outlier espacial, TN
TNXL
AL
SPPC
Outlier espacial, PC
TNXS
AM
MKCH
PCXL
AN
CHAP
EJECUTANDO
ANDESQC
DIVERSAS FORMAS DE
TRABAJO
CARGANDO R Y ANDESQC
Preparar los datos y el fichero de estaciones en el
formato indicado
Cargar R
EJECUTANDO ANDESQC
Funciones ejecucin
Caractersticas
QC()
Interactiva
Configurable en
pantalla
Configurable
desde cdigo
Configurable en
llamada
qclist()
x
x
FUNCIN QC()
Para cargar la funcin QC(), simplemente, teclear
QC() desde el prompt de R, siempre despus de
establecer el directorio de datos como directorio
de trabajo y cargar el cdigo fuente
RESPUESTAS
Selecciona nivel QC: 1.- Duro (reduce falsos positivos); 2.Medio; 3.- Suave (reduce falsos negativos)
MODIFICANDO
LOS VALORES
PREDEFINIDOS
Cada valor de la variable nivelqc(), se corresponde con uno de los niveles predeterminados (1,2,3)
Modificar en el nivel deseado los parmetros que figuran en la misma y que han sido descritos en
la primera parte de esta presentacin
if(nivelqc==1){
allqc(master=phil[i,1],outrange=5,outrangeprec=9,bigtx=60,bigtn=40,smalltx=-40,smalltn=-70,bigprecip=1000,maxjump=30,maxflat=15,limit=300,tolerance=7,
maxround=20,rangpent=4,kapar=11,mode=1,gaquant=0.999,perdiff=0.75,targetquant=0.01,codelist=NA,levcorr=levcorr,sumvalpc=4,sumvaltx=4,sumvaltn=4,chapa=365)
}
if(nivelqc==2){
allqc(master=phil[i,1],outrange=4,outrangeprec=7,bigtx=55,bigtn=35,smalltx=-30,smalltn=-50,bigprecip=800,maxjump=20,maxflat=7,limit=150,tolerance=5,
maxround=10,rangpent=3.5,kapar=11,mode=1,gaquant=0.995,perdiff=0.50,targetquant=0.02,codelist=NA,levcorr=levcorr,sumvalpc=3,sumvaltx=3,sumvaltn=3,chapa=275)
}
if(nivelqc==3){
allqc(master=phil[i,1],outrange=3,outrangeprec=5,bigtx=45,bigtn=30,smalltx=-20,smalltn=-30,bigprecip=500,maxjump=15,maxflat=3,limit=75,tolerance=3,
maxround=5,rangpent=3,kapar=11,mode=1,gaquant=0.990,perdiff=0.25,targetquant=0.03,codelist=NA,levcorr=levcorr,sumvalpc=2,sumvaltx=2,sumvaltn=2,chapa=180)}
USO DE
qclist()
qclist(station=estaciones_CIIFEN.txt,bigtx=50,percent=3)
USO DE
qclist()
qclist=function(filename='stations.txt',path=getwd(),outputpath='/extraqc/',
# THIS IS THE PARAMETRIZATION SECTION FOR QCLIST. Values can be changed here or when calling qclist(). If changed here, don't
# forget to re-source the code.
outrange=3, outrangeprec=7, # IQR for monthly based outliers. Outrange is temp; outrangeprec is precip (fourboxes function)
bigtx=60,smalltx=-40,bigtn=40,smalltn=-60,bigprecip=800,codelist=NA, # values for aberrant dat. (humongous functions)
maxjump=20, # cut value for interdiurnal differences (jumps function)
maxflat = 7, # Value for the number of maximum consecutive days with the same value in temp and non zeor precip.(flatline function)
limit= 100, tolerance = 10, # Suspected acumm. prec: limit is the value to start looking; tolerance the max number of leading 0 or NA (function suspectacumprec)
maxround = 10, # Limit for values with the same 1/10th of degree or mm. (execpt 0.0 precip) (rounded function)
rangpent = 3, kapar = 5, mode=0, # rangpent is the IQR for pentadal based outliers of temperature; kapar is the window for smoothing (pentaouts function)
gaquant=0.999, # quantile for of the gamma distributtion to flag outliers of precip (function precipouts)
perdiff=0.30, # difference in percentiles for between candidate and refernce stations for the spatial outliers (spatialouts)
targetquant=0.01, # 1-target quantile in of the geometric distribution for markovian chains (function markovprecip)
levcorr=3, # level of correction for smartcorrection
precy=1, # precleans the series (0 no, yes 1)
fudd=c(4), # fudd is list of elements for preclean, 4 for precip, 5 for tx and 6 for tn
bunny=c(-1), # bunny is codes for preclean, must have the same length than fudd and applies to the element defined by fudd which is in the same position
duck=c(0), # duck is the values which replace the codes. Same conditions apply
sicorr=1, # computes correlations
ref1=1961, # first year of the reference period for the correlations
ref2=1990, # last year of the reference period for the correlations
dailystats='stations.txt', # for makemonthly
percent=5, # for makemonthly
maxyear=2014, # for makemonthly
minyear=1880, # for makemonthly
sumvaltx=3,sumvaltn=3,sumvalpc=3, # values for smartocorrection = 5, based on correcting errors + multiple fails.
hazmes=1,
chapa=275,
colnum=1,pattern='^[0-9]{6}.txt',modo=0){
!
!
#### END########################################
# ASSIGNATION OF GLOBAL VARIABLES
##############################################################################################
assign("lang",1,envir=globalenv())
############################################
CONSIDERACIONES
FINALES
ANDESQC est pensado para automatizar las tares de QC includas en RClimdex y RClimdex-extraqc.
Reconoce la importancia en su elaboracin de la famlia Climdex para QC y reconoce la necesidad de
inspeccin humana de los procesos de QC, a pesar de las opciones automticas ofrecidas.
Durante la ejecucin en este taller y posterior, es posible que aparezcan disfuncionalidades relacionadas
con las particularidades de los distintos bancos de datos aportados: condiciones climticas especiales,
valores perdidos, etc. De surgir, se intentarn solucionar a la mayor brevedad
El cdigo es plenamente funcional y ha sido probado con redes con distinto nmero de series (15 a 60) y
con longitudes muy distintas (de 40 a 120 aos). A mayor nmero de series y datos, ms fiables son
algunos procesos, especialmente el control de calidad espacial.
Lamentablemente, debido a los mltiples procesos que se realizan para cada estacin, el cdigo requiere
un elevado tiempo de computacin. Se espera una evolucin que lo reduzca.