lunes, 14 de diciembre de 2009

FRAGSTATS

Bibliografía utilizada

  • McGarigal Kevin. FRAGSTATS spatial pattern analysis program. http://www.umass.edu/landeco/research/fragstats/fragstats.html
  • McGarigal Kevin & Barbara J. Marks. 1995. FRAGSTATS: spatial pattern analysis program for quantifying landscape structure. Gen. Tech. Rep. PNW-GTR-351. Portland, OR: U.S. Department of Agriculture, Forest Service, Pacific Northwest Research Station. 122 p.
  • McGarigal Kevin, Sam Cushman, Claudia Regan. 2005. Quantifying Terrestrial Habitat Loss and Fragmentation: A Protocol
  • FRAGSTAT. Help
  • FRAGSTAT
  • Protocolo FRAGSTAT

FRAGSTATS es un programa de análisis del patrón espacial para mapas categóricos. Cuantifica la extensión del área y la configuración espacial de los parches dentro de un paisaje.
Esta es la interfaz del programa FRAGSTAT.
openwindow.jpg

Formato de los datos de entrada: ArcGrid, ASCII, BINARY, ERDAAS y IDRISI (no acepta vectores Arc/Info)

Niveles de las métricas: FRAGSTATS calcula tres grupos de métricas, 1) cada parche en el mosaico, 2) cada tipo de parche (clase) ene l mosaico y 3) el mosaico del paisaje como un todo. Las métricas se describen en detalle en el documento "FRAGSTATS METRICS". Además, se calcula la matriz de adyacencias (i.e. cuenta el número de celdas adyacentes entre cada combinación de pares de tipos de parches, incluyendo el tipo de adyacencias enter celdas de la misma clase), las cuales son utilizadas en variadas métricas a nivel de paisaje y de clase.

Formato de los datos de salida: FRAGSTATS crea 4 archivos de salida correspondiente a los 3 niveles de métricas y a la matriz de adyacencia, con la extensión .patch, .ckass, .land y .adj correspondiente a cada uno. En cada archivo las columnas representan las métricas seleccionadas (la 1º columna es un encabezado) y las filas representan: cada parche (para el archivo .patch), cada clase de parche (.class) y el paisaje entero (.land). Para la matriz de adyacencias tenemos una matriz de doble entrada, donde cada clase de parches tiene un ID correspondiente al valor asignado a tal clase y cada celda de la matriz contiene el valor de adyacencias de la celda para cada par combinatorio de clases.

Fondo, bordes y límites: se debe tener cuidado en diferenciar estos conceptos.
  • El límite del paisaje define el perímetro del paisaje y rodea al mosaico de parches de interés. No está dado explícitamente en la imagen, sin embargo, está definido por una linea imaginaria alrededor de las celdas extremas de valores positivos. Si el mapa contiene celdas negativas, estas se consideran fuera del paisaje de interés.
  • El fondo ("mask" o "background") es una área indefinida -exterior o interior- del paisaje de interés. El valor de fondo debe ser un entero cualquiera: se asume que los valores positivos de fondo están dentro del paisaje (incluido en el área total del paisaje y por tanto afecta a varias métricas), mientras que los negativos se encuentran fuera del paisaje de interés (no son tratados como un parche per se).
