Introducción

En este estudio de caso se analizará el peso(masa) de las aves según la elevación y su Familia. El objetivo es evaluar cómo la elevación puede influir en el peso del ave, puesto que se ha visto que los animales que viven en climas fríos son más grandes (y por consiguiente más pesados) que los animales de su misma especie en climas más cálidos.

Objetivo

El objetivo es predecir el peso (masa) de un ave dependiendo de su Familia en relación a la elevación (altitud sobre el nivel del mar) de donde fue capturado el indivíduo

Vamos a usar la base de Datos “ColombianBirdMorphology” (modificado). En esta base de datos hay datos de el departamento y ciudad de captura de cada individuo, así como la elevación sobre el nivel del mar de estos, tambien está la taxonomía (Orden, Familia y Especie) así como el peso (masa) de cada individuo.

summary(ColombianBirdMorphology)
##   Department        Municipality         Elevation       Order          
##  Length:3010        Length:3010        Min.   :2400   Length:3010       
##  Class :character   Class :character   1st Qu.:3170   Class :character  
##  Mode  :character   Mode  :character   Median :3321   Mode  :character  
##                                        Mean   :3304                     
##                                        3rd Qu.:3477                     
##                                        Max.   :4000                     
##     Family            Species              Weight      
##  Length:3010        Length:3010        Min.   :  2.00  
##  Class :character   Class :character   1st Qu.:  6.00  
##  Mode  :character   Mode  :character   Median : 12.16  
##                                        Mean   : 18.07  
##                                        3rd Qu.: 17.99  
##                                        Max.   :330.33
table1(~Weight | Family, data= ColombianBirdMorphology)
## Warning in .table1.internal(x = x, labels = labels, groupspan = groupspan, :
## Table has 26 columns. Are you sure this is what you want?
Accipitridae
(N=4)
Caprimulgidae
(N=10)
Columbidae
(N=1)
Corvidae
(N=3)
Cotingidae
(N=19)
Emberizidae
(N=177)
Fringillidae
(N=43)
Furnariidae
(N=110)
Grallariidae
(N=16)
Hirundinidae
(N=21)
Icteridae
(N=7)
Parulidae
(N=140)
Picidae
(N=8)
Psittacidae
(N=7)
Ramphastidae
(N=3)
Rhinocryptidae
(N=12)
Scolopacidae
(N=3)
Strigidae
(N=8)
Thraupidae
(N=867)
Tityridae
(N=1)
Trochilidae
(N=1055)
Troglodytidae
(N=77)
Trogonidae
(N=4)
Turdidae
(N=49)
Tyrannidae
(N=365)
Overall
(N=3010)
Weight
Mean (SD) 104 (3.42) 42.1 (3.91) 327 (NA) 65.1 (45.3) 72.3 (17.5) 29.7 (7.22) 14.6 (3.62) 20.4 (10.9) 62.0 (50.0) 12.7 (1.41) 68.7 (28.4) 12.6 (1.86) 89.9 (55.4) 69.1 (10.6) 143 (164) 17.3 (2.71) 147 (85.0) 91.9 (47.5) 20.6 (14.9) 15.4 (NA) 5.28 (1.88) 22.4 (8.23) 56.9 (2.46) 137 (25.5) 13.5 (3.84) 18.1 (24.3)
Median [Min, Max] 104 [100, 108] 41.0 [36.5, 49.5] 327 [327, 327] 87.0 [13.0, 95.3] 67.0 [50.0, 117] 29.0 [17.0, 46.0] 13.0 [7.00, 21.5] 17.0 [5.40, 58.0] 45.5 [11.4, 164] 12.5 [9.50, 15.5] 61.0 [46.0, 130] 12.5 [8.50, 19.0] 96.3 [37.0, 205] 70.0 [55.0, 88.0] 72.0 [27.0, 330] 18.2 [11.0, 20.0] 150 [60.0, 230] 61.3 [55.0, 178] 16.0 [6.50, 127] 15.4 [15.4, 15.4] 5.00 [2.00, 30.0] 24.5 [10.0, 35.2] 57.0 [54.5, 59.0] 143 [23.5, 167] 13.0 [5.50, 36.0] 12.2 [2.00, 330]
g1 <- ggplot(ColombianBirdMorphology, aes(y=Weight, x=Family, fill=Family)) + geom_boxplot()
ggplotly(g1)
table1(~Elevation | Family, data = ColombianBirdMorphology)
## Warning in .table1.internal(x = x, labels = labels, groupspan = groupspan, :
## Table has 26 columns. Are you sure this is what you want?
Accipitridae
(N=4)
Caprimulgidae
(N=10)
Columbidae
(N=1)
Corvidae
(N=3)
Cotingidae
(N=19)
Emberizidae
(N=177)
Fringillidae
(N=43)
Furnariidae
(N=110)
Grallariidae
(N=16)
Hirundinidae
(N=21)
Icteridae
(N=7)
Parulidae
(N=140)
Picidae
(N=8)
Psittacidae
(N=7)
Ramphastidae
(N=3)
Rhinocryptidae
(N=12)
Scolopacidae
(N=3)
Strigidae
(N=8)
Thraupidae
(N=867)
Tityridae
(N=1)
Trochilidae
(N=1055)
Troglodytidae
(N=77)
Trogonidae
(N=4)
Turdidae
(N=49)
Tyrannidae
(N=365)
Overall
(N=3010)
Elevation
Mean (SD) 3280 (468) 3560 (279) 3550 (NA) 2960 (348) 3420 (282) 3230 (252) 3510 (215) 3330 (245) 3430 (327) 3410 (229) 3150 (277) 3230 (187) 3470 (280) 3660 (208) 2940 (301) 3190 (184) 3600 (181) 3280 (332) 3310 (236) 2890 (NA) 3290 (238) 3280 (229) 3110 (124) 3500 (266) 3300 (266) 3300 (247)
Median [Min, Max] 3240 [2810, 3820] 3590 [2900, 4000] 3550 [3550, 3550] 2970 [2600, 3300] 3490 [2870, 3820] 3210 [2490, 3770] 3540 [3030, 3950] 3340 [2870, 4000] 3510 [2920, 3820] 3480 [3100, 3820] 3140 [2810, 3560] 3190 [2810, 3770] 3510 [3050, 3850] 3770 [3250, 3770] 3050 [2600, 3170] 3160 [2850, 3520] 3500 [3500, 3810] 3320 [2600, 3690] 3350 [2400, 4000] 2890 [2890, 2890] 3320 [2400, 4000] 3270 [2870, 3820] 3090 [3000, 3240] 3550 [2680, 3850] 3280 [2400, 4000] 3320 [2400, 4000]
g2 <- ggplot(ColombianBirdMorphology, aes(y= Elevation, x=Family, fill =Family)) + geom_boxplot()
ggplotly(g2)

