r geologia primeros pasos

15
R aplicado a geolog´ ıa Tom´asRe´ ategui May 12, 2015 1 Introducci´ on En geolog´ ıa se extraen datos de diferentes observaciones, por ejemplo, cono- cemos las rocas debido a una inspecci´ on visual de una muestra de mano y definimos su color, textura, tama˜ no de grano, minerales identificados, etc. La estad´ ıstica es un apoyo muy fuerte para definir nuestras observaciones, pero sobre todo es bastante usada cuando tenemos resultados de alguna campa˜ na geoqu´ ımica, donde necesitamos ordenar los datos, describirlos, car- acterizarlos y hasta modelarlos. Este articulo demuestra los m´ etodos estad´ ısticos aprendidos y su forma de trabajo con el lenguaje R, muchas de estas aplicaciones pueden realizarse con otros software estad´ ısticos, que en muchos casos son mucho mas f´aciles de aprender y aplicar. El objeto del uso de R, es probar su potencia como paquete estad´ ıstico, considerando que es libre y gratis, cosa que no sucede con los otros software. Este art´ ıculo no esta pensado como un manual o tutorial del lenguaje R, es solo una lista de comandos practicos usados para generar un analisis de datosgeol´ogicos. 2 Comandos Basicos R Para empezar a trabajar con R, es necesario saber que es un lenguaje de programaci´ on con enfasis en paquetes estad´ ısticos, por se de c´odigo abierto, es posible modificar y mejorar los paquetes disponibles. Las ordenes se ejecutan por medio de linea de comandos donde los mas basicos seran resumidos a continuaci´on: ls() : Devuelve una lista de los archivos o vectores activos en la sesion de R. getwd() : Devuelve la ruta de la carpeta de trabajo. 1

Upload: tomas-reategui-galoc

Post on 07-Nov-2015

213 views

Category:

Documents


0 download

DESCRIPTION

analisis basico con R, parte 0

