domingo, 30 de enero de 2011

Paquetes de Interés común y especifico en R....


Me he tomado la tarea de revisar la lista de paquetes (2784 paquetes!!) que actualmente se pueden utilizar en R y ser descargados por CRAN.

Los paquetes que les muestro en esta lista son básicos y  pueden ser utilizados en muchos ámbitos y en muchas disciplinas..Pero como mi formación esta interesada en la biología, también liste los paquetes que considero podrían llegar a ser de interés para muchos biólogos y estudiantes...

Los paquetes de presentan por listas de temas específicos; el nombre de cada paquete se muestra con un asterisco "*" y en el siguiente reglón, debajo del nombre se presenta la descripción de dicho paquete... 



GIS 

*AIGIS
Areal Interpolation for GIS data

*cshapes
CShapes Dataset and Utilities

*DSpat
Spatial modelling for distance sampling data

*RPyGeo
ArcGIS Geoprocessing in R via Python


PROGRAMACIÓN Y AFINES


*AMA
Anderson-Moore Algorithm

*AlgDesign
Algorithmic Experimental Design

*CGIwithR
CGI Programming in R

*DesignPatterns
Design Patterns in R to build reusable object-oriented software

*gtools
Various R programming tools

*RNCBI
The java ncbi interface to R

*Rglpk
R/GNU Linear Programming Kit Interface

*spuRs
Functions and Datasets for "Introduction to Scientific Programming and Simulation Using R"


BIOLOGÍA GENERAL

*abd
The Analysis of Biological Data

*asbio
A collection of statistical tools for biologists

*isdals
Provides data sets for Introduction to Statistical Data Analysis for the Life Sciences

*lawstat
An R package for biostatistics, public policy, and law

*qualityTools
Statistical Methods for Quality Science



MANEJO DE R

*abind
Combine multi-dimensional arrays

*anapuce
Tools for microarray data analysis

*HFWutils
csv import, csv export, garbage collection,string matching and passing by reference

*HSAUR2
A Handbook of Statistical Analyses Using R (2nd Edition)

*muRL
Mailmerge using R, LaTeX, and the Web

*packdep
Mapping dependencies among R packages

*RExcelInstaller
Integration of R and Excel, (use R in Excel, read/write XLS files)

*Rcmdr
R Commander

*RcmdrPlugin.Export
Graphically export output to LaTeX or HTML

*r2lh
R to LaTeX and HTML

*relax
relax – R Editor for Literate Analysis and lateX

*reporttools
Generate LaTeX tables of descriptive statistics

*sendmailR
send email from inside R

*xtable
Export tables to LaTeX or HTML




ESTADÍSTICA BÁSICA Y UN POQUITIN AVANZADA


*accuracy
Tools for testing and improving accuracy of statistical results

*amap
Another Multidimensional Analysis Package

*anacor
Simple and Canonical Correspondence Analysis

*BSDA
Basic Statistics and Data Analysis

*CCP
Significance Tests for Canonical Correlation Analysis (CCA)

*candisc
Generalized Canonical Discriminant Analysis

*cncaGUI
Canonical Non-symmetrical Correspondence Analysis in R

*corrperm
Permutation Tests of Correlation with Repeated Measurements

*cslogistic
Conditionally Specified Logistic Regression

*dae
Functions useful in the design and ANOVA of experiments

*descr
Descriptive statistics

*fANCOVA
Nonparametric Analysis of Covariance

*ffmanova
Fifty-fifty MANOVA

*ICSNP
Tools for Multivariate Nonparametrics

*IPSUR
Introduction to Probability and Statistics Using R

*ISwR
Introductory Statistics with R

*logregperm
Inference in Logistic Regression

*lpc
Lassoed principal components for testing significance of features

*mvShapiroTest
Generalized Shapiro-Wilk test for multivariate normality

*nortest
Tests for Normality

*PASWR
PROBABILITY and STATISTICS WITH R

*perturb
Tools for evaluating collinearity

*pvclust
Hierarchical Clustering with P-Values via Multiscale Bootstrap Resampling

*ResearchMethods
Using GUIs to help teach statistics to non-statistics students



ECOLOGÍA


*ade4
Analysis of Ecological Data : Exploratory and Euclidean methods in Environmental sciences