Aquí está el resumen de la Base de datos, así como la tabla y gráfico de tipo Boxplot del Peso por Familia y tambien la tabla y gráfico de tipo Boxplot de la Elevación por cada Familia.

mod1 <- lm(Weight ~ Elevation + Family, data=ColombianBirdMorphology)
summary(mod1)
## 
## Call:
## lm(formula = Weight ~ Elevation + Family, data = ColombianBirdMorphology)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -114.115   -3.749   -0.944    1.599  185.877 
## 
## Coefficients:
##                        Estimate Std. Error t value Pr(>|t|)    
## (Intercept)           8.475e+01  6.570e+00  12.899  < 2e-16 ***
## Elevation             5.855e-03  8.924e-04   6.561 6.27e-11 ***
## FamilyCaprimulgidae  -6.346e+01  6.967e+00  -9.109  < 2e-16 ***
## FamilyColumbidae      2.215e+02  1.316e+01  16.831  < 2e-16 ***
## FamilyCorvidae       -3.694e+01  8.993e+00  -4.107 4.11e-05 ***
## FamilyCotingidae     -3.247e+01  6.476e+00  -5.014 5.64e-07 ***
## FamilyEmberizidae    -7.397e+01  5.951e+00 -12.431  < 2e-16 ***
## FamilyFringillidae   -9.073e+01  6.156e+00 -14.739  < 2e-16 ***
## FamilyFurnariidae    -8.381e+01  5.991e+00 -13.990  < 2e-16 ***
## FamilyGrallariidae   -4.285e+01  6.581e+00  -6.512 8.70e-11 ***
## FamilyHirundinidae   -9.207e+01  6.422e+00 -14.337  < 2e-16 ***
## FamilyIcteridae      -3.447e+01  7.377e+00  -4.672 3.11e-06 ***
## FamilyParulidae      -9.106e+01  5.968e+00 -15.258  < 2e-16 ***
## FamilyPicidae        -1.511e+01  7.209e+00  -2.095   0.0362 *  
## FamilyPsittacidae    -3.703e+01  7.385e+00  -5.015 5.61e-07 ***
## FamilyRamphastidae    4.115e+01  8.994e+00   4.575 4.96e-06 ***
## FamilyRhinocryptidae -8.611e+01  6.795e+00 -12.672  < 2e-16 ***
## FamilyScolopacidae    4.082e+01  8.994e+00   4.538 5.89e-06 ***
## FamilyStrigidae      -1.203e+01  7.207e+00  -1.669   0.0952 .  
## FamilyThraupidae     -8.355e+01  5.898e+00 -14.165  < 2e-16 ***
## FamilyTityridae      -8.625e+01  1.316e+01  -6.552 6.65e-11 ***
## FamilyTrochilidae    -9.875e+01  5.896e+00 -16.750  < 2e-16 ***
## FamilyTroglodytidae  -8.158e+01  6.035e+00 -13.517  < 2e-16 ***
## FamilyTrogonidae     -4.606e+01  8.323e+00  -5.534 3.41e-08 ***
## FamilyTurdidae        3.129e+01  6.123e+00   5.110 3.42e-07 ***
## FamilyTyrannidae     -9.060e+01  5.917e+00 -15.312  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 11.77 on 2984 degrees of freedom
## Multiple R-squared:  0.7668, Adjusted R-squared:  0.7648 
## F-statistic: 392.4 on 25 and 2984 DF,  p-value: < 2.2e-16
ColombianBirdMorphology$Predict=predict(mod1)

