##Exercicio1 #Hipótese nula: palmitos distribuídos aleatoriamente no espaço dir() setwd("C:\\Users\\windows\\Documents\\MEGA\\Doutorado\\Disciplinas\\R\\07_permutacao_reamostragem") eutad = read.table("palmadulto.txt",header=T,sep="\t") head(eutad) str(eutad) dim(eutad) #objeto para guardar as distâncias entre cada indivíduo: dist=matrix(NA, ncol=102, nrow=102) 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) } } dist #Calculando a média observada de distância dos vizinhos mais proximos a cada individuo (nn<-apply(dist, 1, min, na.rm=TRUE)) (mnn<-mean(nn)) #Valor esperado da distância do vizinho mais próximo: 14.76 #Simulando o cenário nulo resultado = rep(NA,1000) (resultado[1] = mnn) for (k in 2:1000){ xsim = round(runif(102,min=0,max=320),1) ysim = round(runif(102,min=0,max=320),1) xys = data.frame(xsim,ysim) dist.s=matrix(NA, ncol=102, nrow=102) for(i in 1:101) { for(j in (i+1):102) { difx2=(xys$xsim[i]-xys$xsim[j])^2 dify2=(xys$ysim[i]-xys$ysim[j])^2 dist.s[i,j]<-sqrt(difx2 + dify2) dist.s[j,i]<-sqrt(difx2 + dify2) } } resultado[k] = mean(apply(dist.s,1,min,na.rm=TRUE)) } #Histograma dos dados simulados hist(resultado) abline(v=mnn,lty=2,col="red") abline(v=mnn*(-1),lty=2,col="red") #Probabilidade de de uma distribuição espacial aleatória gerar valores iguais ou mais extremos do que o valor MNN observado p = sum(resultado <= mnn)/length(resultado) p #################################################################################### ##Exercicio2 - Simulando o teste de uma regressão linear dados = read.table("animais.txt",header=T,sep=";",dec=",") head(dados) str(dados) #omitindo os na's dados=na.omit(dados) dados #calculando a inclinação da relação na "unha" #xi - xmedio (diffx = log(dados$body) - mean(log(dados$body))) #yi - ymedio (diffy = log(dados$brain) - mean(dados$brain)) beta.obs = sum((diffx)*(diffy))/sum(diffx^2) beta.obs #conferindo se os valores batem lm = lm(log(brain)~log(body),data = dados) coef(lm) #OK #Simulação do cenário nulo resultado= rep(NA, 1000) resultado[1]= beta.obs for(i in 2:1000) { dados$sim_brain= sample(dados$brain) resultado[i] <- coef(lm(log(sim_brain) ~ log(body), data=dados))[[2]] } #histograma hist(resultado) abline(v=resultado[1], col="red") #probabilidade da inclinação observada ter sido gerada por variáveis que são independentes p=sum(resultado>=resultado[1])/length(resultado) p