######Reamostragem e simulacao###### #Exercicio 1 eutad<-read.table("palmadulto.txt", header=T, sep="\t", as.is=T) #crie o objeto para guardar a distancia entre cada individuo dist<-matrix(NA, ncol=102, nrow=102) #calcule a distancia observada entre cada individuo e guarde os 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) } } #verifique o objeto dist e calcule o parametro chamado de distancia media do vizinho #mais proximo (mnn) (nn<-apply(dist, 1, min, na.rm=TRUE)) #dist (matriz de distancia), 1 (todas as linhas), #min (valor minimo=vizinho mais proximo), na.rm (remova os NA's acrescentados na diagonal principal) (mnn<-mean(nn)) #mnn ->distancia media do vizinho mais proximo; resultado foi 14.76015 #essa e a minha estatistica de interesse (EI)/valor observado que tem a ver com a minha pergunta: Os palmitos estao distribuidos aleatoriamente na floresta? #crie um vetor 'resultado' com 1000 NA's para guardar os valores de cada simulacao resultado<-rep(NA, 1000) #guarde o valor observado (mnn= 14.76015) na primeira posicao de resultado resultado[1]<-mnn #crie um contador k que vai de 2 a 1000 for(k in 2:1000){ xsim<-round(runif(102, 0, 320),1) #102= numero de palmitos amostrados; 0:320 enunciado exercicio, mas e o range dos dados ,1 por causa da funcao round arredondando uma casa apos a virgula ysim<-round(runif(102, 0, 320),1) rxy<-data.frame(xsim, ysim) rdistmat<-as.matrix(dist(rxy, diag=FALSE, upper=TRUE)) #crie uma matriz para guardar as distancias entre cada valor xy simulados diag(rdistmat)<-NA #diagonal da matriz rdistmat preenchida com NA rnnd<- apply(rdistmat, 1, min, na.rm=TRUE) #crie os ciclos para o calculo das distancias resultado[k]<-mean(rnnd) #guarde o valor da distancia media do vizinho mais proximo dos dados simulados na posicao k do vetor resultado } #faca um histograma dos valores simulados e coloque uma linha vertical vermelha #na posicao do valor observado (mnn) hist(resultado) abline(v=resultado[1], lty=2, col="red") #calcule o p valor resultado1<-resultado - mean(resultado) hist(resultado1) nmaior<-sum(abs(resultado1)>=abs(resultado1[1])) pval<-nmaior/length(resultado1) #pval=0.047 #Com significancia estatistica (p<0.05) os palmitos nao estao distribuidos aleatoriamente #na floresta. #Exercicio 2 animais<-read.table("animais.txt", header=T, sep=";", as.is=T) head(animais) str(animais) #calcule a inclinacao da relacao log(brain)~log(body) animais$body<-as.numeric(animais$body) #convertendo a coluna body de caracter para numerico animais$brain<-as.numeric(animais$brain) animais<-na.exclude(animais) #excluindo os NA's pois os valores faltantes foram convertidos em NA plot(brain~body, data=animais, log="xy") lm.massa <- lm(log(brain)~log(body),data=animais) summary(lm.massa) abline(lm.massa) coef.massa<-coef(lm.massa) #extraindo os coeficientes da regressao (lm.massa) e colocando no objeto coef.massa result.simula<-rep(NA, 1000) #fazendo simulacao result.simula[1]<-coef.massa[2] #guardando o segundo valor de coef.massa na primeira posicao do resultado de simulacao result.simula[1:5] cerebro<-animais$brain #guardando os valores do cerebro do dataframe animais no objeto cerebro for(i in 2:1000){ sim_brain<-sample(cerebro) result.simula[i]<-coef(lm(log(sim_brain)~log(body), data=animais))[[2]] } result.simula hist(result.simula) abline(v=result.simula[1], lty=2, col="red") pvalor<-sum(abs(result.simula)>=abs(result.simula[1]))/length(result.simula) #Pergunta: Qual a probabilidade da inclinacao observada ter sido gerada por variaveis que sao independentes? #RResposta: Com significancia estatistica (p<0.05) as variaveis sao dependentes e ha uma correlacao positiva entre elas.