However, and this is quite tricky, interior background is in essence excluded from the total landscape area in a number of class and landscape metrics that involve summarizing patch or class metrics. For example, mean patch area is based on the average size of patches at the class or landscape level. If interior background is present, mean patch size as computed by FRAGSTATS will not equal the total landscape area divided by the number of patches, because the total landscape area includes background area not accounted for in any patch.
Similarly, the area-weighted mean of any patch metric (i.e., distribution statistics at the class and landscape level; see FRAGSTATS Metrics documentation) weights each patch by its proportional area representation. Here, the proportional area of each patch is not based on the total landscape area, but rather the sum of all patch areas, which is equivalent to the total landscape area minus interior background. (McGarigal & Marks, 1995)
  • El fondo (interior y exterior) adyacente a celdas que no son consideradas como fondo, representan los bordes que deben ser tenidos en cuenta en todas las métricas relacionadas con los bordes. El usuario especifica cómo se deben manejar los segmentos de borde en todos los cálculos relacionados con bordes (ver debajo).
  • una imagen puede incluir un borde, es decir, una franja que rodea el paisaje de interés (i.e. fuera del límite del paisaje) dentro del cual los parches fueron delineados y clasificados. Los parches del borde deben seleccionarse como el negatico de el tipo de código de parche apropiado. Proveen información sobre los tipos de adyacencias de parche para parches que forman parte del paisaje y están localizados a lo largo del borde del área de interés. Solo afectan métricas donde se considera el tipo de parche en la adyacencia (e.g. core area, edge contrast, contagion and interspersion metrics).
  • "No todos los bordes afectan de igual modo": (e.g. depende del tipo de parches adyacentes, grado de contraste estructural, orientación, etc.). Por tanto, el usuario puede especificar un archivo que contenga el peso del contraste de borde (edge contrast weigths) para cada combinación de tipos de parches (clases).
  • "Distancia a la cual los efectos de borde penetran en el parche": (edge depths) debe ser dado en unidades de distancia (metros, cualquier número >=0), para cada combinación de tipos de parches (clases). Esta distancia será eliminada del núcleo ("core") del parche y su valor es redondeado según el tamaño de la celda (e.g. si edge depths=100m y el tamaño de la celda es de 30m, entonces se redondea a una amplitud de 3 celdas -90m-). Si no proporcionamos un archivo de edge depths, las métricas de núcleo no se calculan. Si especificamos un borde, necesariamente debemos dar el edge depth.
  • "Los bordes determinan el tipo de adyacencias entre parches": si existe un borde, las adyacencias asociadas con los segmentos de borde límite del paisaje se hacen explícitamente debido al conocimiento de los tipos de parche colindantes. Si el borde no existe, entonces todos los segmentos de borde a lo largo del límite del paisaje son tratados de igual manera como fondo y las adyacencias de celdas correspondiente son ignoradas en el cálculo de estas métricas.
  • "Los bordes afectan las métricas basadas en el largo de borde": si existe un borde de paisaje, lso segmentos de borde a lo largo del límite son evaluados para determinar cuáles segmentos representan bordes "verdaderos" y cuales no.
  • Conclusión: existen 5 tipos de métricas que son afectadas por la designación del límite del paisaje, fondo y borde: !) área total del paisaje, 2) métricas del largo del borde, ·) métricas del área núcleo, 4) métricas de contrastes y 5) métricas de contagio/intercalado. El escenario ideal del paisaje que debemos introducir en el FRAGSTATS es aquel de: Celdas positivas (inside), Celdas negativas (outside), Sin fondo y Borde verdadero.

Primer paso) Seleccionar los parámetros para la corrida
Al abrir la interace de FRAGSTATS podemos seleccionar los parámetros para la corrida.
run.jpg
  • Tipo de archivo de entrada (input grid or batch file): si seleccionamos el modo "landscape" FRAGSTATS esperará que el archivo de entada sea de tipo raster, mientras que el modo "batch" el tipo de datos de entrada (Input Data Type) y atributos de grilla (Grid Attributes) estarán inactivos.
  • Tipo de dato de entrada (input data type): todos los formatos de imágen de datos deber ser grillas de enteros no-negativos. No se permite asignar un valor 0 a una clase que no sea fondo. Elegimos entre los siguientes tipos:
(1) Arc Grid created with Arc/Info.
(2) ASCII file, no header.
(3) 8 bit binary file, no header.
(4) 16 bit binary file, no header.
(5) 32 bit binary file, no header.
(6) ERDAS image files (ERDAS 7 .gis or .lan, 8 or 16 bit files; and ERDAS 8 .img, 8, 16, or 32 bit files).
(7) IDRISI image files (.rdc).
  • Seleccionar los nombres de los archivos de entrada (navegar hasta el archivo deseado) y de salida (arignar un "basename").
  • Elegir el tipo de análisis: "Standard" prodecue una salida convencional para el paisaje, pero si seleccionamos "Moving window" conducirá a un análisis de ventana móvil y una salida con la nueva grilla para cada métrica seleccionada.
  • Atributos de grilla: dependiendo del tipo de dato de entrda, necesitaremos entrar alguna información sobre la grilla.
(1) Tamaño de la celda (Cell Size, en metros). Debe ser cuadrado. Seleccionamos el valor 1.
(2) Valor de fondo (Background value): como queremos generar un escenario sin fondo, dejaremos su valor por defecto 999.
(3) Número de filas (Number of rows): Solo se necesita si trabajamos con un dato ASCII o Binary. En nuestro caso se trata de una matriz de 65 filas.
(4) Número de columnas (Number of columns): Solo se necesita si trabajamos con un dato ASCII o Binary. En nuestro caso se trata de una matriz de 65 columnas.
  • Seleccionamos el ID del parche: Es único. Si queremos crear una imágen ID de salida para asociar las salidas a nivel de parche con parches específicos. Se utiliza la siguiente convención: Nombre del archivo de entrada+4o8(según la regla de vecindario elegida)+ID.
  • Regla de vecindario para los parches (Patch Neighbor Rule): seleccionamos entre la regla de 4 (ortogonales) u 8 (ortogonales y diagonales) vecinos. Si seleccionamso la regla de 4 celdas, dos celdas de la misma clase que se tocan diagonalmente, serán consideradas como parte de parches separados. En cambio, si seleccionamos la regla de 8 celdas, será considerada como parte del mismo parche. La elección de dicha regla afectará la mayoría de las métricas de configuración, pero sin afectar las métricas de composición.
  • Propiedades del archivo de clase (Class Properties File): se debe cargar el archivo correspondiente, donde la sintaxis del archivo ASCII tiene el siguiente formato: ClassID, ClassName, Status, isBackground.
