Why does the number of rows change during AIC in R? How to ensure that this doesn't happen?

前端 未结 3 1795
春和景丽
春和景丽 2021-01-12 09:27

I\'m trying to find a minimal adequate model using AIC in R. I keep getting the following error: Error in step(model) : number of rows in use has changed: remove mi

相关标签:
3条回答
  • 2021-01-12 09:42

    Even I got the same problem. So , what i did was ->

    When you split the data into two parts i.e training data and testing data, make sure you first step is this -->

    training_data = na.omit(training_data)

    After this step only move forward and you will not get any errors.

    Hope this solves you issue.

    0 讨论(0)
  • 2021-01-12 09:52

    From the Warnings section of ?step:

    The model fitting must apply the models to the same dataset. This may be a problem if there are missing values and R's default of na.action = na.omit is used. We suggest you remove the missing values first.

    So you should do:

    no.na.data <- na.omit(data[c(predictors, response)])
    model <- lm(formula=as.formula(paste(paste(response,'~', sep=''),
                                         paste(predictors,collapse='+'), sep='')),
                no.na.data)
    step(model)
    
    0 讨论(0)
  • 2021-01-12 09:53

    I was faced with the same problem but I couldn't use Flodel's solution because I couldn't access the original data because it was computed inside a function. I give here my alternative solution which only uses the model. Let data be the dataset with missing values:

    model1<-lm(response~., data=data)
    model2<-lm(response~., data=model1$model)
    step(model2)
    

    Although this way wastes some computer time, it has the advantage of just using information already contained in the model.

    0 讨论(0)
提交回复
热议问题