Elder Nunes
Elder Nunes

Reputation: 1

SAS ERROR IN A PROC HPBIN.... ERROR: class variable

I RAN THIS QUERY AND GET THIS ERROR MESSAGE:

ERROR: num_bankrupt_iva is class variable, only interval variable is supported.

/*WoE and IV Analysis*/
proc hpbin data=train numbin=5;
    input monthly_installment loan_balance bureau_score2    num_bankrupt_iva time_since_bankrupt
    num_ccj2 time_since_ccj ccj_amount  num_bankrupt    num_iva min_months_since_bankrupt
    ltv arrears_months  origination_date maturity_date arrears_status   arrears_segment 
    mob remaining_mat loan_term live_status repaid_status /*year quarter*/ 
    month worst_arrears_status max_arrears_12m  recent_arrears_date months_since_2mia
    avg_mia_6m max_arrears_bal_6m max_mia_6m    avg_bal_6m  avg_bureau_score_6m
    cc_util annual_income emp_length months_since_recent_cc_delinq;
    ods output mapping=mapping;
run;

and the LOG shows these errors:

NOTE: Binning methods: BUCKET BINNING .
ERROR: num_bankrupt_iva is class variable, only interval variable is supported.
ERROR: time_since_bankrupt is class variable, only interval variable is supported.
ERROR: time_since_ccj is class variable, only interval variable is supported.
ERROR: ccj_amount is class variable, only interval variable is supported.
ERROR: num_bankrupt is class variable, only interval variable is supported.
ERROR: num_iva is class variable, only interval variable is supported.
ERROR: min_months_since_bankrupt is class variable, only interval variable is supported.
ERROR: recent_arrears_date is class variable, only interval variable is supported.
ERROR: months_since_2mia is class variable, only interval variable is supported.
ERROR: avg_bureau_score_6m is class variable, only interval variable is supported.
NOTE: The number of bins is: 5.
NOTE: The HPBIN procedure is executing in single-machine mode.

Upvotes: 0

Views: 434

Answers (1)

Stu Sztukowski
Stu Sztukowski

Reputation: 12909

It seems like all of those variables in the log are specified as characters in your input dataset. You will need to convert them to numeric using the input() function. Or, you could multiply them by 1 and let SAS automatically do the conversion.

data want;
    set have;
    numvar = input(classvar, 8.);
    numvar2 = 1*classvar;
run;

Upvotes: 1

Related Questions