*ade4TkGUI
ade4 Tcl/Tk Graphical User Interface

*adehabitat
Analysis of habitat selection by animals

*analogue
Analogue and weighted averaging methods for palaeoecology

*aod
Analysis of Overdispersed Data

*BBMM
Brownian bridge movement model for estimating the movement path of an animal using discrete 
location data

*Biodem
Biodemography functions

*BiodiversityR
GUI for biodiversity and community ecology analysis

*bio.infer
Predict environmental conditions from biological observations

*blender
Analyze biotic homogenization of landscapes

*demography
Forecasting mortality, fertility, migration and population data

*dismo
Species distribution modeling

*dispmod
Dispersion models

*eco
R Package for Ecological Inference in 2x2 Tables

*ecodist
Dissimilarity-based functions for ecological analysis

*ecolMod
"A practical guide to ecological modelling - using R as a simulation platform"

*ecoreg
Ecological regression using aggregate and individual data

*fossil
Palaeoecological and Palaeogeographical Analysis Tools

*labdsv
Ordination and Multivariate Analysis for Ecology

*mefa
Multivariate Data Handling in Ecology and Biogeography

*mra
Analysis of Mark-Recapture data

*mvabund
statistical methods for analysing multivariate abundance data

*paleoMAS
Paleoecological Analysis

*pastecs
Package for Analysis of Space-Time Ecological Series

*pgirmess
Data analysis in ecology

*primer
Functions and data for the forthcoming, A Primer of Ecology with R

*RxCEcolInf
R x C Ecological Inference With Optional Incorporation of Survey Information

*rangeMapper
A package for easy generation of biodiversity (species richness) or life-history traits maps using species geographical ranges

*SDMTools
Species Distribution Modelling Tools: Tools for processing data associated with species distribution modelling exercises

*SPACECAP
A Program to Estimate Animal Abundance and Density using Spatially-Explicit Capture-Recapture

*StatDA
Statistical Analysis for Environmental Data

*sharx
Models and Data Sets for the Study of Species-Area Relationships

*simboot
Simultaneous Confidence Intervals and Adjusted p–values for Diversity Indices

*simecol
Simulation of ecological (and other) dynamic systems

*spaa
SPecies Association Analysis

*spgrass6
Interface between GRASS 6+ geographical information system and R

*vegan
Community Ecology Package



GENÉTICA


*adegenet
adegenet: a R package for the multivariate analysis of genetic markers

*allelic
A fast, unbiased and exact allelic exact test

*CGene
Causal Genetic Analysis

*cumSeg
Change point detection in genomic sequences

*DAAGbio
Data Sets and Functions, for demonstrations with expression arrays and gene sequences

*DAAGxtras
Data Sets and Functions, supplementary to DAAG

*fbati
Gene by Environment Interaction and Conditional Gene Tests for Nuclear Families

*GSA
Gene set analysis

*GeneCycle
Identification of Periodically Expressed Genes

*Geneclust
Simulation and analysis of spatial structure of population genetics data

*Geneland
Detection of structure from multilocus genetic data

*genetics
Population Genetics

*genoPlotR
Plot publication-grade gene and genome maps

*HDMD
Statistical Analysis Tools for High Dimension Molecular Data (HDMD)

*HWEBayes
Bayesian investigation of Hardy-Weinberg Equilibrium via estimation and testing

*HWEintrinsic
Objective Bayesian Testing for the Hardy-Weinberg Equilibrium Problem

*HardyWeinberg
Graphical tests for Hardy-Weinberg equilibrium

*IFP
Identifying functional polymorphisms in genetic association studies

*kernelPop
Spatially explicit population genetic simulations

*LDtests
Exact tests for Linkage Disequilibrium and Hardy-Weinberg Equilibrium

*MDR
Detect gene-gene interactions using multifactor dimensionality reduction

*onemap
Software for constructing genetic maps in outcrossing species

*pedantics
Functions to facilitate power and sensitivity analyses for genetic studies of natrual popualtions

*pegas
Population and Evolutionary Genetics Analysis System

*popgen
Statistical and Population Genetics

*QTLRel
Tools for mapping of quantitative traits of genetically related individuals

*rmetasim
An individual-based population genetic simulation environment

