integral de dados discretos

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 Sample CH4A 1 1 0.02492 2 2 0.02720 3 3 0.03284 4 4 0.04048 5 5 0.04256 6 6 0.04740 7 7 0.05128 8 8 0.05348 9 9 0.05292 10 10 0.05156 11 11 0.05532 12 12 0.05608 13 13 0.05152 14 14 0.05234 15 15 0.05222 16 16 0.05266 17 17 0.05600 18 18 0.05008 19 19 0.05038 20 20 0.05148 21 21 0.04850 22 22 0.04748 23 23 0.04272 24 24 0.04294 25 25 0.04132 26 26 0.03824 27 27 0.03672 28 28 0.04056 29 29 0.03592 30 30 0.03492 31 31 0.03818 32 32 0.03628 33 33 0.03492 34 34 0.03588 35 35 0.03196 36 36 0.03380 37 37 0.03456 38 38 0.03284 39 39 0.03684 40 40 0.03282 41 41 0.03116 42 42 0.03082 43 43 0.03072 44 44 0.03488 45 45 0.03490 46 46 0.03500 47 47 0.03516 48 48 0.03256 49 49 0.02988 50 50 0.03408 51 51 0.02854 52 52 0.03392 53 53 0.02844 54 54 0.03270 55 55 0.03100 56 56 0.03074 57 57 0.03080 58 58 0.02808 59 59 0.02796 60 60 0.02822 61 61 0.04016 62 62 0.03704 63 63 0.04814 64 64 0.04636 65 65 0.04824 66 66 0.05140 67 67 0.05060 68 68 0.05602 69 69 0.06230 70 70 0.06436 71 71 0.06132 72 72 0.06396 73 73 0.06120 74 74 0.05466 75 75 0.05832 76 76 0.06704 77 77 0.06776 78 78 0.06076 79 79 0.05698 80 80 0.06096 81 81 0.06566 82 82 0.06282 83 83 0.05626 84 84 0.05456 85 85 0.05716 86 86 0.05634 87 87 0.05258 88 88 0.05564 89 89 0.05608 90 90 0.05284 91 91 0.05228 92 92 0.05008 93 93 0.05322 94 94 0.05018 95 95 0.04752 96 96 0.04478 97 97 0.04732 98 98 0.04524 99 99 0.03788 100 100 0.04192 #### 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. Grato pela atenção, Luigi Cavalcanti Doutorando em Zootecnia UFMG/Texas A&M University

Antes de mais nada, seu exemplo não é reproduzível. Para torná-lo seus dados tem que ser carregados para usa sessão R com uma simples operação de copia e cola. Para isso forneça o resultado do comando dput() aplicado aos seu data.frame, ou hospede os dados na web para ser lido diretamente com read.table(), ou use textConnection() com read.table(). Veja o exemplo aqui http://leg.ufpr.br/doku.php/ridiculas#grafico_com_dois_eixos_coordenados Só com os dados disponíveis na sessão é que podemos rodar o código. Não envie dados em anexo e nem colados do arquivo de texto, pois para nós usarmos teríamos que preparar todo processo de leitura. Facilite ao máximo a vida de quem tá disposto a te ajudar. À disposição. Walmes. ========================================================================== Walmes Marques Zeviani LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W) Departamento de Estatística - Universidade Federal do Paraná fone: (+55) 41 3361 3573 VoIP: (3361 3600) 1053 1173 e-mail: walmes@ufpr.br skype: walmeszeviani twitter: @walmeszeviani homepage: http://www.leg.ufpr.br/~walmes linux user number: 531218 ==========================================================================
participantes (2)
-
Luigi Cavalcanti
-
Walmes Zeviani