# Aula 8 # exercício 1 # Os palmitos estão distribuídos aleatoriamente na floresta? # lendo os dados eutad <- read.table("palmadulto.txt", header = T, sep = "\t") head(eutad) str(eutad) # criando o objeto para guardar as distâncias entre cada indivíduo dist = matrix(NA, ncol=102, nrow=102) # calculando a distância observada entre cada indivíduo e guardando o resultado 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) } } dist # calculando a média do vizinho mais próximo (nn<-apply(dist, 1, min, na.rm=TRUE)) (mnn<-mean(nn)) resultado <- rep(NA,1000) resultado[1] <- mnn for(k in 2:1000) { xsim <- round(runif(102,0,320),1) ysim <- round(runif(102,0,320),1) dist = matrix(NA, ncol=102, nrow=102) for(i in 1:101) { for(j in (i+1):102) { difxsim=(xsim[i]-xsim[j])^2 difysim=(ysim[i]-ysim[j])^2 dist[i,j]<-sqrt(difxsim + difysim) dist[j,i]<-sqrt(difxsim + difysim) } } na <- apply(dist, 1, min, na.rm=TRUE) resultado[k] <- mean(na) } hist(resultado) abline(v = resultado[1], col="red") # distribuição nula no objeto resultado p.v <- sum(resultado <= mnn) / length(resultado) # A distribuição dos palmitos não é aleatória no espaço. ################################################################################# # AUla 8 # exercício 8.2 # lendo os dados massa <- read.table("animais.txt", header = T, sep = ";", dec = ",") head(massa) length(massa$body) # fazendo a regressão linear reg.lin.m <- lm(log(massa$brain) ~ log(massa$body)) # verificando o resultado da reg. lin summary(reg.lin.m) reg.lin.m[[1]] # mesma coisa do coef !!! # agora calculando o intercepto pela fórmula dada no exercício yi <- c(massa$brain) length((yi)) xi<- c(massa$body) # retirei as linhas do dataframe que continham NA xi=xi[c(1:5,7:15,17:25,27:28)] yi=yi[c(1:5,7:15,17:25,27:28)] length(yi) yi <- log(yi) xi <- log(xi) y.m <- mean(yi) x.m <- mean(xi) beta <- sum((xi - x.m)*(yi - y.m))/(sum((xi - x.m)^2)) # fazendo a simulaçao resimul <- rep(NA,28) # guardando o valor do intercepto calculado na primeira posição do vetor que vai ser simulado resimul[1] <- as.numeric(reg.lin.m$coefficients[2]) resimul[1] <- beta for (j in 2:1000) { sim_brain <- sample(yi) resimul[j] <- sum((xi - x.m)*(sim_brain - mean(sim_brain)))/sum((xi - x.m)^2)} mean(resimul) hist(resimul) abline(v=resimul[1], col = "red") p.v <- sum(resimul>=resimul[1])/length(resimul) # A probabilidade da inclinação ter sido gerada ao acaso é muito baixa (valor de p = 0.001).