*seqRFLP
Simulation and visualization of restriction enzyme cutting pattern from DNA sequences



FILOGENIA


*adephylo
adephylo: exploratory analyses for the phylogenetic comparative method

*apTreeshape
Analyses of Phylogenetic Treeshape

*ape
Analyses of Phylogenetics and Evolution

*Biograph
Explore life histories

*distory
Distance Between Phylogenetic Histories

*diversitree
diversitree: comparative phylogenetic tests of diversification

*introgress
methods for analyzing introgression between divergent lineages

*laser
Likelihood Analysis of Speciation/Extinction Rates from Phylogenies

*maticce
Mapping Transitions in Continuous Character Evolution

*paleoTS
Modeling evolution in paleontological time-series

*pathClass
Classification using biological pathways as prior knowledge

*phangorn
Phylogenetic analysis in R

*phybase
Basic functions for phylogenetic analysis

*phyclust
Phylogenetic Clustering (Phyloclustering)

*phylobase
Base package for phylogenetic structures and comparative data

*phyloclim
Integrating phylogenetics and climatic niche modelling

*phylosim
R packge for simulating biological sequence evolution

*phylotools
Phylogenetic tools for ecologists

*picante
R tools for integrating phylogenies and ecology

*qpcR
Modelling and analysis of real-time PCR data

*seqinr
Biological Sequences Retrieval and Analysis

*shapes
Statistical shape analysis

*TreePar
Estimating diversification rate changes and mass extinction events in phylogenies

*TreeRank
TreeRank

*TreeSim
Simulating trees under the birth-death model

*treelet
Treelet

*treemap
Treemap visualization

*treethresh
Methods for Tree-based Local Adaptive Thresholding

*trip
Spatial analysis of animal track data



GRÁFICAS


*agsemisc
Miscellaneous plotting and utility functions

*animation
animations

*BiplotGUI
Interactive Biplots in R

*biOpsGUI
GUI for Basic image operations

*bpca
Biplot of Multivariate Data Based on Principal Components Analysis

*Cairo
R graphics device using cairo graphics library for creating high-quality bitmap (PNG, JPEG, TIFF), vector (PDF, SVG, PostScript) and display (X11 and Win32) output

*corrgram
Plot a correlogram

*DAAG
Data Analysis And Graphics data and functions

*extracat
Graphic Extensions for Categorical Data

*iplots
iPlots - interactive graphics for R

*lodplot
Plot a genome scan

*RGraphics
Data and Functions from the book R Graphics

*scatterplot3d
3D Scatter Plot

*shape
Functions for plotting graphical shapes, colors




Por ultimo, dos cositas:

La primera es que debo presentar disculpas por presentar información corta de cada paquete en ingles (ya que pues, el blog se llama "R para chibchombianos" y se supone debería escribir o explicar la mayoría de cosas en español, para la gente que no es muy afín con el ingles), pero es que el problema es que eran demasiados paquetes como uds pueden observar. De todos modos, no esta tan difícil entender la descripción de cada paquete y espero les guste.


Lo segundo es que quisiera felicitar a dos grandes amigas (SUSY ECHEVERRIA LONDOÑO Y ADRIANA MARCELA MORALES GUERRERO) por su nuevo articulo de divulgación científica titulado " cuantos somos y como no cuantificamos?" publicado en la revista- evolución, historia de la vida- de la  Asociación colombiana para el avance de la ciencias. Este trabajo tiene como tema principal los métodos de  delimitación  de especie y fue publicado en conjunto con DANIEL RAFAEL MIRANDA ESQUIVEL a quien también expreso mis felicitaciones...


Espero les guste este post y el articulo mencionado..
hasta la próxima.....



jueves, 20 de enero de 2011

Prueba de U (Mann Whitney) para muestras independientes y Pareada en R.

Después de haber visto las pruebas de T y T pareada vamos a explorar sus correspondientes pruebas no parametricas que serian la prueba de U (tambien llamada Mann Whitney ya que Fue propuesto inicialmente en 1945 por Frank Wilcoxon para muestras de igual tamaños y extendido a muestras de tamaño arbitrario como en otros sentidos por Henry B. Mann y D. R. Whitney en 1947) ver : http://es.wikipedia.org/wiki/Prueba_U_de_Mann-Whitney

