0

When trying to perform a Beta regression on the dataset below i get following error. Can anyone tell me how to deal with this error?

thanks in advance

Error in quantile.default(x$residuals) : 
  missing values and NaN's not allowed if 'na.rm' is FALSE
In addition: Warning message:
In sqrt(v * (1 - hatvalues(object))) : NaNs produced

code

model.beta = betareg(Percentage ~ Kuikenweek,data = dieet)
summary(model.beta)

data

Jaar    Kuikenweek  Percentage  Locatie
2013    Week 1  0,4238  Markenje
2013    Week -1 0,8248  Markenje
2013    Week 2  0,5927  Markenje
2013    Week -2 0,3208  Markenje
2013    Week 3  0,8317  Markenje
2013    Week -3 0,7314  Markenje
2014    Week 1  0,4624  Markenje
2014    Week 2  0,5224  Markenje
2014    Week -2 0,3528  Markenje
2014    Week 3  0,7739  Markenje
2014    Week -3 0,1264  Markenje
2015    Week -1 0,4516  Markenje
2015    Week -2 0,4306  Markenje
2015    Week -3 0,5243  Markenje
2013    Week 1  0,5117  Scheelhoek
2013    Week -1 0,1490  Scheelhoek
2013    Week 2  0,3342  Scheelhoek
2013    Week -2 0,5069  Scheelhoek
2013    Week 3  0,7101  Scheelhoek
2013    Week -3 0,8019  Scheelhoek
2013    Week 4  0,7569  Scheelhoek
2013    Week 5  0,9096  Scheelhoek
2013    Week 6  0,9013  Scheelhoek
2014    Week 1  0,5403  Scheelhoek
2014    Week -1 0,2264  Scheelhoek
2014    Week 2  0,5775  Scheelhoek
2014    Week 3  0,7366  Scheelhoek
2014    Week -3 0,4086  Scheelhoek
2014    Week 4  0,5750  Scheelhoek
2014    Week 5  0,6623  Scheelhoek
2015    Week 1  0,7758  Scheelhoek
2015    Week -1 0,1517  Scheelhoek
2015    Week 2  0,7587  Scheelhoek
2015    Week -2 0,3247  Scheelhoek
2015    Week 3  0,7463  Scheelhoek
2015    Week -3 0,6325  Scheelhoek
MrFlick
  • 195,160
  • 17
  • 277
  • 295
  • Please read https://stackoverflow.com/help/how-to-ask so others can help you in better way. – vsb Mar 06 '18 at 20:22
  • How did you import this data? What is `class(dieet$Percentage)`? See [how to make a great reproducible example](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). Sharing a `dput()` is better than raw data because it's not clear how you imported the data into R. – MrFlick Mar 06 '18 at 20:31
  • Kuikenweek = Chicken Week? It looks like commas are used for a decimal. The value after week seems to be the chronological week. So get rid if the word *Week* and just use the number after that word. Make sure R is reading your percentage correctly. It should be a number not a string. Week should be a number, not a string. – Harlan Nelson Mar 06 '18 at 21:08
  • Sorry for the bad structure of my question. Thanks for the help. – Ruben Vernieuwe Mar 07 '18 at 18:23

1 Answers1

3

I reproduce your error here:

# here are the data
devtools::source_gist("169bfa3a6c709fd2fd31c5bfa46648ee")
library(betareg)
# fix percentages 
dieet$Percentage <- gsub(",",".",dieet$Percentage)
dieet$Percentage <- as.numeric(dieet$Percentage)
model.beta = betareg(Percentage ~ Kuikenweek,data = dieet)
summary(model.beta)
## Error in quantile.default(x$residuals) : 
##  missing values and NaN's not allowed if 'na.rm' is FALSE
## In addition: Warning message:
## In sqrt(v * (1 - hatvalues(object))) : NaNs produced

The problem arises because the default residual type "sweighted2" is not working for your model. So:

summary(model.beta, type = "deviance")

at least gets you the summary. There are several types of residuals available and which one is best for your purposes is more of a statistical question.

atiretoo
  • 1,812
  • 19
  • 33