2014-11-26 4 views

ответ

0

Возможно, вы захотите попробовать функцию SVDmiss в пакете SpatioTemporal, которая не учитывает значение вменения, а также вычисляет SVD на вмененной матрице. Проверьте эту ссылку SVDmiss Function

Однако, возможно, вам захочется быть осторожным с характером ваших данных и не будет ли смысл вменять значение в вашем случае.

0

Я пробовал использовать SVM в R с значениями NA без прецедентов. Иногда они играют важную роль в анализе, так что я обычно преобразовать свои данные следующим образом:

  1. Если у вас есть много переменных попытаться уменьшить их количество (кластеризация, лассо, и т.д. ...)
  2. Transform остальные предсказатели, как это:

    - для количественных переменных:

    - calculate deciles per predictor (leaving missing obs out) 
        - calculate frequency of Y per decile (assuming Y is qualitative) 
        - regroup deciles on their Y freq similarity into 2/3/4 groups 
        (you can do this by looking at their plot too) 
        - create for each group a new binary variable 
        (X11 = 1 if X1 takes values in the interval ...) 
        - calculate Y frequency for missing obs of that predictor 
        - join the missing obs category to the variable that has the closest Y freq 
    

    - для качественных переменных:

    - if you have variables with lots of levels you should do clustering by Y 
        variable 
        - for variables with lesser levels, you can calculate Y freq per class 
        - regroup the classes like above 
        - calculate the same thing for missing obs and attach it to the most similar 
        group of non-missing 
        - recode the variable as for numeric case* 
    

Там, теперь у вас есть полная база данных фиктивных переменных и возможность выполнения SVM, нейронные сети, лассо, и т.д. ...