Я пытаюсь запустить lm () только для подмножества моих данных и сталкиваюсь с проблемой.
dt = data.table(y = rnorm(100), x1 = rnorm(100), x2 = rnorm(100), x3 = as.factor(c(rep('men',50), rep('women',50)))) # sample data
lm( y ~ ., dt) # Use all x: Works
lm( y ~ ., dt[x3 == 'men']) # Use all x, limit to men: doesn't work (as expected)
Выше не работает, потому что в наборе данных теперь есть только мужчины, и поэтому мы не можем включить x3, гендерную переменную, в модель. НО ...
lm( y ~ . -x3, dt[x3 == 'men']) # Exclude x3, limit to men: STILL doesn't work
lm( y ~ x1 + x2, dt[x3 == 'men']) # Exclude x3, with different notation: works great
Это проблема с пометкой «минус» в формуле? Пожалуйста посоветуй. Примечание: конечно, я могу сделать это по-другому; например, я мог бы исключить переменные до помещения их в lm (). Но я преподаю урок по этому вопросу, и я не хочу вводить студентов в заблуждение, уже сказав им, что они могут исключить переменную, используя знак минус в формуле.