Thespesia populnea
Los datos para este informe se encuentran en el siguiente archivo:
LabEcoPob variacion poblacional 20180817
Si baja el archivo a su directorio de R, puede adaptar (usar sus propios nombres para objetos y variables) el siguiente código para asignar sus datos a un data.frame:
library(readxl)
#para datos de ancho y longitud de las semillas
semillas <- read_excel("LabEcoPob variacion poblacional 20180817.xlsx",
sheet = "datos_ancho_long")
#para datos de número de semillas por frutos
frutos <- read_excel("LabEcoPob variacion poblacional 20180817.xlsx",
sheet = "datos_semillasfruto")
NOTA 1: cada persona debe trabajar el informe con todos los datos.
Introducción: sobre la variabilidad poblacional y sus correlativos (posibles causas): no más de 250 palabras, con al menos dos citas de publicaciones científicas.
Las hipótesis deben contener una premisa (dado que…) y la predicción (espero que…).
Diseño y Metodología: describir los sujetos de estudio, sus ambientes, muestreo y métodos empleados para obtener los datos (use la información recopilada en la metadata).
Discusión: escribir un párrafo de discusión por cada tipo de resultado (según las preguntas), comparando con las hipótesis planteadas e indicando si responden sus preguntas. Debe comparar sus resultados con referencias de trabajos científicos, citandolos en esta sección (autor, año).
Conclusiones: deben estar basadas en sus hipótesis (si se aceptan o se rechazan). Debes proponer otros estudios para mejorar o complementar este.
Bibliografía: en cualquier formato de referencias completas (autores, año, título, revista o casa editora, volumen, páginas).
Estos códigos de R sirven para contestar o probar las preguntas o hipótesis. Debe adaaptarlos a los nombres de sus arbchivos y variables.
#función para definir estadísticos a calcular
mystats <- function(x){
m <- mean(x)
md <- median(x)
n <- length(x)
s <- sd(x)
skew <- sum((x-m)^3/s^3)/n
kurt <- sum((x-m)^4/s^4)/n - 3
return(c(n=n, mean=m, median=md, stdev=s, skew=skew, kurtosis=kurt))
}
#aplicar función a variables, separando por árbol
aggregate(semillas[c('long','ancho')], by=list(semillas$arbol), FUN = mystats)
## Group.1 long.n long.mean long.median long.stdev long.skew
## 1 1 114.0000000 10.0385965 10.1000000 0.5524697 0.1103783
## 2 2 60.0000000 10.0183333 10.1000000 0.7685539 -0.4766186
## 3 3 78.0000000 10.2923077 10.3000000 0.6444104 -0.1696015
## 4 4 46.0000000 11.4108696 11.5000000 0.9445112 -0.3330304
## long.kurtosis ancho.n ancho.mean ancho.median ancho.stdev
## 1 -0.3931095 114.0000000 7.1210526 7.2000000 1.0111304
## 2 -0.3119089 60.0000000 8.1216667 8.3000000 1.0483387
## 3 -0.9649882 78.0000000 7.5576923 7.8000000 0.9880480
## 4 0.1509922 46.0000000 8.6521739 8.9000000 0.8998121
## ancho.skew ancho.kurtosis
## 1 -0.1266336 -0.5910200
## 2 -0.7611397 -0.2117408
## 3 -0.1976465 -1.0522366
## 4 -0.9097773 0.5328585
library(ggplot2)
long <- ggplot(semillas, aes(x = arbol, y=long, group=arbol)) + geom_boxplot(fill="cornflowerblue") +
stat_summary(aes(group=arbol), fun.y=mean, colour="darkred", geom="point",
shape=18, size=3) +
labs(x = "Arbol", y = "Longitud semilla, mm")
long
library(dplyr); library(ggplot2)
#histograma y curva normal para cada arbol; variable longitud
#arbol 1
arbol1 <- semillas %>%
filter(arbol == "1")
msa1 <- semillas %>%
filter(arbol == "1") %>%
summarise(means = mean(long), sd=sd(long))
ggplot(arbol1, aes(x=long)) +
geom_histogram(aes(y=..density..), position="identity", binwidth=.25, color="red", fill="gray") +
stat_function(fun = dnorm, color="red", size=1, args=list(mean=msa1$means, sd=msa1$sd)) +
labs(x="Longitud semilla, mm", y="densidad") +
annotate("text", x = 11, y = 1, label = "Arbol 1")
#arbol 2
arbol2 <- semillas %>%
filter(arbol == "2")
msa2 <- semillas %>%
filter(arbol == "2") %>%
summarise(means = mean(long), sd=sd(long))
ggplot(arbol2, aes(x=long)) +
geom_histogram(aes(y=..density..), position="identity", binwidth=.25, color="blue", fill="gray") +
stat_function(fun = dnorm, color="blue", size=1, args=list(mean=msa2$means, sd=msa2$sd)) +
labs(x="Longitud semilla, mm", y="densidad") +
annotate("text", x = 11, y = 1, label = "Arbol 2")
#arbol 3
arbol3 <- semillas %>%
filter(arbol == "3")
msa3 <- semillas %>%
filter(arbol == "3") %>%
summarise(means = mean(long), sd=sd(long))
ggplot(arbol3, aes(x=long)) +
geom_histogram(aes(y=..density..), position="identity", binwidth=.25, color="green", fill="gray") +
stat_function(fun = dnorm, color="green", size=1, args=list(mean=msa3$means, sd=msa3$sd)) +
labs(x="Longitud semilla, mm", y="densidad") +
annotate("text", x = 11, y = 1, label = "Arbol 3")
#arbol 4
arbol4 <- semillas %>%
filter(arbol == "4")
msa4 <- semillas %>%
filter(arbol == "4") %>%
summarise(means = mean(long), sd=sd(long))
ggplot(arbol4, aes(x=long)) +
geom_histogram(aes(y=..density..), position="identity", binwidth=.25, color="yellow", fill="gray") +
stat_function(fun = dnorm, color="yellow", size=1, args=list(mean=msa4$means, sd=msa4$sd)) +
labs(x="Longitud semilla, mm", y="densidad") +
annotate("text", x = 11, y = 1, label = "Arbol 4")
#las cuatro curvas normales juntas
ggplot(semillas, aes(x=long)) +
stat_function(fun = dnorm, args=list(mean=msa1$means, sd=msa1$sd),
aes(colour = "Arbol 1"), size=1.5) +
stat_function(fun = dnorm, args=list(mean=msa2$means, sd=msa2$sd),
aes(colour = "Arbol 2"), size=1.5) +
stat_function(fun = dnorm, args=list(mean=msa3$means, sd=msa3$sd),
aes(colour = "Arbol 3"), size=1.5) +
stat_function(fun = dnorm, args=list(mean=msa4$means, sd=msa4$sd),
aes(colour = "Arbol 4"), size=1.5) +
scale_colour_manual("T. populnea", values = c("red","blue","green","yellow")) +
labs(x="Longitud semilla, mm", y="densidad")
library(multcomp)
#longitud
print("Longitud")
factor.arbol <- as.factor(semillas$arbol)
long.fit <- aov(semillas$long ~ factor.arbol)
summary(long.fit)
#ancho
print("Ancho")
ancho.fit <- aov(semillas$ancho ~ factor.arbol)
summary(ancho.fit)
#longitud
print("Longitud")
TukeyHSD(long.fit)
par(las=1)
plot(TukeyHSD(long.fit))
#ancho
print("Ancho")
TukeyHSD(long.fit)
par(las=1)
plot(TukeyHSD(ancho.fit))
library(ggplot2)
#regresión
rls <- lm(long ~ ancho, data=semillas)
summary(rls)
#gráfica de línea de regresión e intervalo de confianza
ggplot(data=semillas, aes(x=ancho, y=long)) +
geom_point(aes(group=arbol), pch=19, color=semillas$arbol, size=1) +
geom_smooth(method="lm", color="red", linetype=2) +
labs(x="Ancho, mm", y="Longitud, mm")