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.
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.
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.