I'm trying to determine to what extent the no-show rate of registered candidates to a (past) event is dependent on the weekday that the event was hosted on.

Given a number of past events that have taken place on a weekday (Monday til Friday) I have a matrix that is structured as follows:

  • 5 columns: Monday, ..., Friday
  • Each entry in a row represents the no-show rate of a past event that has taken place on that weekday

As an example:

df1 <- data.frame(Monday   = runif(10,0,0.2), 
                  Tuesday  = runif(10,0.2,0.4), 
                  Wednesday= runif(10,0.4,0.6), 
                  Thursday = runif(10,0.6,0.8), 
                  Friday   = runif(10,0.8,1))

Given this information, I've been trying to understand what function in R would allow me to:

  1. Understand to what extent the day that the event is hosted on has a statistically significant effect on the no-show rate
  2. If there's a significant effect, how can I predict the no-show rate of a future event based on the weekday

So far I've been trying log-regressions with functions such as glm in R with little success, as my inputs are not 0 or 1, but rather % in between.

Any suggestions whether this is the right approach or what else I might try?

  • $\begingroup$ Welcome to SO! I think the first step would be to pivot your data to long format - that is, each row is a record and has two variables - day and no-show rate. $\endgroup$
    – PGSA
    Apr 5 at 12:41
  • $\begingroup$ Thanks a lot for the quick answer! So I have done the following to convert this to the format you suggested: library(tidyr) df_long <- gather(df1, day, no_show_rate) What would you do next? $\endgroup$
    – Marco W.
    Apr 5 at 12:55
  • $\begingroup$ If you want "statistically significant" then you could need numbers rather than rates. $\endgroup$
    – Henry
    Apr 5 at 16:46
  • $\begingroup$ Does your data literally have 10 observations per day? Or are there more observations? $\endgroup$ Apr 5 at 19:17
  • 1
    $\begingroup$ Hi @Henry - thanks for your input. I do have the numbers (people registered, people not attending). Are you saying that it would be easier to model based on these numbers rather than the no-show rates? If yes, how? $\endgroup$
    – Marco W.
    Apr 8 at 6:51

1 Answer 1


You need the actual numbers, not only the rates. Present those as a contingency table of counts, with five rows, one for each weekday. Then there are two columns, one with the number attending, the other with the number not attending. The sum would be the number registered.

Then you can use the chi-squared test. Search this site for many examples!

It would also be possible to use a multinomial logistic regression, which would give much of the same information, in this case.

  • $\begingroup$ Thanks a lot for the answer Kjetil - to understand: in my dataset the number of data points for each weekday is not just one, but ~100 (meaning that e.g. for the past n Monday's, I have n data points with the registered candidates & not attending candidates, respectively). How would you handle these in this setting? $\endgroup$
    – Marco W.
    Apr 8 at 15:30
  • $\begingroup$ About how many registered per day? If you think that there are only weekday effects, you could pool all mondays, maybe. Another approach, admitting some individual day effects, is to use a random effects model, with fixed effect for monday, ... and then random effects for individual days. Depends $\endgroup$ Apr 8 at 15:40
  • $\begingroup$ Got it, thanks Kjetil! $\endgroup$
    – Marco W.
    Apr 8 at 16:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.