TRANSCRIPT

  • R aplicado a geologa

    Tomas Reategui

    May 12, 2015

    1 Introduccion

    En geologa se extraen datos de diferentes observaciones, por ejemplo, cono-cemos las rocas debido a una inspeccion visual de una muestra de mano ydefinimos su color, textura, tamano de grano, minerales identificados, etc.

    La estadstica es un apoyo muy fuerte para definir nuestras observaciones,pero sobre todo es bastante usada cuando tenemos resultados de algunacampana geoqumica, donde necesitamos ordenar los datos, describirlos, car-acterizarlos y hasta modelarlos.

    Este articulo demuestra los metodos estadsticos aprendidos y su formade trabajo con el lenguaje R, muchas de estas aplicaciones pueden realizarsecon otros software estadsticos, que en muchos casos son mucho mas facilesde aprender y aplicar. El objeto del uso de R, es probar su potencia comopaquete estadstico, considerando que es libre y gratis, cosa que no sucedecon los otros software.

    Este artculo no esta pensado como un manual o tutorial del lenguaje R,es solo una lista de comandos practicos usados para generar un analisis dedatos geologicos.

    2 Comandos Basicos R

    Para empezar a trabajar con R, es necesario saber que es un lenguaje deprogramacion con enfasis en paquetes estadsticos, por se de codigo abierto, esposible modificar y mejorar los paquetes disponibles. Las ordenes se ejecutanpor medio de linea de comandos donde los mas basicos seran resumidos acontinuacion:

    ls() : Devuelve una lista de los archivos o vectores activos en la sesion de R.

    getwd() : Devuelve la ruta de la carpeta de trabajo.

    1

  • setwd() : Dentro los parentesis se debe introducir la ruta de la carpeta detrabajo, por ejemplo:C:/R o /home/user/R incluyendo las comil-las.

    read.csv() : Comando con el cual se permite abrir una tabla *.csv, paraotro tipo de tablas es posible usar read.table()

    3 Estadstica descriptiva

    Muy necesario para empezar a trabajar nuestros datos geologicos es resumir-los y describirlos, nuestros datos pueden estar en una tabla.

    Lo primero seria definir que variables y que tipo de variables tenemos, losresultados de los analisis qumicos son variables cuantitativas continuas.

    Posterior a nuestra identificacion de variables, se procede a describirlas yresumirlas, discriminar los datos en poblaciones y definir su distribucion.

    Existen dos formas de describir los datos: numerica y grafica. Para unanalisis numerico definiremos lo mas basico de nuestros datos: media y var-ianza.

    En primer lugar, nuestros datos deberian estar en formato *.csv paraevitar errores en formato o en la lectura.

    >datos datos

    Debemos ver la tabla con sus cabeceras,sin embargo, si tenemos muchosdatos estas saldra en diferentes secciones, si solo queremos confirmar que lascabeceras estan correctas definimos:

    >head ( datos )

    Para extraer la estadstica descriptiva de las diferentes columnas podemossimplemente escribir:

    >summary( datos )Zn ppm

    Min . : 2 . 01 s t Qu . : 48 .0Median : 77 .0Mean : 176 .53 rd Qu . : 146 .0Max . : 40000 . 0

    Donde observamos, la cabecera indicada, valor minimo, valor maximo, Primercuantil, Mediana, Media, Tercer cuantil, Valor maximo. Para hallar la vari-anza y la desviacion estandar solo escribiremos:

    2

  • > var ( datos$Zn ppm)[ 1 ] 1596400> sd ( datos$Zn ppm)[ 1 ] 1263.487

    Con los cuales ya tenemos los datos estadsticos mas resaltantes, en este casode la variable Zn ppm, pero si queremos lograr ver la distribucion de losdatos, requerimos de diagramas como el histograma o el diagrama de cajasy bigotes.

    >hist ( datos$Zn ppm)>boxplot ( datos$Zn ppm)

    Como se observa, no existe una distribucion visible, esto es facilmente no-tado en el diagrama de cajas y bigotes donde los datos estan agrupados comovalores menores, pero tenemos un valor maximo muy lejano, ademas, estoes confirmado en una rapida observacion de la tabla de resumen estadstico,podemos ver que hasta el tercer cuantil (75% de los datos), es menor a 150,pero el valor maximo es de 40000, para observar cuantos valores anomalos

    3

  • tenemos podemos verificarlo con los porcentiles.

    > quantile ( datos$Zn ppm, c ( 0 . 0 5 , . 2 , . 2 5 , . 4 , . 5 0 , . 6 , . 7 5 , . 8 , . 9 5 ) )5% 20% 25% 40% 50% 60% 75%

    25.00 44 .00 48 .00 62 .00 77 .00 94 .00 146 .0080% 95%

    170.00 446 .95

    Observamos que los valores hasta el 95% de los datos es menor a 500, asique el valor 40000 es demasiado anomalo y debera descartarse de este pro-cedimiento. Sin embargo, a frecuentemente este tipo de distribuciones deelementos qumicos, presentan un distribucion lognormal. para confirmareste tipo de distribucion:

    >hist ( log ( datos$Zn ppm) )>boxplot ( log ( datos$Zn ppm) )

    Despues de observar estos graficos podemos concluir que este mineral pre-senta una distribucion lognormal debido a que el histograma presenta una

    4

  • forma de campana simetrica una vez que los datos son convertidos a logar-itmicos, esto es confirmado con el diagrama de cajas, donde solo existe unvalor anomalo resaltante del cual se estaba mencionando.

    Hasta este punto, se ha realizado la descripcion estadistica de los datosde una variable, y se esta realizando las pruebas de la normalidad de la dis-tribucion, ademas que se ha logrado definir un valor anomalo positivo deforma grafica y numerica.

    Otras pruebas de normalidad de una variable es por medio de los graficoscuantil-cuantil, en donde se compara los valores reales, con valores esperadosde la distibucion.

    > qqnorm( ( datos$Zn ppm) )> qqline ( ( datos$Zn ppm) )>> qqnorm( log ( datos$Zn ppm) )> qqline ( log ( datos$Zn ppm) )>

    5

  • A la izquierda es observado el grafico q-q (cuantil-cuantil) de los datoscrudos, y hacia la derecha los datos normalizados logaritmicamente, como esobservado en ambos casos existe un punto en la esquina superior derecha,que es nuestro valor anomalo que debemos retirar para nuestros posterioresanalisis, ademas, es facil reconocer que existe una tendencia lineal quitandoese valor en el grafico con distribucion logaritmica, sin embargo, para definirla lognormalidad debera ser una linea recta, entonces podemos deducir quepodran existir mas de una poblacion de datos o considerarlos como puntosde quiebre de anomalas.

    La busqueda de la normalidad o lognormalidad en estos casos, es debido aque las pruebas estadisticas asumen una distribucion normal o gaussiana delo datos, con lo cual se puede describir a un conjunto de datos por su mediay su varianza (o desviacion estandar) para inferencias o modelizacion.

    4 Pruebas de Hipotesis

    Probar la hipotesis es la base de los estudios experimentales, sin embargoalgunas de sus pruebas tambien son aplicadas en estudios observacionales (elcual nos compete). En este caso, vamos a probar la hipotesis de la normal-idad de la variable, ya se ha observado mediante las pruebas de estadsticadescriptiva, que realmente la variable Zn ppm no presenta distribucion nor-mal, sin embargo a manera de ejercicio comprobaremos esta hipotesis.

    Una prueba de normalidad (no parametricas), es la prueba de Shapiro-Wilk, otra es de Kolmogorov-Smirnov1. Aceptar la hipotesis nula H0, indicala normalidad de la variable, el valor P 0.05 indicara que no hay pruebassuficientes para rechazar la normalidad de la variable.

    > shap i ro . t e s t ( datos$Zn ppm)

    ShapiroWilk normal i ty t e s t

    data : datos$Zn ppmW = 0.0472 , pvalue < 2 .2 e16

    > shap i ro . t e s t ( log ( datos$Zn ppm) )

    ShapiroWilk normal i ty t e s t

    data : log ( datos$Zn ppm)

    1Risk Cartas sobre estadisticas.pdf

    6

  • W = 0.9665 , pvalue = 1.34 e14Se observa claramente que los valores P , tanto para la data cruda y para losdatos transformados logaritmicamente, son valores menores al 0.05, lo cualrechaza la hipotesis de normalidad.

    Estas pruebas de hipotesis tambien pueden ser utiles para determinar sidos conjuntos de muestras pertencen a una misma poblacion, para lo cual serealiza la prueba-F o prueba de Fisher, la cual realiza las pruebas a travesde las varianzas de dos grupos de muestras.

    > var . t e s t ( log (Y$Cu ppm[Y$TYPE==Channel ] ) ,+ log (Y$Cu ppm[Y$TYPE==Chips ] ) )

    F t e s t to compare two va r i ance s

    data : log (Y$Cu ppm[Y$TYPE == Channel ] )and log (Y$Cu ppm[Y$TYPE == Chips ] )

    F = 1.1076 , num df = 266 , denom df = 240 , pvalue = 0.4191a l t e r n a t i v e hypothes i s : t rue r a t i o o f va r i ance s i s not equal to 195 percent con f idence i n t e r v a l :

    0 .8642408 1.4173014sample e s t imate s :r a t i o o f va r i ance s

    1 .107629

    En el ejemplo consideramos dos tipos de metodos de muestreo y las probamosen la distribucion por Cu ppm, realizando ademas una normalizacion loga-ritmica para un determinado tipo de roca (la normalidad de la distribuciones indispensable para la prueba) y el resultado indica que el valor p es mayora 0.05, por lo tanto no se rechaza la hipotesis nula que indica que el radiode las varianzas es igual a 1, y por ello se puede considerar como una solapoblacion.

    5 Analisis de Regresion

    Este es un analisis entre variables independientes y dependientes,se usa paradescribir la relacion, direccion e intensidad entre una o mas variables inde-pendientes y una variable dependiente.

    En el caso de un survey geoquimico, las variables son asumidas indepen-dientes, sin embargo podria probarse una relacion entre ellas. Las relacionespueden ser mejor trabajadas en base a otro metodos estadsticos como porejemplo el calculo de la correlacion.

    7

  • A manera de ejemplo de uso de comando, se considerara como variableindependiente Zn ppm y como variable dependiente el Pb ppm.

    > lm(Zn ppmPb ppm, data=datos )

    Call :lm( formula = Zn ppm Pb ppm, data = datos )

    C o e f f i c i e n t s :( I n t e r c e p t ) Pb ppm

    74.437 1 .091

    > summary(lm(Zn ppmPb ppm, data=datos ) )

    Call :lm( formula = Zn ppm Pb ppm, data = datos )

    Res idua l s :Min 1Q Median 3Q Max

    9280.9 38.8 17.4 34 .1 4132 .2

    C o e f f i c i e n t s :Estimate Std . Error t value Pr(>| t | )

    ( I n t e r c e p t ) 74.43665 13.22337 5 .629 2 .34 e08 Pb ppm 1.09126 0.01207 90 .376 < 2e16

    Res idual standard e r r o r : 421 .2 on 1020 degree s o f freedomMult ip l e Rsquared : 0 . 889 , Adjusted Rsquared : 0 .8889Fs t a t i s t i c : 8168 on 1 and 1020 DF, pvalue : < 2 .2 e16

    > plot ( log ( datos$Zn ppm) , log ( datos$Pb ppm) )> abline (lm( log (Zn ppm)log (Pb ppm) , data=datos ) )

    8

  • No debe utilizarse el analisis de regresion como prueba de causalidad, enrealidad no hay metodos estadsticos para probar causalidad1.

    6 Correlacion

    Es usada para cuantificar el grado de asociacion de dos variables, en el cual,nose considera independencia, ambas variables tienen el mismo estatus. Esbastante usado el coeficiente de correlacion de Pearson (r). El coefiente decorrelacion puede tener valores en el rango de 1 a 1, donde el signo indica lacorrelacion directa o inversa, por lo tanto un r = 0 senala falta de asociacion.

    El cuadrado de r (r2) es llamado coeficiente de determinacion, este mul-tiplicado por 100 es interpretado como el porcentaje de puntos relacionadospor una recta de regresion.

    Verficaremos que las variables indicadas anteriormente (Zn ppm, Pb ppm),recordemos que el plot de regresion indicaba una nube de puntos casi dis-persa, esto es debido a que se esta trabajando con los datos crudos y su

    9

  • transformacion logaritmica, sin ningun dato discriminado.

    > cor ( datos$Zn ppm, datos$Pb ppm)[ 1 ] 0 .9428593> cor ( log ( datos$Zn ppm) , log ( datos$Pb ppm) )[ 1 ] 0 .54786

    > cor . t e s t ( datos$Zn ppm, datos$Pb ppm)

    Pearson s productmoment c o r r e l a t i o n

    data : datos$Zn ppm and datos$Pb ppmt = 90 .3761 , df = 1020 , pvalue < 2 .2 e16a l t e r n a t i v e hypothes i s : t rue c o r r e l a t i o n i s not equal to 095 percent con f idence i n t e r v a l :

    0 .9356338 0.9492949sample e s t imate s :

    cor0 .9428593

    > cor . t e s t ( l og ( datos$Zn ppm) , l og ( datos$Pb ppm) )

    Pearson s productmoment c o r r e l a t i o n

    data : log ( datos$Zn ppm) and log ( datos$Pb ppm)t = 20.9155 , df = 1020 , pvalue < 2 .2 e16a l t e r n a t i v e hypothes i s : t rue c o r r e l a t i o n i s not equal to 095 percent con f idence i n t e r v a l :

    0 .5034519 0.5893811sample e s t imate s :

    cor0.54786

    En primer lugar tenemos los comando mas simples, sin embargo si reque-rimos su confidencialidad y su prueba de hipotesis, podemos usar el comandoinferior. Viendo los ejemplos, los datos crudos aparenta una correlacion muyfuerte y su transformada logartmica es menor, debido a los valores anomalosque distorsionan la prueba.

    10

  • 7 Graficos bivariados

    Son utiles para la comparacion de dos variables....

    > plot ( log ( datos$Zn ppm ) [ datos$ALT TYPE==Clay ] ,log ( datos$Pb ppm ) [ datos$ALT TYPE==Clay ] )> plot ( log ( datos$Zn ppm ) [ datos$LITHOLOGY==GRD2 ] ,log ( datos$Pb ppm ) [ datos$LITHOLOGY==GRD2 ] )

    8 Analisis de covarianza

    Se realiza el analisis segun categoras......

    > boxplot ( log ( datos$Zn ppm ) [ datos$LITHOLOGY==GRD2 ] ( datos$ALT TYPE) [ datos$LITHOLOGY==GRD2 ] )> lm

  • > summary(lm)

    Call :lm( formula = log ( datos$Zn ppm ) [ datos$LITHOLOGY == GRD2 ] ( datos$ALT TYPE) [ datos$LITHOLOGY ==

    GRD2 ] )

    Res idua l s :Min 1Q Median 3Q Max

    1.7305 0.6503 0.0565 0 .5276 1 .7442

    C o e f f i c i e n t s :Estimate

    ( I n t e r c e p t )4 .7750( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ] Clay0.3455( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ]Kf e l d s p a r1.1838( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ] S i l i c a0 .5660( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ] S i l i c aClay0.7211

    Std . Error( I n t e r c e p t )0 .0809( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ] Clay0 .2415( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ]Kf e l d s p a r0 .5397( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ] S i l i c a0 .5397( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ] S i l i c aClay0.2642

    t value( I n t e r c e p t )59 .023( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ] Clay1.431( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ]Kf e l d s p a r2.194

    12

  • ( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ] S i l i c a1 .049( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ] S i l i c aClay2.729

    Pr(>| t | )( I n t e r c e p t )< 2e16( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ] Clay0.15538( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ]Kf e l d s p a r0 .03045( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ] S i l i c a0 .29665( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ] S i l i c aClay0.00743

    ( I n t e r c e p t ) ( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ] Clay( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ]Kf e l d s p a r ( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ] S i l i c a( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ] S i l i c aClay

    Res idual standard e r r o r : 0 .7546 on 106 degree s o f freedomMult ip l e Rsquared : 0 .1201 , Adjusted Rsquared : 0 .08692Fs t a t i s t i c : 3 .618 on 4 and 106 DF, pvalue : 0 .008349

    > TukeyHSD(aov ( log ( datos$Zn ppm ) [ datos$LITHOLOGY==GRD2 ] ( datos$ALT TYPE) [ datos$LITHOLOGY==GRD2 ] ) )

    Tukey mul t ip l e comparisons o f means95% familywise con f idence l e v e l

    F i t : aov ( formula = log ( datos$Zn ppm ) [ datos$LITHOLOGY == GRD2 ] ( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ] )

    $ ( datos$ALT TYPE) [ datos$LITHOLOGY == GRD2 ] d i f f lwr

    ClayCh lo r i t e 0.3455421 1.0157060Kf e l d spa rCh lo r i t e 1.1838221 2.6815893S i l i c aCh lo r i t e 0 .5660180 0.9317492S i l i c aClayCh lo r i t e 0.7211207 1.4544156

    13

  • Kf e l d spa rClay 0.8382800 2.4481258S i l i c aClay 0.9115601 0.6982857S i l i c aClayClay 0.3755786 1.3168640S i l i c aKf e l d s p a r 1 .7498401 0.3443878S i l i c aClayKf e l d s p a r 0 .4627014 1.1744318S i l i c aClayS i l i c a 1.2871387 2.9242719

    upr p adjClayCh lo r i t e 0 .32462172 0.6092123Kf e l d spa rCh lo r i t e 0 .31394508 0.1901599S i l i c aCh lo r i t e 2 .06378518 0.8319183S i l i c aClayCh lo r i t e 0 .01217422 0.0562896Kf e l d spa rClay 0.77156579 0.6001003S i l i c aClay 2.52140589 0.5188839S i l i c aClayClay 0.56570688 0.8023340S i l i c aKf e l d s p a r 3.84406798 0.1470179S i l i c aClayKf e l d s p a r 2.09983467 0.9346255S i l i c aClayS i l i c a 0.34999457 0.1945653

    14

  • 9 Trabajar con conjuntos

    > DIO summary( (DIO$Cu ppm ) [Y$TYPE==Chips ] )

    Min . 1 s t Qu. Median Mean 3rd Qu. Max . NA s241 .0 276 .2 311 .5 311 .5 346 .8 382 .0 455

    #> l i b r a r y ( ggplot2 , psych ) comandos qp lot y d e s c r i b e respect ivamente

    15