ClassID, es un valor entero que corresopnde al valor de la clase en el paisaje
ClassName, nombre descriptivo de la clase (no puede incluir comas)
Status, determina si la clase debe ser procesada y agregada en los resultados (true) o si debe ser ignorada en el archivo de salida (false).
isBackground, determina si esta clase debe ser reclasificada y tratada como fondo (true or false).
Ej:
1,habitable,true,false
2,no habitable,true,false
  • Seleccionar los niveles de las métricas que queremos calcular (Output Statistics)
Segundo paso) Seleccionar y parametrizar las métricas de parche, clase y paisaje
  1. Patch Metrics.
  2. Class Metrics.
  3. Landscape Metrics.
patchdialog.gif
area.jpg


jueves, 19 de noviembre de 2009

Ecología

Agenda

Libros

Literatura seleccionada:

* Hairston, N.G. (1989). Ecological Experiments: Purpose, Design and Execution. Cambridge Studies in Ecology, Cambridge Univ. Press, Cambridge.
* Underwood, A.J. (1997). Experiments in ecology: their logical design and interpretation using analysis of variance. Cambridge Univ. Press, Cambridge.
* Scheiner, S.M.; Gurevitch, J. (2001). Design and analysis of ecological experiments. Chapman & Hall, New York.
* Quinn, G.P.; Keough, M.J. (2002). Experimental design and data analysis for biologists. Cambridge Univ. Press, Cambridge.
* Keppel, G. (1991). Design and analysis: a researcher’s handbook. Prentice Hall, New Jersey. Nueva versión.
* Breiman, L. (1984). Classification and Regression Trees. Chapman & Hall
* Crawley, M.J. (1998). GLIM for Ecologists. Blackwell Science.
* Hastie, T.J.; Tibshirani, R.J. (1997). Generalized Additive Models. Chapman & may.
* Maxwell, S.E.; Delaney, H.D. (1990). Designing Experiments and Analyzing Data. A model comparison perspective. Wadsworth Publishing Company, Belmont, CA. Nueva versión.
* Burnham, K.P.; Anderson, D. (2003). Model Selection and Multi-Model Inference. Springer.
* Valencia, J.L.; Díaz-Llanos, F.J. (2004). Métodos de Predicción en Situaciones Límite. Ed. La Muralla, Madrid.
* Davison, A.C.; Hinkley, D.V. (2007). Bootstrap methods and their application. Cambridge Univ. Press. [link]

Curiosidades

Científicos

Novedades

Planteamientos rigurosos con modales atinados


fuente: http://www.facebook.com/notes/eduard-punset/la-delicadeza-de-darwin/158490496777

Dice Charles Darwin en su carta:
«Aunque soy un fuerte defensor de la libertad de pensamiento en todos los ámbitos, soy de la opinión, sin embargo –equivocadamente o no–, que los argumentos esgrimidos directamente contra el cristianismo y la existencia de Dios apenas tienen impacto en la gente; es mejor promover la libertad de pensamiento mediante la iluminación paulatina de la mentalidad popular que se desprende de los adelantos científicos. Es por ello que siempre me he fijado como objetivo evitar escribir sobre la religión limitándome a la ciencia».

martes, 3 de noviembre de 2009

Más libros gratis






Mathematical Modeling of Biological Systems Vol.2 Epidemiology Evolution and Ecology

Theoretical Ecology: Principles and Applications 3rdEd

Allan Berryman: Population Analysis System (PAS)

The Population Analysis System (PAS) consists of a series of microcomputer programs designed to help you construct models and analyze the dynamics of populations of organisms inhabiting variable environments.


One-species Analysis
Pressing [2] in the PAS Main Menu will access programs for modeling and analysis of populations consisting of a single species. All other species are relegated to the environment of the subject population. The programs are:
  • P1a - Analyzes and models population census (time series) data.
  • P1b - Builds logistic population models and simulates dynamics.

