#Mateus Sousa, exercicios 108.1 a 108.2 #108.1 #lendo os dados eutad=read.table("palmadulto.txt", header=TRUE, as.is=TRUE, sep="\t") #crianod o objeto para guardar as distancias entre cada individuo dist=matrix(NA, ncol=102, nrow=102) #calculando as distancias 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) } } #calcular a mean nearest neightbor esperada nn=apply(dist, 1, min, na.rm=TRUE) mnn=mean(nn) #vamaeh! resultado<-rep(NA, 1000) resultado[1]=mnn for(k in 2:1000) { xsim<-runif(n=102, min=0, max=320) ysim<-runif(n=102, min=0, max=320) dist_sim=matrix(NA, ncol=102, nrow=102) #calculando as distancias for(i in 1:101) { for(j in (i+1):102) { dif_repx2=(xsim[i]-xsim[j])^2 dif_repy2=(ysim[i]-ysim[j])^2 dist_sim[i,j]=dist_sim[j,i]=sqrt(dif_repx2 + dif_repy2) } } nn_re=apply(dist_sim, 1, min, na.rm=TRUE) mnn_re=mean(nn_re) resultado[k]=mnn_re } hist(resultado) segments(x0=resultado[1], x1=resultado[1], y0=0, y1=200, col="red") p.resultado=sum(resultado<=resultado[1])/length(resultado) #A probabilidade do MNN observado ser gerado por uma distribuicao espacial aleatoria e p=0.027 #--------------- #108.2 #lendo os dados brains<-read.table("brains.txt", header=TRUE, as.is=TRUE, sep=";", dec=",") #tirando os NAs brains=na.omit(brains) #calculando a inclinacao da reta observada slope_brains<-cov(log(brains$brain), log(brains$body))/var(log(brains$body)) #criando um vetor para guardar as simulacoes resultado=rep(NA, 100000) #simulando for(i in 1:100000) { sim_brains=brains sim_brains$brain=sample(sim_brains$brain) resultado[i]<-cov(log(sim_brains$brain), log(sim_brains$body))/var(log(sim_brains$body)) } hist(resultado) #plotando o observaod no grafico segments(x0=slope_brains, x1=slope_brains, y0=0, y1=500) #nao da pra ver o segmento!! #os valores simulados sao muito menores que o valor observado da inclinacao da relacao p_slope=sum(resultado>=slope_brains)/length(resultado) p_slope # A probabilidade da inclinacao observada ter sido gerada pr avriaveis que sao independentes e menor que 0.001