Basicamente lo que pretenden estas pruebas es lo mismo que buscan las pruebas de T de student, solo que dependiendo de los datos (normalidad, homogeneidad de varianzas) se deben utilizar parametricas o no parametricas. 

Para empezar debo recordar que como siempre debo cambiar mi directorio y utilizar un directorio especifico donde tengo mis matrices de datos.

Los datos que utilizaremos en este ejemplo pertenecen a la cantidad de coliformes encontrados en dos cuerpos de agua a los cuales se les ha aplicado distintos tipos de tecnicas de cloracion, asi de esta manera "Wtra" y "Wotra" son los tratamientos y las medidas se tomaron a lo largo de los cuerpos de agua!
Para la construccion de la matriz, como ya lo he dicho en otros posts se puede hacer en excel o con un editor de texto y se guarda en formato .csv en el directorio que escojamos.
la matriz es la siguiente:

  Wtra Wotra
1    44    32
2    48    40
3    36    44
4    32    44
5    51    34
6    45    30
7    54    26
8    56    NA
9   142    NA
10  148    NA


teniendo ya nuestros datos empezamos con el analisis:


>ej5 <- read.csv("ej5.csv",header=T)
#(llamo a R el archivo que cree en formato .CSV (separado por comas) !!se puede crear en excel y guardarlo en formato .csv pero se deben cambiar los ";" por "," y los decimales deben estar separados por "." no por ",")


>ej5
#(asi puedo ver lo que tiene mi archivo ej5 y garantizar que no hayan errores en el archivo)


>attach (ej5)
#(para tomar mis columnas como objetos)


>var.test(Wtra,Wotra)
#(inspecciono mi homogeneidad de varianzas para aplicar U o T )
resultados:

  F test to compare two variances
data:  Wtra and Wotra
F = 36.2299, num df = 9, denom df = 6,
p-value = 0.0003016alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
   6.559339 156.503082
sample estimates:
ratio of variances
           36.2299



>shapiro.test(Wtra)
# (realizo prueba de normalidad para mis datos con el tratamiento "Wtra")
resultados:

 Shapiro-Wilk normality test
data:  Wtra
W = 0.6804,
p-value = 0.0005097


>shapiro.test(Wotra)
# (realizo prueba de normalidad para mis datos con el tratamiento "Wotra")
resultados:

Shapiro-Wilk normality test

data:  Wotra
W = 0.9189,
p-value = 0.4607


>wilcox.test(Wtra,Wotra,paired=FALSE,conf.level=0.95)
# (por ultimo realizo mi prueba de U para varianzas no homogeneas (sí mi prueba de homogeneidad de varianzas me lo indica). El argumento "paired=FALSE" es el que me indica que los datos provienen de muestras independientes, si mis datos provenieran del mismo cuerpo de agua a distintos tiempos utilizariamos la U pareada y el argumento a utilizar seria "paired=TRUE")
resultados:

Wilcoxon rank sum test with continuity correction
data:  Wtra and Wotra
W = 61.5, p-value = 0.01092alternative hypothesis: true location shift is not equal to 0

Mensajes de aviso perdidos
In wilcox.test.default(Wtra, Wotra, paired = FALSE, conf.level = 0.95) :
  cannot compute exact p-value with ties



>boxplot (Wtra,Wotra)
# (exploro mis datos graficamente para revisar las diferencias)

Hasta la vista!!!


lunes, 17 de enero de 2011

Prueba de T pareada en R.

A diferencia de la prueba de T para muestras independientes, la prueba de T pareada se utiliza para muestras o variables que pertenecen a un mismo individuo o entidad en estudio (por ejemplo, la altura de los niños de la guardería "gotita de gente" (viva el ICBF) antes y después de un tratamiento con bienestarina durante 6 meses). Entonces, por obvias razones las columnas deben tener el mismo numero de casillas porque esto representaría medidas antes y después de "algo".

Para explicar la T pareada utilizaremos una matriz llamada "ej4" que presenta las medidas de longitud de las alas de un ave antes y después de aplicar una vitamina. Hlength(antes) y Flength(después):

 Hlength Flength
