To me they're all equally useful synonyms to a large degree. I would say that in a formality ranking from informal (i.e. speech with a friend) to formal (e.g. political obfuscation) they would go in this order:

tendency > inclination > disposition > propensity > proclivity

So, these would all be mostly equivalent phrases:


J has a tendency to waffle (or J tends to waffle)
J is inclined to waffle
J is (frequently) disposed to waffling
J has a propensity to waffle
J has a proclivity to waffle


Some further notes:


I wouldn't use proclivity in speech, and rarely in writing, unless
trying to be 'clever' for some particular reason, but that's just me. See George Orwell's essay 'Politics and the English Language' for more on this.
Disposition is one of those words that has a lot of uses and
meanings: and as such its use can obscure meaning. If you ever see it in business contracts or legal documents double-check exactly what is meant!


What is the difference between 'inclination' and its varieties; that is 'tendency - propensity - disposition - inclination - proclivity'?
When using the step.plr() function in the stepPlr package, if my predictors are factors, do I need to encode my predictors as dummy variables manually before passing it to the function? I do know that I can specify "level", but how  the "level" parameter works is confusing to me. 
My understanding is that I need to tell step.plr() explicitly which factors should be encoded as dummy variables and thus leaving one factor out intentionally. 

Let's consider a simple example. Suppose I have 1 categorical predicator with 4 levels and binary response. Normally, if I use glm() to fit a logistic regression model, glm() would automatically convert the categorical predicator into 3 dummy variables. Now in stepPlr(), do I specify the "level" parameter for that predictor with 4 levels or 3 levels? The "Help" section is vague, and says: 


  If the j-th column of x is discrete, level[[ j ]] is the set of levels for the categorical factor.


Does it mean I should tell step.plr() about all 4 levels, or I should make an intelligent decision myself and tell step.plr() to use only 3 levels? 

==============UPDATE (16 Oct 2012)=============

The following example will demonstrate what is the problem with step.plr()'s automatic dummy variable encoding. It is a slight modification of the code in the function's help section. 
     set.seed(100)

n &lt;- 100
p &lt;- 3
z &lt;- matrix(sample(seq(3),n*p,replace=TRUE),nrow=n)
x &lt;- data.frame(x1=factor(z[ ,1]),x2=factor(z[ ,2]),
                x3=factor(sample(seq(3), n, replace=TRUE, prob=c(0.2, 0.5, 0.3))),
                x4=factor(sample(seq(3), n, replace=TRUE, prob=c(0.1, 0.3, 0.6))))
y &lt;- sample(c(0,1),n,replace=TRUE)
fit &lt;- step.plr(x,y, cp="aic")
summary(fit)


And here's an excerpt of the result:

Call:
plr(x = ix0, y = y, weights = weights, offset.subset = offset.subset, 
    offset.coefficients = offset.coefficients, lambda = lambda, 
    cp = cp)

Coefficients:
      Estimate Std.Error z value Pr(&gt;|z|)
Intercept  0.91386   5.04780   0.181    0.856
x4.1       1.33787   4.61089   0.290    0.772
x4.2      -1.70462   4.91240  -0.347    0.729
x4.3       0.36675   3.18857   0.115    0.908
x3.1:x4.1  7.04901  14.35112   0.491    0.623
x3.1:x4.2 -5.50973  15.53674  -0.355    0.723
x3.1:x4.3 -0.50012   7.95651  -0.063    0.950


You can see that all levels, that is, (1,2,3), are used to fit the model. But normally you only need two dummy variables to encode a predictor with 3 levels.
On the other hand, if you use glm(): 

glm(y~.^2, data=x, family=binomial)


you will get the correct dummy variable encoding.
