library(readxl)
library(ggplot2)
aves <- read_excel("~/Universidad Javeriana/Forma y Funcion Animal/Datos_aves.xlsx",na = "-")
View(aves)
aves$Dieta=as.factor(aves$Dieta)
library(ggplot2)
library(plotly)
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
library(agricolae)
library(lsr)
## Warning: package 'lsr' was built under R version 4.1.3
frutos_insectos=subset(aves,Dieta=="frugivoro_insectivoro")
semillas_insectos=subset(aves,Dieta=="granivoro_insectivoro")
insectos=subset(aves,Dieta=="insectivoro")
nectar=subset(aves,Dieta=="nectarivoro")
# Comparación de la longitud del culmen medida en milimetros.
attach(aves)
ggplot(data=aves,aes(x =Dieta, y = `Culmen(mm)`, color=Dieta))+geom_boxplot()+theme_bw()

shapiro.test(frutos_insectos$`Culmen(mm)`) ##Hay normalidad
##
## Shapiro-Wilk normality test
##
## data: frutos_insectos$`Culmen(mm)`
## W = 0.9577, p-value = 0.5279
shapiro.test(semillas_insectos$`Culmen(mm)`)
##
## Shapiro-Wilk normality test
##
## data: semillas_insectos$`Culmen(mm)`
## W = 0.87775, p-value = 0.2992
shapiro.test(insectos$`Culmen(mm)`)
##
## Shapiro-Wilk normality test
##
## data: insectos$`Culmen(mm)`
## W = 0.96336, p-value = 0.8452
shapiro.test(nectar$`Culmen(mm)`)
##
## Shapiro-Wilk normality test
##
## data: nectar$`Culmen(mm)`
## W = 0.78119, p-value = 0.07035
par(mfrow=c(2,2))
qqnorm(frutos_insectos$`Culmen(mm)`)
qqline(frutos_insectos$`Culmen(mm)`)
qqnorm(semillas_insectos$`Culmen(mm)`)
qqline(semillas_insectos$`Culmen(mm)`)
qqnorm(insectos$`Culmen(mm)`)
qqline(insectos$`Culmen(mm)`)
qqnorm(nectar$`Culmen(mm)`)
qqline(nectar$`Culmen(mm)`)

culmen=lm(`Culmen(mm)`~Dieta)
anova(culmen)
## Analysis of Variance Table
##
## Response: Culmen(mm)
## Df Sum Sq Mean Sq F value Pr(>F)
## Dieta 3 961.99 320.66 13.81 8.928e-06 ***
## Residuals 29 673.38 23.22
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
etaSquared(culmen)
## eta.sq eta.sq.part
## Dieta 0.5882381 0.5882381
#par(mfrow=c(2,2))
#plot(culmen)
postCulmen=LSD.test(culmen,"Dieta")
postCulmen
## $statistics
## MSerror Df Mean CV
## 23.22015 29 14.96667 32.19641
##
## $parameters
## test p.ajusted name.t ntr alpha
## Fisher-LSD none Dieta 4 0.05
##
## $means
## Culmen(mm) std r LCL UCL Min Max
## frugivoro_insectivoro 11.20526 1.737007 19 8.944277 13.46625 7.0 14.5
## granivoro_insectivoro 15.10000 2.966479 5 10.692527 19.50747 12.0 20.0
## insectivoro 20.08333 6.560615 6 16.059880 24.10679 11.5 31.0
## nectarivoro 28.33333 13.576941 3 22.643311 34.02336 20.0 44.0
## Q25 Q50 Q75
## frugivoro_insectivoro 10.20 11.0 12.50
## granivoro_insectivoro 14.00 14.5 15.00
## insectivoro 17.25 19.0 22.25
## nectarivoro 20.50 21.0 32.50
##
## $comparison
## NULL
##
## $groups
## Culmen(mm) groups
## nectarivoro 28.33333 a
## insectivoro 20.08333 b
## granivoro_insectivoro 15.10000 bc
## frugivoro_insectivoro 11.20526 c
##
## attr(,"class")
## [1] "group"
#Comparación de la distancia entre comisuras medida en milimetros.
attach(aves)
## The following objects are masked from aves (pos = 3):
##
## #, Comisuras(mm), Culmen(mm), Dieta, Especie, Familia,
## Longitud_alar(mm), Peso(g), Pico_cola(mm), Sexo
ggplot(data=aves,aes(x =Dieta, y = `Comisuras(mm)`, color=Dieta))+geom_boxplot()+theme_bw()