1      142     138
2      140     136
3      144     147
4      144     139
5      142     143
6      146     141
7      149     143
8      150     145
9      142     136
10     148     146

>ej4 <- read.csv("ej4.csv",header=T)

#(leo mi matriz desde un directorio previamente escogido, tal y como se vio en el ejercicio de T para muestras independientes)


>attach (ej4)

#(tomo mis columnas como objetos para realizar el análisis)


> var.test(Hlength,Flength)

# (Realizo mi test de homogeneidad de varianzas, para saber si debo realizar una prueba de T o de U)
Resultados:

        F test to compare two variances
data:  Hlength and Flength
F = 0.7111, num df = 9, denom df = 9, p-value = 0.6197
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
 0.1766186 2.8627458
sample estimates:
ratio of variances
         0.7110656


> shapiro.test(Hlength)
#(Prueba de normalidad para mis datos antes de la vitamina)
resultados:

Shapiro-Wilk normality test
data:  Hlength
W = 0.9258, p-value = 0.408

> shapiro.test(Flength)
#(Prueba de normalidad para mis datos después de la vitamina)
resultados:

 Shapiro-Wilk normality test
data:  Flength
W = 0.9306, p-value = 0.4541

> t.test(Hlength,Flength,"two.sided",paired=TRUE)
#(realizo mi prueba de T pareada, para dos colas, el argumento "paired=TRUE" es el que le dice a R que la prueba que debe realizar es pareada de lo contrario el argumento deberia ser cambiado por "paired=FALSE")
resultados:

 Paired t-test
data:  Hlength and Flength
t = 3.4138, df = 9, p-value = 0.007703
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 1.113248 5.486752
sample estimates:
mean of the differences
                    3.3
> boxplot (Hlength,Flength)
#(visualizo mis resultados gráficamente con un diagrama de cajas y bigotes)




Y hemos terminado con nuestro análisis!!!!, es importante recomendar que se debe leer algo de fundamento teórico acerca de las pruebas que se realizan acá para que no se pierdan con los resultados y las bases de los análisis!!!

hasta la vista!

martes, 11 de enero de 2011

R 2.12.1 y Prueba de T para muestras independientes.

Primero que todo debo contarles que ya esta lista la nueva version de R (2.12.1) y es descargable desde este link, como siempre free o al gratin, como nos gusta la cerveza. http://cran.cnr.berkeley.edu/
Esta ultima version esta disponible para todos los sistemas operativos y no tiene mas de un mes de haber visto la luz.....


Por otro lado estuve pensando (porque aveces tengo ideas) y creo que lo mejor es empezar por una prueba bien basal, superbasal, ya que intente explicarle a un amigo algo basico de R y aun cree que es mas facil la calculadora de hacer cuentas del fiado de la tienda!!!. Pero de todos modos siento ahora que tuve la culpa porque trate de explicarle que es "linea de comandos" con una simple suma con los argumentos:

> a<- 4+4
> a
[1] 8

Simplemente el tomo la calculadora y le dio 4+4= 8.
Asi que ahora creo que lo que queria explicarle necesitaba hacerlo de otra manera; por ende la primer prueba que intentare precisar es la prueba de T para muestras independientes, ya que es una prueba ampliamente utilizada en muchos campos (talvez a mi amigo le sirva en su calidad de ingeniero de alimentos, aun mas de lo que le "sirven" los landmarks).

Para empezar dire que es una prueba basica que no tiene muchos requerimientos, solo necesita que los datos tengan varianzas homogeneas y que sean normales, de lo contrario la prueba que se debe aplicar no es la de T sino la prueba de U. Aunque muchas personas afirman que la prueba de T es altamente robusta y puede soportar que las varianzas no sean homogeneas y que no cumplan normalidad. En cualquier caso R provee argumentos para realizar prueba de T para varianzas no homogeneas, por lo cual no hay mucha necesidad de discutir los parametros de los datos para realizar esta prueba.

Entonces lo primero que uno debe hacer es crear su matriz de datos (uno puede crear los datos directamente en R, pero el problema es que es mucho mas facil mantenerlos como tablas .txt o en .csv como matrices cuando uno tiene gran cantidad de datos). Esto se puede hacer con excel o mas facil en documentos  de texto y se salvan con el formato deseado. Para este caso utilizaremos el formato .csv que es un archivo separado por comas y hay que aclarar que R utiliza el punto (.) como separacion de decimales y no la coma, ya que con esta el caracteriza las columnas.

