Here is the kind of data I have:
I have two predictor variables:
discrete non-ordinal -->
c('a', 'b', 'c')
discrete ordinal -->
c(10, 100, 200, 500)
Response variable: Proportion of TRUE over a list of TRUE/FALSE. If the list is of length 3, my variable can take only 4 values. But not all my values come from the same list's length. And moreover the lists are globally long ! So it is discrete proportions but can take more than 100 values.
Here is an example (resp is a subset of my data):
pred_1 = rep(c(10, 20, 50, 100), 30)
pred_2 = rep(c('a', 'b', 'c'), 40)
resp = c(0.08666667, 0.04000000, 0.13333333, 0.04666667, 0.50000000, 0.04000000, 0.02666667, 0.24666667, 0.15333333, 0.04000000, 0.06666667, 0.06666667, 0.03333333,
0.04000000, 0.26000000, 0.04000000, 0.04000000, 1.00000000, 0.28666667, 0.03333333, 0.06666667, 0.15333333, 0.06666667, 0.28000000, 0.35333333, 0.06000000,
0.06000000, 0.05333333, 0.96666667, 0.06666667, 0.03333333, 0.22000000, 0.04666667, 0.04666667, 0.05333333, 0.05333333, 0.05333333, 0.08000000, 0.48666667,
0.08666667, 0.02666667, 0.21333333, 0.45333333, 0.04666667, 0.36000000, 0.06666667, 0.04000000, 0.06000000, 0.07333333, 0.06000000, 0.04000000, 0.04666667,
0.30000000, 0.08666667, 0.07333333, 0.06666667, 0.29333333, 0.36000000, 0.17333333, 0.04000000, 0.09333333, 0.11333333, 0.03333333, 0.08000000, 0.27333333,
0.08666667, 0.03333333, 0.04000000, 0.02666667, 0.07333333, 0.07333333, 0.02000000, 0.02666667, 0.08000000, 0.07333333, 0.02666667, 0.06666667, 0.07333333,
0.95333333, 0.05333333, 0.04000000, 0.11333333, 0.04000000, 0.07333333, 0.06666667, 0.05333333, 0.04000000, 0.04000000, 0.06000000, 0.12666667, 0.04666667,
0.04000000, 0.21333333, 0.05333333, 0.97333333, 0.11333333, 0.02666667, 0.04000000, 0.03333333, 0.37333333, 0.25333333, 0.06000000, 0.06000000, 0.06000000,
0.04666667, 0.26666667, 0.98000000, 0.02000000, 0.26000000, 0.06000000, 0.05333333, 0.28000000, 0.99333333, 0.04666667, 0.02666667, 0.04000000, 0.12666667,
0.04666667, 0.18000000, 0.03333333)
my response variable is not at all normally distributed (kolmogorov-smirnow and shapiro test + visual checking with qqplot()
) nor is the residuals of a linear model (lm()
). Moreover the common assumption of homoscedasticity is not respected neither.
I've always asked a similar question but not as much accurate here.
Peter Flom has suggested that I use a ordinal logistic regression (polr()
) but I might not have given him enough information (he did not know the number of levels for example). What do you think ? Which model would you suggest me ? Can I make a polr()
with that much levels? When I do it I actually get this:
Error message:
"Initial value "vmin" in not finite"
Notification message:
"glm.fit: fitted probabilities numerically 0 or 1 occurred "
I'm struggling on this problem for quite a long time. All your contributions are more than welcome !
polr
, ororm
orlrm
in therms
package. A case study usingorm
is in Chapter 15 of my Handouts. $\endgroup$orm
is made to handle continuous variable. You also talk about log-log, complementary log-log, cauchit, probit and logit ! Knowing my variables (as described above (including the fact that I have more than 100 levels in my response variable)) which method would you suggest me ? $\endgroup$