shapiro.test(frutos_insectos$`Comisuras(mm)`)
##
## Shapiro-Wilk normality test
##
## data: frutos_insectos$`Comisuras(mm)`
## W = 0.85182, p-value = 0.007182
shapiro.test(semillas_insectos$`Comisuras(mm)`)
##
## Shapiro-Wilk normality test
##
## data: semillas_insectos$`Comisuras(mm)`
## W = 0.80588, p-value = 0.09041
shapiro.test(insectos$`Comisuras(mm)`)
##
## Shapiro-Wilk normality test
##
## data: insectos$`Comisuras(mm)`
## W = 0.91076, p-value = 0.4414
shapiro.test(nectar$`Comisuras(mm)`)
##
## Shapiro-Wilk normality test
##
## data: nectar$`Comisuras(mm)`
## W = 0.75, p-value < 2.2e-16
par(mfrow=c(2,2))
qqnorm(frutos_insectos$`Comisuras(mm)`)
qqline(frutos_insectos$`Comisuras(mm)`)
qqnorm(semillas_insectos$`Comisuras(mm)`)
qqline(semillas_insectos$`Comisuras(mm)`)
qqnorm(insectos$`Comisuras(mm)`)
qqline(insectos$`Comisuras(mm)`)
qqnorm(nectar$`Comisuras(mm)`)
qqline(nectar$`Comisuras(mm)`)

comisuras=lm(`Comisuras(mm)`~Dieta)
anova(comisuras)
## Analysis of Variance Table
##
## Response: Comisuras(mm)
## Df Sum Sq Mean Sq F value Pr(>F)
## Dieta 3 89.733 29.9110 8.0528 0.0004708 ***
## Residuals 29 107.716 3.7143
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
etaSquared(comisuras)
## eta.sq eta.sq.part
## Dieta 0.4544616 0.4544616
postComisuras=LSD.test(comisuras,"Dieta")
postComisuras
## $statistics
## MSerror Df Mean CV
## 3.714347 29 8.518182 22.6253
##
## $parameters
## test p.ajusted name.t ntr alpha
## Fisher-LSD none Dieta 4 0.05
##
## $means
## Comisuras(mm) std r LCL UCL Min Max
## frugivoro_insectivoro 8.031579 1.472735 19 7.127292 8.935866 6 12
## granivoro_insectivoro 10.800000 2.489980 5 9.037219 12.562781 9 15
## insectivoro 10.083333 2.870830 6 8.474142 11.692525 7 15
## nectarivoro 4.666667 1.154701 3 2.390927 6.942407 4 6
## Q25 Q50 Q75
## frugivoro_insectivoro 7.000 7.1 9.00
## granivoro_insectivoro 9.000 10.0 11.00
## insectivoro 8.125 10.0 10.75
## nectarivoro 4.000 4.0 5.00
##
## $comparison
## NULL
##
## $groups
## Comisuras(mm) groups
## granivoro_insectivoro 10.800000 a
## insectivoro 10.083333 a
## frugivoro_insectivoro 8.031579 b
## nectarivoro 4.666667 c
##
## attr(,"class")
## [1] "group"
#Comparación de la longitud alar medida en milimetros.
attach(aves)
## The following objects are masked from aves (pos = 3):
##
## #, Comisuras(mm), Culmen(mm), Dieta, Especie, Familia,
## Longitud_alar(mm), Peso(g), Pico_cola(mm), Sexo
## The following objects are masked from aves (pos = 4):
##
## #, Comisuras(mm), Culmen(mm), Dieta, Especie, Familia,
## Longitud_alar(mm), Peso(g), Pico_cola(mm), Sexo
ggplot(data=aves,aes(x =Dieta, y = `Longitud_alar(mm)`, color=Dieta))+geom_boxplot()+theme_bw()

shapiro.test(frutos_insectos$`Longitud_alar(mm)`)
##
## Shapiro-Wilk normality test
##
## data: frutos_insectos$`Longitud_alar(mm)`
## W = 0.87, p-value = 0.01444
shapiro.test(semillas_insectos$`Longitud_alar(mm)`)
##
## Shapiro-Wilk normality test
##
## data: semillas_insectos$`Longitud_alar(mm)`
## W = 0.91582, p-value = 0.5033
shapiro.test(insectos$`Longitud_alar(mm)`)
##
## Shapiro-Wilk normality test
##
## data: insectos$`Longitud_alar(mm)`
## W = 0.91459, p-value = 0.4673
shapiro.test(nectar$`Longitud_alar(mm)`)
##
## Shapiro-Wilk normality test
##
## data: nectar$`Longitud_alar(mm)`
## W = 0.85465, p-value = 0.253
par(mfrow=c(2,2))
qqnorm(frutos_insectos$`Longitud_alar(mm)`)
qqline(frutos_insectos$`Longitud_alar(mm)`)
qqnorm(semillas_insectos$`Longitud_alar(mm)`)
qqline(semillas_insectos$`Longitud_alar(mm)`)
qqnorm(insectos$`Longitud_alar(mm)`)
qqline(insectos$`Longitud_alar(mm)`)
qqnorm(nectar$`Longitud_alar(mm)`)
qqline(nectar$`Longitud_alar(mm)`)