ggplot(ColombianBirdMorphology, aes(x= Elevation, y = Weight)) + geom_point(color = "blue") + geom_line(aes(y= Predict), color = "red") + labs(title = "Regresión lineal: Peso vs Elevación", x= "Elevación", y = "Peso")

Se puede ver que la elevación sí influye en el peso(masa), lo que significa que mientras más altitud el ave va a tener más masa. Esto se puede ver con el problema de superficie vs volumen de la biología, en donde a mayor tamaño, mayor volumen lo que hace que haya un mayor número de mitocondrias generando calor. Sin embargo como el intercambio de temperatura se hace mediante la superficie de un cuerpo tambien hay un aumento en el enfriamiento. Pero como el volumen aumenta en una potencia 3 (x^3) y la superficie aumenta en una potencia 2 (x^2), el volumen aumenta proporcionalmente más a la superficie y por consiguiente el aumento en temperatura aumenta más que el enfriamiento. Esto quiere decir que mientras más grande sea un animal, se va a enfriar menos y cómo mientras más altitud sobre el nivel del mar hay más frío, las aves que viven a mayor elevación son más grandes.

Tambien, cómo el R^2 tiene un valor del 0.76, esto quiere decir que la predicción es moderada, no es perfecta, pero no es mala en absoluto.

Conclusión

El análisis muestra que nuestro objetivo se cumplió y se pudo predecir cual es el peso aproximado de un ave dependiendo de la elevación sobre el nivel del mar de donde habita. Y mientras más elevación, más peso.