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"