long_alar=lm(`Longitud_alar(mm)`~Dieta)
anova(long_alar)
## Analysis of Variance Table
##
## Response: Longitud_alar(mm)
## Df Sum Sq Mean Sq F value Pr(>F)
## Dieta 3 2978.9 992.96 4.2285 0.01349 *
## Residuals 29 6809.9 234.83
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
etaSquared(long_alar)
## eta.sq eta.sq.part
## Dieta 0.3043148 0.3043148
postAlar=LSD.test(long_alar,"Dieta")
postAlar
## $statistics
## MSerror Df Mean CV
## 234.8251 29 63.37273 24.18075
##
## $parameters
## test p.ajusted name.t ntr alpha
## Fisher-LSD none Dieta 4 0.05
##
## $means
## Longitud_alar(mm) std r LCL UCL Min Max
## frugivoro_insectivoro 58.75263 14.297683 19 51.56249 65.94277 44 95
## granivoro_insectivoro 76.80000 7.259477 5 62.78383 90.81617 70 88
## insectivoro 75.16667 24.045097 6 62.37171 87.96162 46 118
## nectarivoro 46.66667 3.785939 3 28.57187 64.76146 44 51
## Q25 Q50 Q75
## frugivoro_insectivoro 46.00 59 69
## granivoro_insectivoro 71.00 76 79
## insectivoro 64.25 73 78
## nectarivoro 44.50 45 48
##
## $comparison
## NULL
##
## $groups
## Longitud_alar(mm) groups
## granivoro_insectivoro 76.80000 a
## insectivoro 75.16667 a
## frugivoro_insectivoro 58.75263 b
## nectarivoro 46.66667 b
##
## attr(,"class")
## [1] "group"
#Comparación de la longitud pico-cola medida en milimetros.
attach(aves)
## The following objects are masked from aves (pos = 3):
##
## #, Comisuras(mm), Culmen(mm), Dieta, Especie, Familia,
## Longitud_alar(mm), Peso(g), Pico_cola(mm), Sexo
## The following objects are masked from aves (pos = 4):
##
## #, Comisuras(mm), Culmen(mm), Dieta, Especie, Familia,
## Longitud_alar(mm), Peso(g), Pico_cola(mm), Sexo
## The following objects are masked from aves (pos = 5):
##
## #, Comisuras(mm), Culmen(mm), Dieta, Especie, Familia,
## Longitud_alar(mm), Peso(g), Pico_cola(mm), Sexo
ggplot(data=aves,aes(x =Dieta, y = `Pico_cola(mm)`, color=Dieta))+geom_boxplot()+theme_bw()

shapiro.test(frutos_insectos$`Pico_cola(mm)`)
##
## Shapiro-Wilk normality test
##
## data: frutos_insectos$`Pico_cola(mm)`
## W = 0.91755, p-value = 0.102
shapiro.test(semillas_insectos$`Pico_cola(mm)`)
##
## Shapiro-Wilk normality test
##
## data: semillas_insectos$`Pico_cola(mm)`
## W = 0.98765, p-value = 0.9708
shapiro.test(insectos$`Pico_cola(mm)`)
##
## Shapiro-Wilk normality test
##
## data: insectos$`Pico_cola(mm)`
## W = 0.73687, p-value = 0.01477
shapiro.test(nectar$`Pico_cola(mm)`)
##
## Shapiro-Wilk normality test
##
## data: nectar$`Pico_cola(mm)`
## W = 0.78649, p-value = 0.08265
par(mfrow=c(2,2))
qqnorm(frutos_insectos$`Pico_cola(mm)`)
qqline(frutos_insectos$`Pico_cola(mm)`)
qqnorm(semillas_insectos$`Pico_cola(mm)`)
qqline(semillas_insectos$`Pico_cola(mm)`)
qqnorm(insectos$`Pico_cola(mm)`)
qqline(insectos$`Pico_cola(mm)`)
qqnorm(nectar$`Pico_cola(mm)`)
qqline(nectar$`Pico_cola(mm)`)

pico_cola=lm(`Pico_cola(mm)`~Dieta)
anova(pico_cola)
## Analysis of Variance Table
##
## Response: Pico_cola(mm)
## Df Sum Sq Mean Sq F value Pr(>F)
## Dieta 3 12231 4077.1 6.0539 0.002486 **
## Residuals 29 19531 673.5
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
etaSquared(pico_cola)
## eta.sq eta.sq.part
## Dieta 0.3850934 0.3850934
postPico=LSD.test(pico_cola,"Dieta")
postPico
## $statistics
## MSerror Df Mean CV
## 673.4763 29 120.8485 21.47435
##
## $parameters
## test p.ajusted name.t ntr alpha
## Fisher-LSD none Dieta 4 0.05
##
## $means
## Pico_cola(mm) std r LCL UCL Min Max
## frugivoro_insectivoro 109.05263 24.57748 19 96.87602 121.2292 79 160
## granivoro_insectivoro 149.60000 11.61034 5 125.86341 173.3366 135 165
## insectivoro 146.00000 37.54997 6 124.33156 167.6684 115 220
## nectarivoro 97.33333 23.11565 3 66.68953 127.9771 83 124
## Q25 Q50 Q75
## frugivoro_insectivoro 89.50 105 132.5
## granivoro_insectivoro 142.00 151 155.0
## insectivoro 127.75 138 140.0
## nectarivoro 84.00 85 104.5
##
## $comparison
## NULL
##
## $groups
## Pico_cola(mm) groups
## granivoro_insectivoro 149.60000 a
## insectivoro 146.00000 a
## frugivoro_insectivoro 109.05263 b
## nectarivoro 97.33333 b
##
## attr(,"class")
## [1] "group"