##Exercicio 8 eutad<-read.table("teste/palmadulto.txt", sep="\t", header=T) table(eutad) unique(eutad) str(eutad) ##1.2. Crie o objeto para guardar as distâncias entre cada indivíduo: dist=matrix(NA, ncol=102, nrow=102) #1.3. Calcule a distãncia observada entre cada indivíduo e guarde o resultados em dist: for(i in 1:101) { for(j in (i+1):102) { difx2=(eutad$gx[i]-eutad$gx[j])^2 dify2=(eutad$gy[i]-eutad$gy[j])^2 dist[i,j]<-sqrt(difx2 + dify2) dist[j,i]<-sqrt(difx2 + dify2) } } ##1.4. Verifique o objeto dist e calcule o parâmetro chamado de distância média do vizinho mais próximo (MNN): dist[1:7,1:7] nn<-apply(dist, 1, min, na.rm=TRUE) mnn<-mean(nn) mnn ##simulando ##1.5. Crie um vetor resultado, com 1000 NA's, para guardar os valores de cada simulação. nsim=1000 resultado=rep(NA, nsim) resultado ##1.6. Guarde o valor observado na primeira posição de resultado; resultado[1]=mean(mnn) ##1.7. Crie um ciclo com contador (i) que vai de 2 a 1000; for(n in 2:nsim) { xsim<-runif(102,0,320) ysim<-runif(102,0,320) dist.xy.sim<-matrix(NA, ncol=102, nrow=102) for(i in 1:101) { for(j in (i+1):102) { cateto.x<-(xsim[i]-xsim[j])^2 cateto.y<-(ysim[i]-ysim[j])^2 dist.xy.sim[i,j]<-sqrt(cateto.x+cateto.y) dist.xy.sim[j,i]<-sqrt(cateto.x+cateto.y) } } nn.sim<-apply(dist.xy.sim, 1, min, na.rm=TRUE) mnn.sim<-mean(nn.sim) resultado[n]<-mnn.sim } ###1.9. Faça um histograma dos valores simulados e coloque uma linha vermelha vertical na posição do valor observado; hist(resultado) abline(v=resultado[1], col="red") ##1.10. Calcule a probabilidade do valor MNN observado ser gerado por uma distribuição espacial aleatória. resultado0=resultado-mean(resultado) prob<-sum(abs(resultado0>=abs(resultado0[1])) prob.<-prob/length(resultado0) ##Exercicio2 animals<-read.table("teste/animais.txt", header = TRUE, sep = ";", dec = ",", as.is = TRUE) animals<-na.exclude(animals) #2.1. Calcule a inclinação da relação log(brain) ~ log(body) , utilizando a formula: plot(log(brain)~log(body), data=animals) beta<-sum((log(animals$body)-mean(log(animals$body)))*(log(animals$brain)-mean(log(animals$brain))))/sum(((log(animals$body)-mean(log(animals$body)))^2)) beta modelo<-lm(log(brain)~log(body), data=animals) coef(modelo) ##2.2. Crie um vetor para guardar o resultado de simulações; res.sim<-rep(NA,1000) res.sim[1]<-coef(modelo)[2] res.sim ##2.3. Desordene o vetor brain e guarde no objeto sim_brain; sim_brain<-sample(animals$brain) ##2.4. Calcule a inclinação entre o log(sim_brain) ~ log(body) e guarde no vetor resultado; for(i in 2:1000) { sim_brain<-sample(animals$brain) modelo2<-lm(log(sim_brain)~log(animals$body)) res.sim[i]<-coef(modelo2)[2] } res.sim #2.6. Faça o histograma dos valores simulados e compare com o valor observado da inclinação da relação; hist(res.sim) abline(v=beta, col="red") #2.7. Calcule a probabilidade da inclinação observada ter sido gerada por variáveis que são independentes; unicaudal<-sum(res.sim>=res.sim[1]) unicaudal p.uni<-unicaudal/length(res.sim) p.uni