Фон
Я должен использовать очищенную версию моего объекта glm в приложении Shiny, потому что исходный объект модели слишком велик. Таким образом, я не могу генерировать стандартные ошибки предсказания через этот очищенный объект. Вместо этого мне придется использовать матрицу дисперсии-ковариации (которую я взял из исходного объекта модели) для расчета дисперсии прогноза/стандартных ошибок. В приложении я динамически генерирую гипотетические наблюдения, по которым хочу предсказать результаты и их стандартные ошибки.
Проблема
У меня осталась проблема создания соответствующей матрицы модели, которую я могу умножить на матрицу var-cov. Когда я использую model.matrix(), я часто получаю ошибки, потому что мои гипотетические данные не всегда имеют более одного уровня для факторных переменных. Я понимаю, что могу жестко закодировать некоторую логику, чтобы просто создать матрицу модели на основе моего понимания формулы модели. Но это похоже на то, что, вероятно, уже имело решение.
Я сделал простой пример, используя набор данных, похожий на мини-радужную оболочку, который выдает ошибку, о которой я говорю.
iris2 <- data.frame(Sepal.Length = c(3, 4), Species = c("setosa", "setosa"))
model.matrix( ~ Sepal.Length*Species, iris2)