entonces en un documento de texto basicamente se escriben los datos:

Pfert,Nfert
48.2,52.3
54.6,57.4
58.3,55.6
47.8,53.2
51.4,61.3
52.0,58.0
55.2,59.8
49.1,54.8
49.9,
52.6,

podemos darnos cuenta que existen dos columnas, estos datos son de unas plantas que han sido tratadas con dos tipos de fertilizantes (P y N) y lo que queremos saber es si existe diferencia entre el largo del tallo de las plantas tratadas con diferente fertilizante.

por esta razon el encabezado de las columnas es Pfert y Nfert. y los datos que se escriben hacia abajo de ellas son la longitud de los tallos de varios individuos tratados.
Al escribir esto en un documento de texto utilizando un blog de notas, geany o cualquier editor de texto simplemente se salva el archivo con el siguiente nombre

ej21.csv
indicando que el archivo esta delimitado por comas.

Una vez creado mi archivo lo pongo en un directorio determinado (podria ser hasta el escritorio) y cambio el directorio de archivos en r.
Esto se hace en windows con el mouse utilizando la barra de herramientas y dandole a cambiar el directorio. y en linux se utiliza el comando:

> setwd (aca va la direccion en donde estan mis datos sobre la cual voy a trabajar en R)

Y fuimonos.......

> ej21 <- read.csv("ej21.csv",header=T)
#(llamo a R el archivo que cree en formato .CSV (separado por comas) !!se puede crear 
en excel y guardarlo en formato .csv pero se deben cambiar los ";" por "," y 
los decimales deben estar separados por "." no por ","en cualquier directorio).
 
>objects()
#(asi puedo ver los objetos que he creado en R, que hasta este momento solo seria 
uno "ej21")
 
>ej21
#(asi puedo ver lo que tiene mi archivo ej21 y garantizar que no hayan errores en el 
archivo) 
 
>attach (ej21) 
#(para tomar mis colomnas como objetos) 
 
>boxplot(Pfert,Nfert,ylab="Largo de la planta [cm]", xlab="fertilizantes")
#(inspecciono mis datos mediante un grafico apropiado de caja y bigotes)
 
>shapiro.test(Pfert) 
# (realizo prueba de normalidad para mis datos con el fertilizante P)
mis resultados serian:

Shapiro-Wilk normality test

data:  Pfert 
W = 0.9512, p-value = 0.6833
 
>shapiro.test(Nfert) 
#(realizo prueba de normalidad para mis datos con el fertilizante N) 
mis resultados serian:

Shapiro-Wilk normality test

data:  Nfert 
W = 0.9705, p-value = 0.9021


>var.test(Pfert,Nfert) 
#(realizo una prueba de homogeneidad de varianzas, tambien llamada prueba de F para 
saber si mis varianzas son homogeneas)
resultados:

F test to compare two variances

data:  Pfert and Nfert 
F = 1.149, num df = 9, denom df = 7, p-value = 0.8744
alternative hypothesis: true ratio of variances is not equal to 1 
95 percent confidence interval:
 0.2382247 4.8224457 
sample estimates:
ratio of variances 
          1.149009 
 
> t.test(Pfert,Nfert,alternative="two.sided",var.equal=T) 
# (por ultimo realizo mi prueba de T para varianzas homogeneas (si mi prueba de 
homogeneidad de varianzas me lo indica)(el argumento "var.equal=T" o "var.equal=TRUE" 
indica que mis varianzas son homogeneas, si no lo fueran se pondria "var.equal=F" o 
"var.equal=FALSE" )
# (y el argumento (alternative="two.sided") se pone cuando quiero realizar una 
prueba de dos colas, como utilizaremos en este caso.)
resultados:

Two Sample t-test

data:  Pfert and Nfert 
t = -2.9884, df = 16, p-value = 0.008686
alternative hypothesis: true difference in means is not equal to 0 
95 percent confidence interval:
 -7.931470 -1.348530 
sample estimates:
mean of x mean of y 
    51.91     56.55 

Y listo!!!
nos pillamos!!!