Two-species Analysis
Pressing [3] in the PAS Main Menu will access programs for modeling and analysis of the interaction between two covarying populations such as predators and their prey, competitors or cooperators. The programs are:
  • P2a - Analyzes census data collected at equal time intervals on two coexisting species.
  • P2b - Models and simulates the dynamics of two interacting populations.

Applications
Pressing [4] in the PAS Main Menu will access programs that use models created by other PAS routines. They are mainly self-explanatory and no user manuals are provided. Clicking on the programs below show examples of them in action:
  • P1i - Interprets the biological meaning of model parameters in P1a or P1b.
  • P1s - Evaluates the sensitivity and stability of single-species models.
  • P2p - Forecasts future population densities and probabilities of outbreak or extinction.
  • P2m - Plays management games and tests harvesting or pest control strategies.

Lessons
Pressing [5] in the Main Menu will access programs for learning the theory of population dynamics and how it can be applied to real-life data. They are mainly self-explanatory and no user manuals are provided. Clicking on the programs below show examples of them in action:
  • PL1 - Exponential growth and the limits to growth.
  • PL2 - Predator-prey interactions in time and space.
  • PL3 - Competition between species.
  • PL4 - Interaction between plants and herbivores and pest management.
  • PL5 - Predator-prey cycles and pest management.

Games
Pressing [6] in the Main Menu will access programs for studying simple artificial life systems, like cellular automata. They are mainly self-explanatory and no user manuals are provided. Clicking on the programs below show examples of them in action:
  • PG1 - The Game of Life.
  • PG2 - Logistic growth of cellular automata.
  • PG3 - Predator-prey automata.

System


Ingresar y preparar datos con R

Ingresar/Preparar los datos
  • Lectura
    • read.table
    • Datos:
      • data types are integer, numeric (real numbers), logical (TRUE or FALSE), and character (alphanumeric strings)
      • data frame is a table of data that combines vectors (columns) of different types (e.g.
        character, factor, and numeric data). hybrid of two simpler data structures: lists, which can mix arbitrary types of data but have no other structure, and matrices, which have rows and columns but usually contain only one data type (typically numeric).
  • Organización o forma
    • stack and unstack are simple but basic functions — stack converts from wide to long format and unstack from long to wide; they aren’t
    • reshape is very flexible and preserves more information than stack/unstack,
      but its syntax is tricky: if long and wide are variables holding the
      data in the examples above, then
    • library(reshape): melt, cast, and recast functions, which are similar to reshape but sometimes easier to use
  • Chequeo
    • ˆ Is there the right number of observations overall? Is there the right number of observations in each level for factors?
    • Do the summaries of the numeric variables — mean, median, etc. — look reasonable? Are the minimum and maximum values about what you expected?
    • Are there reasonable numbers of NAs in each column? If not (especially if you have extra mostly-NA columns), you may want to go back a few steps and look at using count.fields or ill=FALSE to identify rows with extra fields . . .
      • str: tells you about the structure of an R variable
      • class: prints out the class (numeric, factor, Date, logical,etc.) of a variable.
      • head: prints out the beginning of a data frame;
      • table: command for cross-tabulation
      • NAs: identificarlos
Análisis exploratorio de los datos

miércoles, 28 de octubre de 2009

SPSS: Regresión lineal

Regresión lineal Aplicaciones-Ejemplos (pincha aquí)

ORDENES REALIZADAS SOBRE EL PROGRAMA SPSS 

   En el lenguaje de órdenes, el análisis de regresión comienza con la orden REGRESSION. A continuación se excluyen los valores perdidos y se indica qué estadísticos calcular. En nuestro ejemplo concreto se piden los coeficientes (COEF), variables excluidas de la regresión (OUTS), el coeficiente de correlación (R), la tabla del análisis de la varianza (ANOVA), el análisis de colinealidad (COLLIN), tolerancia (TOL) y (TPP). Se señalan la variable dependiente (/DEPENDENT), y el método (ENTER) en que se incluyen las variables predictivas. Los residuales se identificaron según la variable x8 (ID).

REGRESSION
/MISSING LISTWISE
/STATISTICS COEFF OUTS R ANOVA COLLIN TOL ZPP
/CRITERIA=PIN(.05) POUT(.10)
/NOORIGIN
/DEPENDENT y
/METHOD=ENTER x1 x2 x3 x4 x5 x6 x7
/RESIDUALS ID( x8 ) .
 
   Posteriormente, se eliminó la multicolinealidad entre las variables, y se seleccionaron los modelo regresión lineal múltiple más adecuados, con las variables tipificadas (Zx1-Zx7) y mediante el método de pasos (/METHOD). Además de las órdenes explicadas anteriormente, en este paso se realizó: el diagrama de puntos para los residuales estandarizados en función de los valores Y tipificados predichos (/SCATTERPLOT), el histograma de los residuales estandarizados (/RESIDUALS HIST) y los gráficos para los residuales tipificados con sus respectivos outliers (/CASEWISE PLOT). Se guardaron las distancias de Cook (COOK) y los valores de Leverage (LEVER) para posteriores análisis gráficos, así como se creó un archivo con los coeficientes otorgados por el análisis (COVB).

