Índice
- O Curso R
-
- Tutoriais
-
- Apostila
-
- 6. Testes de Hipótese (em preparação!)
- Exercícios
-
- Material de Apoio
-
- Área dos Alunos
-
- Cursos Anteriores
-
IBUSP
Outras Insitutições
Linques
Visitantes
Outras Insitutições
Doutorado em andamento em Ecologia, Instituto de Biociências, USP. Lattes
Projeto de Tese: “Estrutura em mosaico geográfico da interação entre Krameria Loefl. e abelhas coletoras de óleo”. Orientador(a): Isabel Alves dos Santos BeeLab
Plano A – A polinização é o processo de transferência de pólen entre flores de espécimes coespecíficos resultando na fecundação e formação de frutos em angiospermas, sendo um importante serviço ecossistêmico prestado principalmente por abelhas. Sabe-se que esse processo, quando considerado na produção de alimentos, pode aumentar o rendimento em cultivos. No entanto, esse aspecto da produção ainda não se encontra difundido e nem implementado no manejo de cultivares. As abelhas são os principais polinizadores de espécies frutíferas potenciais como a mangueira, o cajueiro, a cajazeira, a aceroleira, o maracujazeiro, entre outras.
Nessa minha proposta de função, pretendo incorporar a polinização no valor final em produção de polpa. Dessa forma, a função fará uma estimativa do rendimento em reais de um produtor considerando a polinização em sua área cultivada, detectando possível déficit de polinizadores.
A função receberá como entrada de dados: um data frame, com uma amostragem do peso médio dos frutos por planta; número médio de flores (andróginas e/ou pistiladas¹) por inflorescência e de inflorescências por planta; e uma matriz contendo o resultado de tratamentos de polinização² (autopolinização manual, polinização cruzada manual e polinização livre/controle), incluindo o número de flores usadas em cada tratamento e o número resultante de frutos formados que alcançaram a maturação. Além disso, será necessário incorporar os seguintes dados na função: total de plantas no cultivo, porcentagem média de polpa adquirida por fruto, valor em reais e peso da unidade de venda (e.g. saquinho de polpa com 100g a R$ 1,79). Os dados da matriz devem seguir as premissas do qui-quadrado, que será o teste utilizado para comparar os tratamentos de polinização. A função retornará um array contendo o valor bruto total em reais da produção considerando cada tratamento, se houver diferença significativa entre eles, e a porcentagem de perda se houver déficit de polinizadores na área de cultivo.
¹ Flores com ovário fértil, possíveis de se desenvolver em frutos.
² A polinização cruzada manual e a autopolinização manual (quando a espécie é autocompatível) indicam a frutificação potencial máxima da espécie em questão, ou seja, há uma taxa próxima a 100% de polinização. Por outro lado, a polinização livre (controle) indica a ação dos polinizadores atuantes na área. Se o controle resulta em um valor significativamente menor que os tratamentos, há um déficit de polinizadores.
Plano B – Infelizmente muitos condomínios na cidade de São Paulo não possui uma gestão de resíduos que começa com a coleta seletiva e termina com o destino apropriado e proveitoso do lixo. O condomínio onde moro, por exemplo, possui 4 prédios com 17 andares cada e 6 apartamentos por andar. Imagina a quantidade de lixo produzido…
Minha ideia aqui é calcular o valor do ganho com a gestão do lixo relacionando com o custo para sua implementação e manutenção, mostrando aos moradores que pode valer a pena essa prática e que o valor da conta de condomínio pode diminuir com ela (justificativa que funciona entre as pessoas!). Assim, só valerá a pena a criação da gestão do lixo se refletir de fato em um valor considerável a menos na conta.
Os dados de entrada estarão em um data frame contendo a quantidade (kg) dos diferentes resíduos recicláveis, que geralmente são coletados seletivamente, produzidos por uma unidade (andar ou apartamento). O valor do kg por tipo de resíduo e o custo para implementar essa gestão (divulgação, aquisição de lixeiras para armazenamento adequado, de composteira para produzir o próprio adubo da área verde do condomínio, etc) serão incorporados na função. Além disso, o valor individual atual da conta de condomínio e o número de unidades serão necessários na função.
A ideia é a função retornar um array contendo o valor do ganho bruto com a venda dos materiais recicláveis e o valor ajustado da conta de condomínio.
Comentários Ambas as propostas são interessantes, invista na primeira. Vc. não precisa de um array (no sentido estrito) para retornar o resultado, pense melhor na estrutura do resultado que irá retornar e qual o objeto mais adequado. Parece que seus totais marginais da tabela de contingência da matriz de entrada apresentam totais marginais pré-definidos ( irá definir quantas flores terá em cada tratamento), se for o caso, dê ao usuário a opção de usar o teste exato de fisher ou qui-quadrado.
— Alexandre Adalardo de Oliveira 2014/04/25 17:02
poliniza <- function(x, y, TC, PUV, VU) { flor <- mean(x[,1])*mean(x[,2])*TC #estima o número de flores na cultura nao <- y[,2]-y[,3] #vetor contendo o número de flores não polinizadas nos tratamentos matrizpol<- matrix(c(nao, y[,3]),2,2) #matriz contendo a tabela de contingência y$taxa <- y[,3]/y[,2] #insere uma coluna no data-frame y contendo a taxa de frutificação de cada tratamento pesolivre <- flor*y[2,4]*mean(x[,3])*mean(x[,4]) #quantidade estimada da produção (em gramas) na cultura considerando a taxa de frutificação do controle pesolivre.kg <- pesolivre/1000 #quantidade da produção em quilogramas considerando o controle valorlivre <- (VU*pesolivre)/PUV #valor em reais da produção considerando o tratamento controle pesomanual <- flor*y[1,4]*mean(x[,3])*mean(x[,4]) #quantidade estimada da produção (em gramas) na cultura considerando a taxa de frutificação do controle pesomanual.kg <- pesomanual/1000 #quantidade da produção em quilogramas considerando o controle valormanual <- (VU*pesomanual)/PUV #valor em reais da produção considerando o tratamento controle perdeuv <- valormanual - valorlivre #diferença entre os valores em reais considerando o tratamento manual e o controle perdeup<- pesomanual.kg - pesolivre.kg #diferença entre a quantidade da produção considerando o tratamento manual e o controle if(all(matrizpol>=10)) #se todos os valores da tabela forem maior ou igual a 10, a função segue com o teste do Qui-quadrado { polqui <- chisq.test(matrizpol) #cria um objeto contendo o resultado do Qui-quadrado if(polqui$p.value>0.05) #se o p do Qui-quidrado for maior que 0,05 { print("Não há déficit de polinizadores na cultura") #indicação do resultado biológico do teste ao aceitar a hipótese nula } if(polqui$p.value<=0.05 & y[1,4]<y[2,4]) #se o p do Qui-quadrado for menor ou igual a 0,05 e a taxa denfrutificação do controle maior do que o tratamento manual { print("A polinização manual não foi eficiente") #indicação do resultado biológico da condição em questão } if(polqui$p.value<=0.05 & y[1,4]>y[2,4]) #se o p do Qui-quadrado for menor ou igual a 0,05 e a taxa denfrutificação do controle menor do que o tratamento manual { print("Há déficit de polinizadores na cultura") #indicação do resultado biológico da condição em questão return(list(Ganho.em.Reais=valorlivre,ValorPerdido.em.Reais=perdeuv, Producao.em.kg=pesolivre.kg, ProducaoPerdida.em.kg=perdeup, p.Chisq=polqui$p.value)) #retorna o ganho (R$) com a produção, a quantidade total do produto de venda em kg, as perdas devido ao déficit e o p do Qui-quadrado } return(list(Ganho.em.Reais=valorlivre,Producao.em.kg=pesolivre.kg, p.Chisq=polqui$p.value)) #retorna o ganho (R$) com a produção, a quantidade total do produto de venda em kg e o p do Qui-quadrado } else ##se ao menos um dos valores da tabela for menor que 10, a função segue com o teste exato de Fisher { polfi <- fisher.test(matrizpol) #cria um objeto contendo o resultado do teste de Fisher if(polfi$p.value>0.05) #se o p do exato de Fisher for maior que 0,05 { print("Não há déficit de polinizadores na cultura") #indicação do resultado biológico do teste ao aceitar a hipótese nula } if(polfi$p.value<=0.05 & y[1,4]<y[2,4]) #se o p do exato de Fisher for menor ou igual a 0,05 e a taxa denfrutificação do controle maior do que o tratamento manual { print("A polinização manual não foi eficiente") #indicação do resultado biológico da condição em questão } if(polfi$p.value<=0.05 & y[1,4]>y[2,4]) #se o p do exato de Fisher for menor ou igual a 0,05 e a taxa denfrutificação do controle menor do que o tratamento manual { print("Há déficit de polinizadores na cultura") #indicação do resultado biológico da condição em questão return(list(Ganho.em.Reais=valorlivre,ValorPerdido.em.Reais=perdeuv, Producao.em.kg=pesolivre.kg, ProducaoPerdida.em.kg=perdeup, p.Fisher=polfi$p.value)) #retorna o ganho (R$) com a produção, a quantidade total do produto de venda em kg, as perdas devido ao déficit e o p do exato de Fisher } return(list(Ganho.em.Reais=valorlivre,Producao.em.kg=pesolivre.kg, p.Fisher=polfi$p.value)) ##retorna o ganho (R$) com a produção, a quantidade total do produto de venda em kg e o p do exato de Fisher } }
poliniza package:desconhecido R Documentation Valoração do Serviço de Polinização em Produção Agrícola Description: Estima o ganho bruto adquirido por um produtor no comércio de um determinado produto oriundo de culturas de frutíferas dependentes de polinização. Usage: poliniza(x, y, TC, PUV, VU) Arguments: x data-frame contendo uma amostragem de quatro variáveis na cultura em questão: [,1] - número de flores por inflorescência. [,2] - número de inflorescências por indivíduo. [,3] - peso médio de frutos. [,4] - taxa média (0 a 1) do produto de interesse proveniente dos frutos (Exemplo: polpa). y data-frame contendo o número de flores utilizado em dois tratamentos de polinização (manual e controle) e as respectivas quantidades de frutos maduros produzidos: [,1] - tratamentos de polinização: [1,1] = manual; e [2,1] = controle. [,2] - número de flores utilizadas em cada tratamento. [,3] - número de frutos maduros produzidos em cada tratamento. TC tamanho da cultura (quantidade de plantas). PUV Peso da unidade de venda do produto (em gramas). VU Valor (R$) da unidade de venda. Details: O tratamento manual se refere ou a polinização cruzada ou autopolinização, dependendo de se o sistema reprodutivo da espécie cultivada é autocompatível ou não. É necessário se certificar quanto a esse aspecto. Value: Uma lista contendo os seguintes componentes: Ganho.em.Reais : valor da produção considerando a taxa de frutificação do tratamento controle. ValorPerdido.em.Reais : diferença entre os valores provenientes da taxa de frutificação do tratamento manual e controle, apenas se houver déficit de polinização na cultura. Producao.em.kg : quantidade do produto de interesse adquirido a partir da taxa de frutificação do controle. ProducaoPerdida.em.kg : diferença entre a quantidade da produção provenientes da taxa de frutificação do tratamento manual e controle, apenas se houver déficit de polinização na cultura. p.Chisq : retorna o p-value do chisq.test, usado caso os valores da tabela de contingência sejam iguais ou maiores que 10. p.Fisher : retorna o p-value do fisher.test, usado caso haja um valor na tabela de contingência menor que 10. A função retorna uma de três mensagens possíveis dependendo do p-value do teste utilizado: "Não há déficit de polinizadores na cultura" - indica que o serviço de polinização na cultura está sendo prestado de forma máxima. "Há déficit de polinizadores na cultura" - indica déficit no serviço de polinização "A polinização manual não foi eficiente" - indica que o máximo de frutificação da cultura não foi alcançado devido a problemas no método ou que apenas polinizadores são capazes de acionar o mecanismo. Author(s): Liedson Tavares Carneiro (liedson.carneiro@ib.usp.br) References: Vaissière, B.E., Freitas, B.M., Gemmil-Herren, B. (2011) Protocol to detect and asses pollination deficits in crops: a handbook for its use. Rome: FAO. Page 5 (Fig.1.3). See Also: chisq.test fisher.test Examples: fl <- c(120, 105, 98, 108, 125, 95) inf <- c(22, 31, 18, 27, 41, 25) pes <- c(107,155,148,125,146,110) tx <- c(0.55, 0.70, 0.66, 0.72,0.59,0.6) x <- data.frame(fl,inf,pes,tx) tra <- c("manual","controle") fltr1 <- c(78, 89) frut1 <- c(25,34) y1 <- data.frame(tra,fltr,frut) poliniza(x,y1,450,100,1.79) #usa o teste do Qui-quadrado fltr2 <- c(12,11) frut2 <- c(3,3) y2<- data.frame(tra,fltr2,frut2) poliniza(x,y2,450,100,1.79) #usa o teste exato de Fisher