I want to predict the y variable, my Y variable is in numeric, I have more than 15 independents variables , all are in ordinal levels like (good , better, best) , ( Acidic, not acidic) so on.. So each independent variables in levels .

I have data for year 2010 to 2016 , and I want to predict for year 2017.

Any one guide me which regression model I have to use in this case ? I am thinking multiple regression analysis , is it correct way if I have independents variables in levels?

I have 2000 data observations , and response variables are 18 all are in levels.

I am using sci kit-learn , python library.

  • 1
    $\begingroup$ Nothing prohibits you from using classical regression model. Just decide which of your variables is better to split into dummy and which remain ordinal. $\endgroup$
    – Bogdan
    Mar 11, 2017 at 11:05
  • $\begingroup$ @StudentT ,using ANOVA , can I predict my dependent variable? So I am confuse in Regression analysis $\endgroup$ Mar 11, 2017 at 11:12
  • $\begingroup$ @Bogdan, oh i see, how can I do that ? to split into dummy variables and remain ordinal? any algorithm need to use? $\endgroup$ Mar 11, 2017 at 11:15
  • $\begingroup$ @StudentT, Oh i see, there is any algorithm in machine learning if they gives which model is use in this data? $\endgroup$ Mar 11, 2017 at 11:17
  • $\begingroup$ As you have many observation it is possible to split into dummy every variable (without risk of overfitting). Suppose you have some variables with levels (good normal bad). If coefficients something like 5 (normal) 10 (good) then you may use ordinal variable as its coefficient will be 5. But if you have something like 1 and 50 then it is no clear step so better to use dummy. You may also formalize procedure using coefficients test but according to my experience just looking at coefficients will be enough. $\endgroup$
    – Bogdan
    Mar 11, 2017 at 15:47

1 Answer 1


Some of your independent variables are clearly ordinal. Those are tricky to deal with, but one approach that I have recently been using is optimal scaling. In SAS you can do this with PROC TRANSREG; in R with the opscale package. I don't use Python, but Googling found this

  • $\begingroup$ Thanks for guide, it's okay I will do in R, So basically using Opscale we get single value for our independents variables ? And next I have to use simple regression ,right? $\endgroup$ Mar 14, 2017 at 5:26
  • $\begingroup$ I have only done this in SAS, I don't know exactly how R's function behaves. $\endgroup$
    – Peter Flom
    Mar 14, 2017 at 12:11
  • $\begingroup$ .I have SAS too. Can you please help me, hows working PROC TRANSREG in SAS? I search in googlinh found this support.sas.com/documentation/cdl/en/statug/63033/HTML/default/… , Can I use logistic regression in this case ? $\endgroup$ Mar 15, 2017 at 5:10
  • $\begingroup$ I wrote a presentation/paper on using it. If that site doesn't work for you, you can look for "Alternative methods of regression when OLS is not right". $\endgroup$
    – Peter Flom
    Mar 15, 2017 at 13:41
  • $\begingroup$ thank you so much sir, I have single doubt is 1) If our independent variables are in ordinal then we use PROC TRANSRED in SAS this is only one solution to do this or we can use multiple logistic regression also? it's not possible logistic regression in this case ? if not possible then I have only concentrate in your research paper . thanks $\endgroup$ Mar 16, 2017 at 5:14

Your Answer

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

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