DATASET DECLARE coeficientes1.
REGRESSION
/MISSING LISTWISE
/STATISTICS COEFF OUTS R ANOVA COLLIN TOL
/CRITERIA=PIN(.05) POUT(.10)
/NOORIGIN
/DEPENDENT y
/METHOD=STEPWISE Zx1 Zx2 Zx3 Zx4 Zx5 Zx6 Zx7
/SCATTERPLOT=(*SDRESID ,*ZPRED )
/RESIDUALS HIST(ZRESID) ID( x8 )
/CASEWISE PLOT(ZRESID) OUTLIERS(2)
/SAVE COOK LEVER
/OUTFILE=COVB(coeficientes1) .
 
   Los gráficos de los residuales estandarizados (ZRE_1) según los valores de las variables tipificadas (Zx3, Zx5 y Zx6), se generaron a partir de las siguientes órdenes. En ellas se especifican las variables incluidas (VARIABLES). A su vez, se especifica que se han de identificar los casos según el valor obtenido en la variable x8.

* Generador de gráficos.
GGRAPH
/GRAPHDATASET NAME="graphdataset" VARIABLES=Zx3 ZRE_1 x8 MISSING=
LISTWISE REPORTMISSING=NO
/GRAPHSPEC SOURCE=INLINE.
BEGIN GPL
SOURCE: s=userSource(id("graphdataset"))
DATA: Zx3=col(source(s), name("Zx3"))
DATA: ZRE_1=col(source(s), name("ZRE_1"))
DATA: x8=col(source(s), name("x8"))
GUIDE: axis(dim(1), label("Puntua(x3)"))
GUIDE: axis(dim(2), label("Standardized Residual"))
ELEMENT: point(position(Zx3*ZRE_1), label(x8))
END GPL.
 
* Generador de gráficos.
GGRAPH
/GRAPHDATASET NAME="graphdataset" VARIABLES=Zx5 ZRE_1 x8 MISSING=
LISTWISE REPORTMISSING=NO
/GRAPHSPEC SOURCE=INLINE.
BEGIN GPL
SOURCE: s=userSource(id("graphdataset"))
DATA: Zx5=col(source(s), name("Zx5"))
DATA: ZRE_1=col(source(s), name("ZRE_1"))
DATA: x8=col(source(s), name("x8"))
GUIDE: axis(dim(1), label("Puntua(x5)"))
GUIDE: axis(dim(2), label("Standardized Residual"))
ELEMENT: point(position(Zx5*ZRE_1), label(x8))
END GPL.

* Generador de gráficos.
GGRAPH
/GRAPHDATASET NAME="graphdataset" VARIABLES=Zx6 ZRE_1 x8 MISSING=
LISTWISE REPORTMISSING=NO
/GRAPHSPEC SOURCE=INLINE.
BEGIN GPL
SOURCE: s=userSource(id("graphdataset"))
DATA: Zx6=col(source(s), name("Zx6"))
DATA: ZRE_1=col(source(s), name("ZRE_1"))
DATA: x8=col(source(s), name("x8"))
GUIDE: axis(dim(1), label("Puntua(x6)"))
GUIDE: axis(dim(2), label("Standardized Residual"))
ELEMENT: point(position(Zx6*ZRE_1), label(x8))
END GPL.

El gráfico distancia de Cook en función de los valores de Leverage, se construyó mediante las siguientes órdenes. Aquí se especifican los datos utilizados (DATA) y la identificación de los casos según la variable x8 (ELEMENT). Se indican los nombres de los ejes del gráfico (GUIDE).

* Generador de gráficos.
GGRAPH
/GRAPHDATASET NAME="graphdataset" VARIABLES=LEV_1 COO_1 x8 MISSING=
LISTWISE REPORTMISSING=NO
/GRAPHSPEC SOURCE=INLINE.
BEGIN GPL
SOURCE: s=userSource(id("graphdataset"))

DATA: LEV_1=col(source(s), name("LEV_1"))
DATA: COO_1=col(source(s), name("COO_1"))
DATA: x8=col(source(s), name("x8"))
GUIDE: axis(dim(1), label("Centered Leverage Value"))
GUIDE: axis(dim(2), label("Cook's Distance"))
ELEMENT: point(position(LEV_1*COO_1), label(x8))
END GPL.

