
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