La relación longitud-peso se usó inicialmente para obtener información sobre la condición de crecimiento de los peces y para determinar si el crecimiento somático era isométrico(el peso incrementa en forma proporcional a la longitud) o alométrico (el peso no se incrementa en forma proporcional a la longitud) (Le Cren, 1951). Jellyman et al. (2013) considera que la importancia de esta relación es información fundamental para los científicos que intentan deducir la estructura de edad, calcular las tasas de crecimiento, modelar bioenergéticas o cuantificar algún otro aspecto de la dinámica de la población de peces. Se requieren “relaciones -longitud” para: 1) estimar el peso con base en la longitud de los peces cuando el tiempo o las limitaciones técnicas impiden su registro en campo; 2) utilizar en modelos de evaluación de stock al convertir el crecimiento en longitud al crecimiento en peso; 3) estimar la biomasa de una comunidad de peces utilizando solo datos de talla y especies; 4) estimar el factor de condición del pez; y 5) hacer comparaciones de las características del ciclo de vida de los peces. Modelar la relación entre la longitud y el peso de una especie de pez se consideró hace muchos años un análisis de rutina, para el cual los resultados no justificaban publicación o se había menospreciado por tener poco valor, Sin embargo, la revisión de métodos y el metanálisis de un una gran cantidad de relaciones longitud-peso por Froese (2006) demostraron que un análisis sintético de las relaciones longitud-peso para las especies pueden proporcionar información importante sobre la ecología de esa especie. Las funciones usadas en esta sección requieren de los siguientes paquetes: Los datos requeridos para evaluar la relación longitud-peso son: la longitud (medida en cm) y el peso (medido en gramos) de los individuos. La medida de longitud puede ser la Longitud total (Lt), Longitud estándar (Ls) o Longitud horquilla (Lh), mientras que el peso del pez puede ser humedo o seco, entero o eviscerado. Aunque información sobre fechas, áreas de pesca, sexo o métodos de captura entre otros no intervienen en la estimación de la relación Longitud-peso se recomienda que tambien se registre (Froese, 2006). Información detallada sobre tamaños de muestra, rango de tallas y otras consideraciones a tener en cuenta la pueden ampliar en Froese et al 2011 y Froese 2006. En este modulo utilizaremos información de longitud total (Lt) en cm y el peso total(Pt) en g de la especie Lutjanus synagris capturada en el Caribe colombiano y cuyos registros se obtuvieron del Sistema Estadístico Pesquero Colombiano-SEPEC. . Hay basicamente dos razones por las cuales es inapropiado modelar la relación talla peso a traves de una regresion líneal simple. La primera es que la relación entre esas dos variables es a menudo no-líneal. Esta no linealidad es debida a que la mayoría de los peces agregan una cantidad lineal de longitud con el paso del tiempo, mientras que la masa o volumen es tridimensional. La segunda es que la variabilidad en el peso de los peces se incrementa con la longitud, es decir, que la variabilidad del peso es menor en peces pequeños. Las dos caracteristicas mencionadas desafortunadamente violan los supuestos de linealidad y homocedasticidad de la regresión, por lo que se infiere que la relación talla-peso de la mayoria de especies seguira una relación de tipo potencial(Le Cren 1951, Froese 2006) En donde \(\alpha\) (intercepto) y \(\beta\) (pendiente) son las constantes a ser estimadas, e(euler) y \(\epsilon\) es el error multiplicativo del i-esimo pez. El modelo (1) puede ser tranformado aplicando logaritmo en ambos terminos de la ecuación con y=log(Pt), x=log(Lt), pendiente \(\beta\) e intercepto =log(\(\alpha\)), de esta forma se linealiza la ecuación (1), y además esta transformación tiene un beneficio adicional pues hace que los errores sean aditivos y estabilizar las variaciones del modelo. Con esta linealización y estabilización los métodos habituales de regresión líneal pueden ser ahora utilizados. Antes de comenzar la regresión del modelo de longitud-peso, el archivo de datos debe ser “limpiado” eliminando todos los registros donde faltaban las medidas de longitud o peso. Esta limpieza se logra con El ajuste de un modelo lineal a los datos de talla-peso transformados logarítmicos requiere la construcción de dos nuevas variables logPt y LogLt. Estos valores se anexan al archivo de datos y la funcion El modelo transformado (2), se ajusta con la funcion La información resumida básica se extrae al enviar el objeto A partir de este resumen se observa que la variabilidad del peso es explicada en un 97.7 % (R2=0.977) por la longitud total,la regresión es altamente significativa (F1,1955=83440, p-valor<0.00001) y tanto la pendiente(t-value=288.9,pvalor<0.0001) como el intercepto(t-value=-119.9,pvalor<0.0001) son estadísticamente diferentes de cero. La ecuación de la línea que mejor se ajusta es Tal y como se menciono anteriormente si un investigador esta interesado en predecir el peso con base en la longitud puede usar el modelo ajustado para encontrarlo. Alternativamente, el peso observado de un pez se puede comparar con un peso predicho para determinar si tiene un peso promedio superior o inferior (ver Factor de condición). Los valores de la variable de respuesta (es decir, log(Pt)) se predicen a partir de modelo ajustado utilizando El factor de corrección puede ser calculado con la funcion Este modelo predice que el peso de promedio de un L. sinagrys de 10 cm es de 16,06 g. Los intervalos de confianza para la media o los intervalos de predicción para un valor individual de la variable de respuesta pronosticada a partir del modelo ajusto se determinan con la función Se observa que con una confianza del 95 % el peso promedio de un L. sinagrys de 10 cm estará entren 15.79 y 16.33 cm, mientras que con una confianza del 95 % un individuo de 10 cm pesará entre 13.18 y 19.56 cm. Para construir un gráfico utilizamos la función . Cuando un pez exhibe un crecimiento isométrico (b=3) su peso incrementa en forma proporcional a su longitud, cuando esto no sucede se puede presentar crecimiento alométrico que puede ser alométrico negativo(b<3) cuyo patrón de crecimiento corresponde a aquellas especies en la que individuos de mayor talla son más elongados que los pequeños (Froese 2006) o crecimiento alométríco positivo(b>3) que es acorde con una tendencia de aumento progresivo de la robustez desde formas tempranas más elongadas o delgadas, por lo cual hay una mayor ganancia proporcional en peso que en longitud, fenómeno que es común entre peces (Froese 2006). Se puede obtener una prueba de si los peces en una población exhiben crecimiento isométrico o no mediante las siguientes hipótesis estadísticas: Cuyo estadístico de prueba es: En R se puede utilizar la función Un número que indica qué término usar en la prueba de hipótesis (1 para el intercepto, 2 para la pendiente), Un número que indica el valor específico en la hipótesis nula (es decir, \(\beta\)0), y Una cadena de caracteres que indica la dirección de la hipótesis alternativa (“less”, “greater” o “two.sided”(por defecto)). La prueba de hipótesis e intervalo de confianza para la pendiente se realiza de la siguiente forma: Estos resultados muestran que se rechaza la hipótesis nula(t=-21.19, df=1955, p-valor=6e-90), lo que significa que L. sinagrys presenta un crecimiento alometrico negativo (con una confianza del 95 % la pendiente se encuentra entre 2.775 y 2.805). La regresión líneal simple asume que los datos pueden modelarse a teaves de una línea recta y que los erores son independientes, estan normalmente distribuidos y tienen varianza constante (homocedasticos). Por ejemplo, los errores probablemente no son independientes si se realizan múltiples mediciones del mismo individuo a traves del tiempo. Los errores dependientes generalmente no son un problema con los datos de longitud de peso; por lo tanto, esta suposición no la abordaremos aquí. Las evaluaciones de los supuestos de linealidad, normalidad y varianza constante requieren el cálculo de dos valores relacionados con las cantidades ajustadas y los residuales. Los valores ajustados son valores de la variable de respuesta predicha a partir del modelo de regresión lineal ajustado para cada individuo. Residuales son la diferencia entre el valor observado de la variable de respuesta y el valor ajustado para cada individuo. Los individuos con residuos lejos de cero no están bien representados por el modelo ajustado. Los residuos y los valores ajustados se extraen del objeto Froese, R. (2006). Cube law, condition factor and weight-length relationships: history, meta-analysis and recommendations. Journal of applied ichthyology, 22(4), 241-253. Froese, R., Tsikliras, A. C., & Stergiou, K. I. (2011). Editorial note on weight-length relations of fishes. Acta Ichthyologica et Piscatoria, 41(4), 261-263 Jellyman, P. G., Booker, D. J., Crow, S. K., and Jellyman, D. J. (2013).Does one size fit all? An evaluation of length-weight relationships for New 2893 Zealand’s freshwater fish species. New Zealand Journal of Marine and Fresh water Research, 47:450-468 Le Cren, E. D. (1951). The length-weight relationship and seasonal cycle in gonad weight and condition in the perch (Perca fluviatilis). The Journal of Animal Ecology, 201-219. Sprugel, D. G. (1983). Correcting for bias in log-transformed allometric equations. Ecology, 64:209-210.Paquetes requeridos
library(FSA)
## ## FSA v0.8.17. See citation('FSA') if used in publication.
## ## Run fishR() for related website and fishR('IFAR') for related book.
library(car)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following object is masked from 'package:car':
##
## recode
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(magrittr)
library(readxl)
Datos requeridos
L_synagris <- read_excel("~/JAVIER DE LA HOZ/L.synagris.xlsx")
attach(L_synagris)
L_synagris
Modelo Longitud-Peso
(1)
(2)
Ajuste del Modelo de regresión
L_synagris2 <- Subset(L_synagris,!is.na(Pt) & !is.na(Lt))
select
nos permite extraer solo esas dos variables como sigue a continuación :L_synagris2<-mutate(L_synagris2,logPt=log(Pt),logLt=log(Lt)) %>%
select(logPt,logLt,Sexo)
headtail(L_synagris2)
lm()
, cuyos argumentos son : una formula de la forma y ~ x
seguido por el argumento data
que el archivo a dataframe donde se pueden encontrar las variables creadas. El resultado debe guardarse en un objeto para permitir la extracción de información de resumen. El modelo se ajusta con:lm1 <- lm(logPt~logLt,data=L_synagris2)
lm ()
guardado a la funcion summary ()
de la siguiente manera :summary(lm1)
##
## Call:
## lm(formula = logPt ~ logLt, data = L_synagris2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.38114 -0.05937 0.00082 0.05877 0.39787
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -3.664008 0.030559 -119.9 <2e-16 ***
## logLt 2.794881 0.009676 288.9 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.1001 on 1955 degrees of freedom
## Multiple R-squared: 0.9771, Adjusted R-squared: 0.9771
## F-statistic: 8.344e+04 on 1 and 1955 DF, p-value: < 2.2e-16
log (Pt) = -3.664 + 2.794 * log (Lt)
en la escala transformada y Pt = 0.02563Lt2.794 en la escala original, note que \(\alpha\)=eintercepto=e-3.664Predicción y visualización del ajuste
predict ()
con el objeto lm()
como primer argumento. El segundo argumento es un data.frame que contiene los valores de la variable independiente variable (es decir, log(L)) que se utilizará para predecir los valores de la variable de respuesta. Este data.frame está construido con data.frame ()
donde el primer argumento es exactamente el mismo nombre que la variable explicativa en el conjunto de objetos lm()
igual a un vector de valores en el cual hacer predicciones. Este nuevo data.frame es entonces el segundo argumento para lm()
. Por ejemplo, el código a continuación se usa para predecir el peso del logaritmo para 10 y 50 cm. Los pesos del logaritmo predichos se transforman de nuevo a la escala original utilizando el vector de valores como el exponente para la base utilizada en los logaritmos.Sin embargo, los valores que se transforman de nuevo desde la escala de registro suelen ser parciales. Una corrección común para las ecuaciones alométricas (Sprugel 1983) es multiplicar el valor de la transformación posterior por un factor de correción.lons <- c(10,50) # vector de longitudes
nd <- data.frame(logLt=log(lons)) # df de log(longitudes)
( plogW <- predict(lm1,nd) ) # Predicción de log(pesos)
## 1 2
## 2.771444 7.269632
logbtcf()
del paquete FSA cuyos argumentos son el objeto lm()
y la base del logaritmo usado como segundo argumento.El valor pronosticado transformado y corregido de la variable de respuesta se calcula multiplicando el valor predicho transformado por el factor de corrección.( fc <- logbtcf(lm1,exp(1)) ) # Factor de corrección
## [1] 1.005026
fc*(exp(1)^plogW)
## 1 2
## 16.06201 1443.23864
predict ()
incluyendo el argumento interval= "confidence"
o interval= "prediction"
, respectivamente.mlogPt <- predict(lm1,nd,interval="confidence")
fc*exp(1)^mlogPt
## fit lwr upr
## 1 16.06201 15.79638 16.33212
## 2 1443.23864 1421.56508 1465.24264
plogPt <- predict(lm1,nd,interval="prediction")
fc*exp(1)^plogPt
## fit lwr upr
## 1 16.06201 13.18889 19.56103
## 2 1443.23864 1185.22471 1757.42014
plot ()
, el primer argumento es una formula y~x, el segundo es nombre de la data, los siguientes son caracteristicas basicas de cualquier tipo de grafico como el color, tipo de línea y las etiquetas de los ejesplot(logPt~logLt,data=L_synagris2,pch=19,col=rgb(0,0,0,1/4),
ylab="log Pt (g)",xlab="log Lt (cm)")
tmp <- range(L_synagris2$logLt)
xs <- seq(tmp[1],tmp[2],length.out=99)
ys <- predict(lm1,data.frame(logLt=xs))
lines(ys~xs,lwd=2,col="blue")
text(2.8,7,expression(log(Pt)==-3.664+2.794*log(Lt)),col="blue")
btxs <- exp(1)^xs
btys <- fc*exp(1)^ys
btys <- fc*exp(1)^predict(lm1,data.frame(logLt=xs), interval="prediction")
head(btys,n=3)
## fit lwr upr
## 1 24.31938 19.97339 29.61099
## 2 25.30940 20.78687 30.81588
## 3 26.33972 21.63347 32.06980
plot(Pt~Lt,data=L_synagris,pch=19,col=rgb(0,0,0,1/4), xlab="Longitud total (cm)",ylab="Peso total (g)")
lines(btys[,"fit"]~btxs,col="green",lwd=2,lty="solid")
lines(btys[,"lwr"]~btxs,col="blue",lwd=2,lty="dashed")
lines(btys[,"upr"]~btxs,col="blue",lwd=2,lty="dashed")
text(17,1200, expression(Pt==0.02563*Lt^2.794),col="green")
Tipo de crecimiento
(3)
hoCoef()
del paquete FSA, cuyos argumentos son : El objeto de ajuste de la regresiónhoCoef(lm1,2,3)
## term Ho Value Estimate Std. Error T df p value
## 2 3 2.794881 0.009675648 -21.19948 1955 6.000986e-90
confint(lm1)
## 2.5 % 97.5 %
## (Intercept) -3.723940 -3.604075
## logLt 2.775906 2.813857
Verificación de supuestos
lm
con residuals ()
y fitted ()
, respectivamente.r <- residuals(lm1)
fv <- fitted(lm1)
residPlot(lm1)
library(nortest)
qqnorm(r)
qqline(r)
Referencia bibliográficas