SPSS: Análisis cluster

Cluster Aplicaciones-Ejemplos

SPSS: Análisis exploratorio de datos

Análisis exploratorio Aplicaciones-Ejemplos
Cubos OLAP Aplicaciones-Ejemplos

r-project: Programación

Método de Fan, Muller y Rezucha (1962) Aplicación_Ejemplo

r-project: Inferencia estadística

Prueba para la media poblacional cuando la muestra proviene de una distribución normal con varianza desconocida. Análisis exploratorio de los datos (EDA). Prueba de igualdad de varianzas para muestras de distribuciones normales independientes. Prueba para evaluar las diferencias entre medias poblacionales cuando las muestras provienen de distribuciones normales independientes, con varianzas conocidas.
 Aplicación-Ejemplo

r-project: Estadística descriptiva

Análisis de datos "cars" Aplicación_Ejemplo

lunes, 14 de septiembre de 2009

Análisis de Correspondencia en R

Correspondencias3

Correspondencias4

Aplicaciones-Ejemplos
Aplicaciones-Ejemplos


# Correspondence Analysis
#cargar los paquetes necesarios para el análisis
library(ade4)
library(ca)
#cargar datos
datos<-read.table("correspondencias3.txt", header=TRUE)
attach(datos)
#crear una tabla de 2 vías o una tabla de contengencia
i) write.table(T,"T4.txt",sep=";")
mydata<-read.table("T4.txt",sep=";")
mydata<-table(datos,exclude=c(NA,NaN)) #Otra posibilidad ;mydata=datos
ii)mytable<-with(datos,table(categoria,consumo)) #ej:A=categoria, B=consumo; A and B are categorical factors.
prop.table(mytable, 1) # row percentages
prop.table(mytable, 2) # column percentages
> T<-mytable
> dimnames(T)<-NULL
> rownames(T)<-c("Blanca","Negra","Otra")
> colnames(T)<-c("Nor-Este","Sur-Este","Oeste")
#aplicar el análisis de correspondencia
i) acs<-dudi.coa(df=mydata,scann=FALSE,nf=3)
> acs
Duality diagramm
class: coa dudi
$call: dudi.coa(df = datos)

$nf: 2 axis-components saved
$rank: 2
eigen values: 0.04332 0.004576 #valores de la inercia
vector length mode content
1 $cw 3 numeric column weights
2 $lw 4 numeric row weights
3 $eig 2 numeric eigen values

data.frame nrow ncol content
1 $tab 4 3 modified array
2 $li 4 2 row coordinates
3 $l1 4 2 row normed scores
4 $co 3 2 column coordinates
5 $c1 3 2 column normed scores
other elements: N

ii) fit <- ca(mytable,nd=3)
> fit
Principal inertias (eigenvalues):
1 2 3
Value 0.084191 0.015423 0.008126
Percentage 78.14% 14.32% 7.54%

Rows:
1 2 3 4 5
Mass 0.130081 0.126016 0.256098 0.341463 0.146341
ChiDist 0.414477 0.426678 0.264753 0.178265 0.479517
Inertia 0.022347 0.022942 0.017951 0.010851 0.033649
Dim. 1 -1.305799 -1.423420 0.791900 -0.228650 1.534124
Dim. 2 -1.330605 -0.654353 -0.332692 1.326862 -0.767570

Columns:
1 2 3 4
Mass 0.284553 0.203252 0.337398 0.174797
ChiDist 0.291026 0.339951 0.202878 0.514458
Inertia 0.024101 0.023489 0.013887 0.046263
Dim. 1 0.855732 1.032369 -0.465832 -1.694316
Dim. 2 -1.083358 0.602050 1.091590 -1.043475

#

Aplicaciones

Análisis factorial en R

Factorial1b

Factorial 2

Aplicaciones-Ejemplos

 datos<-read.table("factorial.txt",header=TRUE,row.names=1)
attach(datos)
fac<-prcomp(datos, retx=,center=TRUE,scale.=TRUE,tol=NULL)
#En primer lugar, es importante, imprimir el resumen del an´alisis y la gr´afica de los autovalores
#(plot) para determinar el n´umero de factores
summary(fac)
plot(fac)
fac$rotation #cargas factoriales
fac$x

cargas<-matrix(0,7,3) #16=2ºdim(datos) y 4=nºfactores a retener
for (i in 1:3) cargas[,i]<-fac$rotation[,i]*fac$sdev[i]
cargas2<-varimax(cargas,normalize=T)$loadings
print(cargas2,cutoff=0.3)

comunalidad<-matrix(0,7,3)

