[R-br] integral de dados discretos

Luigi Cavalcanti luigicavalcanti22 em gmail.com
Sexta Outubro 26 17:41:19 BRST 2012


Desculpem-me pela mancada, segue email anterior, saída do dput() e CMR...

Prezados colegas, tenho alguns dados de produção de metano ao longo do
tempo em intervalos de 12 minutos. Gostaria da opinião de vocês sobre a
melhor forma de integrar a área sob a curva formada. Já pesquisei algumas
coisas e acredito que usar a função integrate() sobre o vetor gerado com as
funções approxfun() ou splinefun() podem resolver o problema ao ligarem os
pontos, embora redundem em resultados diferentes e não contemplem
exatamente todos os pontos. Segue o banco de dados e as funções usadas por
mim...

### Banco de dados
data<-structure(list(Sample = 1:100, CH4A = c(0.02492, 0.0272, 0.03284,
0.04048, 0.04256, 0.0474, 0.05128, 0.05348, 0.05292, 0.05156,
0.05532, 0.05608, 0.05152, 0.05234, 0.05222, 0.05266, 0.056,
0.05008, 0.05038, 0.05148, 0.0485, 0.04748, 0.04272, 0.04294,
0.04132, 0.03824, 0.03672, 0.04056, 0.03592, 0.03492, 0.03818,
0.03628, 0.03492, 0.03588, 0.03196, 0.0338, 0.03456, 0.03284,
0.03684, 0.03282, 0.03116, 0.03082, 0.03072, 0.03488, 0.0349,
0.035, 0.03516, 0.03256, 0.02988, 0.03408, 0.02854, 0.03392,
0.02844, 0.0327, 0.031, 0.03074, 0.0308, 0.02808, 0.02796, 0.02822,
0.04016, 0.03704, 0.04814, 0.04636, 0.04824, 0.0514, 0.0506,
0.05602, 0.0623, 0.06436, 0.06132, 0.06396, 0.0612, 0.05466,
0.05832, 0.06704, 0.06776, 0.06076, 0.05698, 0.06096, 0.06566,
0.06282, 0.05626, 0.05456, 0.05716, 0.05634, 0.05258, 0.05564,
0.05608, 0.05284, 0.05228, 0.05008, 0.05322, 0.05018, 0.04752,
0.04478, 0.04732, 0.04524, 0.03788, 0.04192)), .Names = c("Sample",
"CH4A"), row.names = c(NA, 100L), class = "data.frame")

#### Plotagem -----
plot(CH4A~Sample,data,type='l')
#### integrando com approxfun()
f2 <- approxfun(data$Sample, data$CH4A)
integrate(f2, min(data$Sample), max(data$Sample),subdivisions=1000)
#### integrando com splinefun()
f3 <- splinefun(data$Sample, data$CH4A)
integrate(f3, min(data$Sample), max(data$Sample),subdivisions=1000)
#### plotagem final --------
plot(data$CH4A~data$Sample, type = "n")
curve(f2(x), add = TRUE, col=1)
curve(f3(x), add = TRUE, col=3)
f4 <- splinefun(data$Sample, data$CH4A, method ="natural")
curve(f4(x), add = TRUE, col=4)
### Percebam que algumas variações bruscas não são contempladas pelas
curvas ajustadas, o que provavelmente afeta a área.
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20121026/f594afc1/attachment.html>


Mais detalhes sobre a lista de discussão R-br