biometria tutoriais r-basico-mensuracao modelos

7
Objetivo O objetivo desse curso é apresentar os procedimentos necessários para se construir Modelos Dendrométricos. Modelos dendrométricos são modelos empíricos utilizados para obter predições de atributos de árvores individuais que são de mensuração difícil (altura) ou de mensuração destrutiva (volume, biomassa). Ao final desse curso você deverá ser capaz de: 1. ajustar modelos dendrométricos utilizando regressão linear; 2. verificar a qualidade das predições dos modelos ajustados e selecionar o modelo mais adequado; 3. gerar predições a partir do modelo selecionado para dados de árvores individuais; 4. agregar dados de árvores individuais para o nível de parcela. Modelos de Relação Hipsométrica Inicialmente, é necessário fazer a leitura dos dados que utilizaremos com exemplo para construção de modelos de relação hipsométrica no arquivo exemplo-hispo.csv. hipso = read.csv("exemplo-hipso.csv",header=T,as.is=T) head(hipso) Esses dados se referem a florestas plantads de Eucalyptus grandis. Somente as árvores com alturas medidas são apresentadas. A relação altura-diâmetro para todo conjunto de dados mostra grande variação, embora tem uma relação média próxima da linear: scatter.smooth( hipso$dap, hipso$ht, col="red") Verifiquemos o número de árvores por parcela: table( hipso$regiao, hipso$parcela ) O grande número de observações em algumas “parcelas” e regiões (Pilar do Sul, por exemplo) mostra que a variável parcelanão representa unicamente as parcelas. É necessário construir uma nova variável: hipso$parc = paste(hipso$regiao, hipso$inv, hipso$faz, hipso$proj, hipso$talhao, hips head(hipso) length( table(hipso$parc) ) hist( table(hipso$parc) )

Upload: carine-klauberg

Post on 06-Feb-2016

214 views

Category:

Documents


0 download

DESCRIPTION

Biometria Tutoriais R-basico-mensuracao Modelos

TRANSCRIPT

Page 1: Biometria Tutoriais R-basico-mensuracao Modelos

ObjetivoO objetivo desse curso é apresentar os procedimentos necessários para se construir ModelosDendrométricos. Modelos dendrométricos são modelos empíricos utilizados para obter predições deatributos de árvores individuais que são de mensuração difícil (altura) ou de mensuração destrutiva(volume, biomassa).

Ao final desse curso você deverá ser capaz de:

1. ajustar modelos dendrométricos utilizando regressão linear;2. verificar a qualidade das predições dos modelos ajustados e selecionar o modelo mais adequado;3. gerar predições a partir do modelo selecionado para dados de árvores individuais;4. agregar dados de árvores individuais para o nível de parcela.

Modelos de Relação HipsométricaInicialmente, é necessário fazer a leitura dos dados que utilizaremos com exemplo para construção demodelos de relação hipsométrica no arquivo exemplo-hispo.csv.

hipso = read.csv("exemplo-hipso.csv",header=T,as.is=T)head(hipso)

Esses dados se referem a florestas plantads de Eucalyptus grandis. Somente as árvores com alturasmedidas são apresentadas.

A relação altura-diâmetro para todo conjunto de dados mostra grande variação, embora tem uma relaçãomédia próxima da linear:

scatter.smooth( hipso$dap, hipso$ht, col="red")

Verifiquemos o número de árvores por parcela:

table( hipso$regiao, hipso$parcela )

O grande número de observações em algumas “parcelas” e regiões (Pilar do Sul, por exemplo) mostraque a variável parcelanão representa unicamente as parcelas. É necessário construir uma nova variável:

hipso$parc = paste(hipso$regiao, hipso$inv, hipso$faz, hipso$proj, hipso$talhao, hipso$parcela, sep="-")head(hipso)length( table(hipso$parc) )hist( table(hipso$parc) )

Page 2: Biometria Tutoriais R-basico-mensuracao Modelos

Nota-se que com exceção de uma parcela, todas possuem mais de 10 árvores para ajuste da relaçãohipsométrica.

Análise Gráfica da Relação HipsométricaPara explorar melhor a relação altura-diâmetro num número grande de parcelas podemos utilizar o pacotegráfico lattice com a função xyplot:

require(lattice)xyplot( x = ht ~ dap, data=hipso)

A função xyplot dois argumentos:

Primeiro: x é uma fórmula semelhante a que se utiliza para definir um modelo linear na função lm.Segundo: data é o data frame contendo as variáveis.

A construção de gráficos através de fórmulas aumenta muito a flexibilidade na construção de gráficos.

Consideremos agora, a possibilidade de construir uma relação hipsométrica para cada região. Será queobteríamos bons modelos?

xyplot( ht ~ dap | regiao, data=hipso)

Note que nessa fórmula a barra vertical (|) entra com a idéia de condição, isto é, construir um gráficoaltura-diâmetro para cada região.

Ainda há uma grande variabilidade por região. Se a relação hipsométrica for construída para cadaparcela, será que obteríamos bons modelos?

xyplot( ht ~ dap | parc, data=hipso)

Podemos tentar uma forma mais parsimoniosa de construção por região:

REG = unique( hipso$regiao )REGxyplot( ht ~ dap | parc, data=hipso[ hipso$regiao == REG[1], ])xyplot( ht ~ dap | parc, data=hipso[ hipso$regiao == REG[2], ])xyplot( ht ~ dap | parc, data=hipso[ hipso$regiao == REG[3], ])xyplot( ht ~ dap | parc, data=hipso[ hipso$regiao == REG[4], ])

Construção de Modelos de Relação Hipsométrica

Page 3: Biometria Tutoriais R-basico-mensuracao Modelos

A cada gráfico podemos fazer corresponder um modelo de relação hipsométrica.

Um modelo geral de relação hipsométrica é facilmente ajustado:

modgeral.lin = lm( ht ~ dap, data = hipso )plot(modgeral.lin)summary(modgeral.lin)

O que os gráficos e o resumo falam da qualidade desse modelo?

Podemos nos perguntar se outros modelos, além do linear, apresentariam um desempenho melhor:

#Modelo Logarítmicomodgeral.log = lm( log(ht) ~ log(dap), data = hipso )plot(modgeral.log)summary(modgeral.log)

#Modelo Schumachermodgeral.schu = lm( log(ht) ~ I(1/dap), data = hipso )plot(modgeral.schu)summary(modgeral.schu)

#Modelo Parabolóidemodgeral.parab = lm( ht ~ dap + I(dap^2), data = hipso )plot(modgeral.parab)summary(modgeral.parab)

Podemos também construir uma relação hipsométrica para cada região:

#Modelo Linearmodreg.lin = lm( ht ~ dap * factor(regiao), data = hipso )plot(modreg.lin)summary(modreg.lin)

#Modelo Parabolóidemodreg.parab = lm( ht ~ (dap + I(dap^2)) * factor(regiao), data = hipso )plot(modreg.parab)summary(modreg.parab)

Houve melhora nos modelos, quando se modela no nível de região?

Podemos também construir uma relação hipsométrica para cada parcela:

Page 4: Biometria Tutoriais R-basico-mensuracao Modelos

#Modelo Linearmodpar.lin = lm( ht ~ dap * factor(parc), data = hipso )plot(modpar.lin)summary(modpar.lin)

#Modelo Parabolóidemodpar.parab = lm( ht ~ (dap + I(dap^2)) * factor(parc), data = hipso )plot(modpar.parab)summary(modpar.parab)

Houve melhora nos modelos, quando se modela no nível de parcela?

Podemos fazer uma comparação de todos os modelos em termos de Coeficiente de Determinação (R2):

summary(modgeral.lin)$r.squaredsummary(modgeral.parab)$r.squared

summary(modreg.lin)$r.squaredsummary(modreg.parab)$r.squared

summary(modpar.lin)$r.squaredsummary(modpar.parab)$r.squared

Ou então uma comparação geral através do teste F, a partir do modelo mais simples até o modelo maiscomplexo:

anova(modgeral.lin, modreg.lin, modpar.lin)anova(modgeral.parab, modreg.parab, modpar.parab)

A comparação dos modelos também pode ser realizada em termos de AIC (Akaike Information Criterion):

AIC(modgeral.lin,modgeral.parab, modreg.lin,modreg.parab, modpar.lin,modpar.parab)

Ou de uma forma mais sofisticada, para construir uma tabela mais explicativa:

aic.tab = cbind(AIC(modgeral.lin, modreg.lin, modpar.lin), AIC(modgeral.parab, modreg.parab, modpar.parab))rownames(aic.tab) = c("Geral","Regiao","Parcela")colnames(aic.tab) = paste(colnames(aic.tab), sort(rep(c("Linear","Parabolico"),2)) )aic.tab

O que essa série de comparações nos diz?

Page 5: Biometria Tutoriais R-basico-mensuracao Modelos

Se verificarmos os resíduos dos modelos, veremos que os indicadores de desempenho dos modelos sãocoerentes:

#Verificando por Regiãoboxplot( residuals(modgeral.parab) ~ regiao, data=hipso , main="Geral", ylim=c(-15,10))abline(h=0,col="red")boxplot( residuals(modreg.parab) ~ regiao, data=hipso , main="Regiao", ylim=c(-15,10))abline(h=0,col="red")boxplot( residuals(modpar.parab) ~ regiao, data=hipso , main="Parcela", ylim=c(-15,10))abline(h=0,col="red")

#Verificando por Talhãobwplot( residuals(modgeral.parab) ~ factor(talhao) | regiao , data=hipso , main="Geral", xlab="Talhão")bwplot( residuals(modreg.parab) ~ factor(talhao) | regiao , data=hipso , main="Região", xlab="Talhão")bwplot( residuals(modpar.parab) ~ factor(talhao) | regiao , data=hipso , main="Parcela", xlab="Talhão")

Exercício

Trabalhando nesses mesmos dados, verifique se a inclusão da variável idade num modelo geral ouregional gera desempenho semelhante à modelagem por parcela.

Exercício

Trabalhando nesses mesmos dados, verifique se a inclusão da variável média das alturas dominates nummodelo geral ou regional gera desempenho semelhante à modelagem por parcela. A média das alturasdominantes necessita ser calculada.

Modelos de Equação de VolumeComo exemplo para construção de equações de volume, utilizaremos os dados do arquivo exemplo-volume-cax.csv:

volcax = read.csv("exemplo-volume-cax.csv",header=T,as.is=T)head(volcax)

Nesses dados há duas informações de volume: * volume comercial até o diâmetro de 7cm (v7cm), e *volume comercial até o diâmetro de 12cm (v12cm), e

Há três variáveis nominais que identificam o caixetal onde foram cubadas as árvores:

regiao: três regiões A (litoral Sul - SP), B (litoral Sul - RJ) e C (Vale do Ribeira);municip: municípios dos caixetais;

Page 6: Biometria Tutoriais R-basico-mensuracao Modelos

local: código numérico de cada caixetal.

Comecemos com um modelo geral de equação de volume para o volume comercial até 7cm.

# Modelo de Spurrscatter.smooth( volcax$dap^2*volcax$ht, volcax$v7cm, col="grey20")v7.spurr = lm( v7cm ~ I(dap^2*ht), data=volcax )plot(v7.spurr)summary(v7.spurr)

scatter.smooth( volcax$dap^2*volcax$ht, volcax$v7cm, col="grey20")abline(coef(v7.spurr), col="green")

# Modelo de Schumacher-Hallpairs( log(volcax[, c("dap","ht","v7cm")]) )splom( log(volcax[, c("dap","ht","v7cm")]), panel = function(x,y){ panel.splom(x,y); panel.loess(x,y,col="red")} )v7.sh = lm( log(v7cm) ~ log(dap) + log(ht), data=volcax )plot(v7.sh)summary(v7.sh)

Os gráficos diagnósticos revelam que o modelo Spurr tem problema de heteroscedasticidade, enquantoque o modelo Schumacher-Hall, não tem esse problema e possui distribuição do resíduo mais próxima àdistribuição Normal.

O coeficiente de determinação também sugere que o modelo Schumacher-Hall é melhor.

Equações de Volume com Variáveis QualitativasUma questão importante é se podemos obter uma equação de volume melhor introduzirmos variáviesqualitativas no modelo. Tomemos como exemplo o modelo Schumacher-Hall:

v7.sh.reg1 = lm( log(v7cm) ~ log(dap) + log(ht) + factor(regiao), data=volcax )plot(v7.sh.reg1)summary(v7.sh.reg1)v7.sh.reg2 = lm( log(v7cm) ~ (log(dap) + log(ht)) * factor(regiao), data=volcax )plot(v7.sh.reg2)summary(v7.sh.reg2)

AIC(v7.sh, v7.sh.reg1, v7.sh.reg2)anova(v7.sh, v7.sh.reg1, v7.sh.reg2)

Qual dos modelos é mais apropriado?

Page 7: Biometria Tutoriais R-basico-mensuracao Modelos

Outro aspecto importante é saber se podemos dispensar a medição da altura se identificarmos a regiãodo caixetal:

v7.sh.dr = lm( log(v7cm) ~ log(dap) * factor(regiao), data=volcax )plot(v7.sh.dr)summary(v7.sh.dr)

AIC(v7.sh.dr, v7.sh.reg1)

Qual a conclusão?

Exercício

Utilizando os dados de volume das árvores de caixeta, construa um modelo adequado para o volumecomercial até 12cm (v12cm).

Exercício

Verifique se o ajuste da equação de volume por caixetal (local) torna dispensável a medição da altura.