for (i in 1:7)
{for (j in 1:3)
{comunalidad[i,1]=comunalidad[i,1]+cargas[i,j]^2
comunalidad[i,2]=1-comunalidad[i,1]}}
comunalidad

cargas3<-matrix(0,7,3)
cargas4<-matrix(0,7,3)
for (i in 1:7){
cargas3[i,]<-cargas2[i,]^2
cargas4[i,]<-cargas3[i,]/comunalidad[i,1]}
cargas3
cargas4

ajuste<-cor(datos)-cargas2%*%t(cargas2)
ajuste

biplot(fac)
par(mfrow=c(3,1))
for (i in 1:3){
plot(cargas2[,i],cargas2[,i+1])
text(cargas2[,i],cargas2[,i+1],labels=row.names(datos))}

par(mfrow=c(3,2))
for (i in 1:3){
for(j in 1:4){
{plot(fac$x[,i],fac$x[,j])}
text(fac$x[,i],fac$x[,j],labels=row.names(fac$x))}}

facmle<-vector("list",3)
for (i in 1:3) {facmle<-factanal(datos2,i)}
facmle

function (xmat, factors=NULL, cor=TRUE) {
prc <- princomp ( covmat = xmat ,cor = cor )
eig <- prc$sdev^2
if (is.null(factors))
factors <- sum ( eig >= 1 )
loadings <- prc$loadings [ , 1:factors ]
coefficients <- loadings [ , 1:factors ] %*% diag ( prc$sdev[1:factors] )
rotated <- varimax ( coefficients ) $ loadings
fct.ss <- apply( rotated, 2 , function (x) sum (x^2) )
pct.ss <- fct.ss / sum (eig)
cum.ss <- cumsum ( pct.ss )
ss <- t ( cbind ( fct.ss , pct.ss, cum.ss ) )
return ( coefficients , rotated , ss )
}

Análisis Discriminante en R

Act 2 Disc Rim in Ante

Act 2 Disc Rim in Ante 3

Aplicaciones-Ejemplos
Aplicaciones-Ejemplos

#Se puede considerar como un análisis de regresión donde la variable dependiente es categórica y tiene como categorías la etiqueta de cada uno de los grupos,
#y las variables independientes son continuas y determinan a qué grupos pertenecen los objetos.

#OBJETIVOS:
#1)Se pretende encontrar relaciones lineales entre las variables continuas que mejor discriminen en los grupos dados a los objetos.
#2)Construir una regla de decisión que asigne un objeto nuevo, que no sabemos clasificar previamente, a uno de los grupos prefijados con un cierto grado de riesgo.
# 1. Determinar si existen diferencias significativas entre los “perfiles” de un conjunto de variables de dos o m´as grupos definidos a priori.
# 2. Determinar cual de las variables independientes cuantifica mejor las diferencias entre un grupo u otro.
# 3. Establecer un procedimiento para clasificar a un individuo en base a los valores de un conjunto de variables independientes
#Es necesario considerar una serie de restricciones o supuestos
#La discriminaci´on se lleva a cabo estableciendo las ponderaciones del valor te´orico de cada variable, de tal forma que maximicen la varianza entre-grupos frente a la intra-grupos.


##################################################################
# Se carga la librería MASS
library(MASS)
> datos<-read.table("discriminante.txt", header=TRUE)

#Existen 2 clasificadores: el clasificador lineal de Fisher y el clasificador “no param´etrico” k-NN
#el clasificador lineal tiende a quedar consistentemente por encima del k-NN en estas condiciones ideales (Caso normal homoced´astico).

#############I) An´alisis discriminante lineal de Fisher: "lda" se hace un análisis discriminante lineal
> attach(datos)
> discrimi<-lda(discriminante~X1+X2+X3+X4+X5+X6+X7+X8+X9+X10+X11+X12+X13,prior=c(0.33,0.33,0.34), method="moment", tol=0.001)
#Probabilidades previas: Estos valores se utilizan para la clasificaci´on. Se puede elegir entre:
#1. Todos los grupos iguales: las probabilidades previas ser´an iguales para todos los grupos.
#2. Calcular seg´un tama˜nos de grupos
#En este caso consideramos que las probabilidades de pertenencia a cada grupo son iguales. Si quisiéramos que las probabilidades sean proporcionales al tamaño, no indicaríamos nada.

#Del mismo modo usaremos el m´etodo de los momentos

