FW: [R] HELP ERROR Weibull values must be > 0

Vanúcia SchumacherCurso de graduação em meteorologia - UFPELBolsista do Programa de Educação Tutorial - PET From: vanucia-schumacher@hotmail.com To: tura@centroin.com.br; r-help@r-project.org Date: Tue, 21 Feb 2012 22:03:09 +0000 Subject: Re: [R] HELP ERROR Weibull values must be > 0 Tura, meus dados possuem mais de 700 elementos, fica muito inviavel passa-los aqui por summarya questão e que nesses dados eu tenho valores ausentes e valores 0, li algumas sugestões em que deve-se mensurar os valores em 0 para 0.00001,sendo assim ele roda tranquilo , mas retorna um aviso de Nas, mas me retorna os parametros. Não sei se estou fazendo a coisa certa, mas como estou querendo ajustar a distribuição m dados de vento paraprodução de energia eólica, conforme varios artigos que li, essa seria a melhor distribuição. Se puder ajudar fico muito agradecida. library(MASS)> dados<-read.table("inverno.txt",header=FALSE)> vento50<-fitdistr(dados[[1]],densfun="weibull")Mensagens de aviso perdidas:1: In dweibull(x, shape, scale, log) : NaNs produzidos2: In dweibull(x, shape, scale, log) : NaNs produzidos3: In dweibull(x, shape, scale, log) : NaNs produzidos4: In dweibull(x, shape, scale, log) : NaNs produzidos5: In dweibull(x, shape, scale, log) : NaNs produzidos6: In dweibull(x, shape, scale, log) : NaNs produzidos> vento50 shape scale 0.61473436 2.43536064 (0.01895222) (0.13202750) Vanúcia SchumacherCurso de graduação em meteorologia - UFPELBolsista do Programa de Educação Tutorial - PET
Date: Tue, 21 Feb 2012 18:40:47 -0200 From: tura@centroin.com.br To: vanucia-schumacher@hotmail.com Subject: Re: [R] HELP ERROR Weibull values must be > 0
On 02/21/2012 01:48 PM, Vanúcia Schumacher wrote:
GUYS,
I NEED HELP WITH ERROR:
library(MASS)
dados<-read.table("mediaRGinverno.txt",header=FALSE) vento50<-fitdistr(dados[[1]],densfun="weibull") Erro em fitdistr(dados[[1]], densfun = "weibull") : Weibull values must be> 0 WHY RETURN THIS ERROR? WHAT CAN I DO?
Vanúcia
Vou lhe ajudar dentro do possível mas antes de tudo se seus dados tem valores menores ou iguais a zero eles não pode ser ajustados numa distribuição weibull pois esta só permite valores >= 0.
Que tal você me mandar o resultado do summary(dados)
Abracos Tura
[[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.

On 02/22/2012 12:38 AM, Vanúcia Schumacher wrote:
Tura, meus dados possuem mais de 700 elementos, fica muito inviavel passa-los aqui por summarya questão e que nesses dados eu tenho valores ausentes e valores 0, li algumas sugestões em que deve-se mensurar os valores em 0 para 0.00001,sendo assim ele roda tranquilo , mas retorna um aviso de Nas, mas me retorna os parametros. Não sei se estou fazendo a coisa certa, mas como estou querendo ajustar a distribuição m dados de vento paraprodução de energia eólica, conforme varios artigos que li, essa seria a melhor distribuição. Se puder ajudar fico muito agradecida.
Bom dia Vanúncia Quando lhe falei do summary queria apenas o resultado, segue um exemplo para te exemplificar melhor set.seed(146) x<-rweibull(1000,shape=2,scale=3) x[c(34,56,12,156,789)]<-0 x[c(44,62,21,516,189)]<-NA summary(x) Min. 1st Qu. Median Mean 3rd Qu. Max. NA's 0.000 1.585 2.468 2.630 3.467 8.519 5.000 Vamos agora a seu problema. Vejo duas situações distintas: o valor 0 é possível nos seus dados (o que significa que de fato existe uma medida de valor 0) ou o valor 0 não é possível (este valor ocorreu porque seu equipamento de medida não consegue medir abaixo de um valor limite qualquer ou em vez de ser preenchido como NA alguém pois 0) Na primeira situação o ideal é não ajustar uma weibull pois ela não permite este tipo de valor. Nesta situação vejo duas possives soluções: 1- Achar outra distribuição 2- Utilizar uma mistura de distribuições, algo como uma weibull + uma "distribuição carregada" no 0, ou seja, dados = p*weibull+(1-p)*0, onde p é a probabilidade do seu dado ter um distribuição weibull. Na segunda situação tanto o zero quanto o NA são valores omissos e a solução é usar de imputação. Só que a situação aqui exige cuidado. Observe que a imputação para o NA é diferente da imputação para o 0. O NA pode ter qualquer valor mais o 0 deve ter um valor maior que 0 e menor que o limite mínimo de detecção do seu aparelho. Usar um valor fixo irá por um viés na sua estimativa e dificultará o ajuste. Eu resolveria da seguinte forma para os dados NA require(MASS) x_linha <- x[!is.na(x)&x!=0] para<-fitdistr(x_linha,"weibull") # garantir a reprodutibilidade da imputação set.seed(qualquer valor que você quiser) x[is.na(x)] <- rweibull(sum(is.na(x)),para$estimate) para os dados 0 eu utilizaria uma distribuição uniforme entre 0 e o menor valor de detecção algo como # garantir a reprodutibilidade da imputação set.seed(qualquer valor que você quiser) x[x==0]<-runif(numero de valores iguais a zero, 0, menor valor de detecção) A nova distribuição será uma weibull com algum viés por causa da uniforme, mas este você pode estimar pois conhece a distribuição []s Tura

Vanúcia, Uma outra forma de efetuar esse procedimento é o indicado na norma IEC 61400-12-1. Nela, os dados são lidos a uma frequência de 1 Hz, e depois, é calculada a média para intervalos de 10 minutos. Com isso, a probabilidade de uma média ser igual a zero é muito pequena. Veja se é possível efetuar esse procedimento nos seus dados. Saudações. Em 21 de fevereiro de 2012 23:38, Vanúcia Schumacher < vanucia-schumacher@hotmail.com> escreveu:
Vanúcia Schumacher Curso de graduação em meteorologia - UFPEL Bolsista do Programa de Educação Tutorial - PET
From: vanucia-schumacher@hotmail.com To: tura@centroin.com.br; r-help@r-project.org Date: Tue, 21 Feb 2012 22:03:09 +0000 Subject: Re: [R] HELP ERROR Weibull values must be > 0
Tura, meus dados possuem mais de 700 elementos, fica muito inviavel passa-los aqui por summarya questão e que nesses dados eu tenho valores ausentes e valores 0, li algumas sugestões em que deve-se mensurar os valores em 0 para 0.00001,sendo assim ele roda tranquilo , mas retorna um aviso de Nas, mas me retorna os parametros. Não sei se estou fazendo a coisa certa, mas como estou querendo ajustar a distribuição m dados de vento paraprodução de energia eólica, conforme varios artigos que li, essa seria a melhor distribuição. Se puder ajudar fico muito agradecida.
library(MASS)> dados<-read.table("inverno.txt",header=FALSE)> vento50<-fitdistr(dados[[1]],densfun="weibull")Mensagens de aviso perdidas:1: In dweibull(x, shape, scale, log) : NaNs produzidos2: In dweibull(x, shape, scale, log) : NaNs produzidos3: In dweibull(x, shape, scale, log) : NaNs produzidos4: In dweibull(x, shape, scale, log) : NaNs produzidos5: In dweibull(x, shape, scale, log) : NaNs produzidos6: In dweibull(x, shape, scale, log) : NaNs produzidos> vento50 shape scale 0.61473436 2.43536064 (0.01895222) (0.13202750)
Vanúcia SchumacherCurso de graduação em meteorologia - UFPELBolsista do Programa de Educação Tutorial - PET
Date: Tue, 21 Feb 2012 18:40:47 -0200 From: tura@centroin.com.br To: vanucia-schumacher@hotmail.com Subject: Re: [R] HELP ERROR Weibull values must be > 0
On 02/21/2012 01:48 PM, Vanúcia Schumacher wrote:
GUYS,
I NEED HELP WITH ERROR:
library(MASS)
dados<-read.table("mediaRGinverno.txt",header=FALSE) vento50<-fitdistr(dados[[1]],densfun="weibull") Erro em fitdistr(dados[[1]], densfun = "weibull") : Weibull values must be> 0 WHY RETURN THIS ERROR? WHAT CAN I DO?
Vanúcia
Vou lhe ajudar dentro do possível mas antes de tudo se seus dados tem valores menores ou iguais a zero eles não pode ser ajustados numa distribuição weibull pois esta só permite valores >= 0.
Que tal você me mandar o resultado do summary(dados)
Abracos Tura
[[alternative HTML version deleted]]
______________________________________________ R-help@r-project.orgmailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Frederico Steinmetz Alvarez Engenheiro de Produção Elétrica Mestrando em Energia Eólica Laboratório Didático Pedagógico de Fluidos - LDPFLU Departamento de Engenharia Mecânica - DEMEC Universidade Federal de Pernambuco - UFPE (81) 8885-1105 (Oi) (48) 9143-5141 (Vivo)
participantes (3)
-
Bernardo Rangel Tura
-
Frederico Stienmetz Alvarez
-
Vanúcia Schumacher