#Salidas:
#Prior probabilities of groups: tabla con las probabilidades de permanencia a cada grupo.
#Group means: las medias por grupo; con esta opci´on, tenemos que analizar, que para cada variable,
#efectivamente, hay diferencias significativas entre los valores de los tres grupos (se puede realizar
#un an´alisis de la varianza, y utilizar el mismo razonamiento que en la parte de SPSS).
#Coefficients of linear discriminants:
#los coeficientes de la funci´on discriminante lineal de Fisher se extraen mediante
> discrimi$scaling
#Esto significa que la puntuaci´on discriminante de cada caso se obtiene con la fórmula:
y = a1 x1 +a2 x2 +a3 x3 + a4 x4 + a5 x5...
#Las puntuaciones discriminantes por grupos se pueden representar gr´aficamente mediante el comando:
> plot(discrimi) #Las puntuaciones se han trasladado de forma que la media global es igual a cero.
#En muchos casos las puntuaciones van a separar correctamente los datos.
#Hay una zona en la que las dos poblaciones se solapan. Esta es la zona que incrementará el valor de las tasas de error.
#Proportion of trace: proporci´on de varianza explicada por cada eje (el primer eje ser´a mucho m´as discriminante que el segundo).
#Con la orden svd obtendremos el poder discriminate de cada funci´on, es decir, que la primera es mucho m´as discriminante que la segunda.
> discrimi$svd

#Para clasificar las observaciones se utiliza la sentencia siguiente:
> predclas <- predict(discrimi)$class
#Estudio de los errores
#Para analizarlos se suele utilizar la representaci´on gr´afica de las observaciones,representando las puntuaciones Z discriminantes y buscando los casos mal representados para su estudio.
#La tasa de error aparente se calcula de la siguiente forma:
> tea <- 1 - sum(predclas == datos[,length(datos)])/n #n es el número de casos
#Para calcular la tasa de error por validaci´on cruzada se utiliza la opci´on CV=T al llamar a la funci´on lda:
> predclas.cv <- lda(datos[,-length(datos)],datos[,length(datos)],CV=T)$class #datos[,length(datos)] refiere a la columna de categorías o clases
#CV=TRUE generates jacknifed (i.e., leave one out) predictions.
> tevc <- 1 - sum(predclas.cv == datos[,length(datos)])/n #n es el número de casos

#Validación de los resultados: Tambi´en podemos crear la matriz de clasificaci´on sin m´as que utilizar la siguiente orden:
> table(predict(discrimi)$class, discriminante) #discriminante: columna de categorías o clases de la matriz Datos
#discriminante: permite observar los individuos mal clasificados, ver toda la matriz exc la diagonal

#Realizar una predicción sobre un par de individuos. Por ejemplo:
> Datos2<-rbind(c(5.6,4.2,15.8, 1.7,0.17,1.6,2.3,6.0,4.0,5.27,0.14,216.25,26.66),c(5.45, 3.09,17.82,1.56,0.14,1.62,1.97,5.21,2.68,7.45,0.15,285.71,23.42))
> Datos21<-data.frame(Datos2) #Antes: colnames(Datos2)<-colnames(Datos[,-length(Datos)])
> discrimi2<-predict(discrimi,newdata=Datos21,prior=discrimi$prior,2)
#Obteniendo las siguientes salidas:
#discrimi2$class
#discrimi2$posterior: las probabilidades de que el individuo seleccionado (row) pertenezca a cada grupo (col)
#discrimi2$x
#Otra forma
predict(discrimi,newdata=Datos21)$class ##predice el grupo de pertenencia de los nuevos datos
> grupo <- predict(discrimi,method="plug-in")$class ##Se predicen los datos originales en los grupos segun la function discriminante
> table(grupo,Type) ##Se observa el numero de datos originales bien y mal clasificados


#Representación gráfica:
> plot(discrimi)
> pairs(discrimi) #produce los pares de gr´aficos de los datos frente a las puntuaciones discriminantes
#histogramas de las variables dependientes frente a la variable de grupos.
#En este caso habr´ýa que hacer todas las variables X1,X2, . . . ,X13 frente a la variable discriminante.
#existe un comportamiento muy diferente de la variable dependiendo del grupo al que pertenece.
##Con el fin de identificar las principales caracter´ýsticas de los datos, podemos representar la matriz de diagramas de dispersi´on:
# Panels of histograms and overlayed density plots, for 1st discriminant function
> plot(discrimi, dimen=1, type="both")
## Exploratory Graph for LDA
> library(klaR)
> partimat(formula,data=datos,method="lda") #formula: discriminante~X1+X2+X3+X4+X5+X6+X7+X8+X9+X10+X11+X12+X13
##You can also produce a scatterplot matrix with color coding by group.Ej. Scatterplot for 3 Group Problem
> pairs(mydata[c("x1","x2","x3")], main="My Title ", pch=22, bg=c("red", "yellow", "blue")[unclass(mydata$G)])

###############II) El m´etodo de k vecinos m´as pr´oximos

###############III) Comparaci´on de los resultados