2013-05-21 4 views
-5

Я хочу использовать lm.fit для скорости, но вторая версия дает NasКак использовать lm.fit вместо этого на пленке

sum <- summary(lm(y~x)) 
slope <- sum$coefficients[2] 

или

sum <- lm.fit(as.matrix(x,ncol=1),y) 
slope <- sum$coefficients[2] 

РЕДАКТИРОВАНИЕ 1

Я сейчас см., что сумма $ коэффициентов имеет только 1 значение. Почему это и что это? Справка не объясняет это

+1

Вы дали ему матрицу дизайна только с одной колонкой. Один столбец -> один коэффициент. – joran

+3

Не принимайте это неправильно, но документация для 'lm.fit' предупреждает", как правило, не должна использоваться напрямую, если только опытные пользователи ", и вы, кажется, достаточно смущены тем, как работают матричные проекты, которые я бы рекомендовал читать некоторые теории линейной модели, прежде чем пытаться использовать эту функцию. – joran

+1

Отсюда моя просьба о помощи -Joran. У меня есть решение сейчас - спасибо всем – ManInMoon

ответ

4

Было бы проще помочь с воспроизводимым примером.

Однако, я предполагаю, что во втором случае вам не хватает перехвата. Попробуйте lm.fit(cbind(1,x),y) и посмотрите, дает ли это сравнение, которое вы ищете.

Другие отличия могут быть связаны с другой предварительной обработкой, которую lm делает до звонка lm.fit, но мы не знаем, что это, не видя x. Такие вещи, как удаление отсутствующих значений, расширение фактора в фиктивные переменные, также могут приводить к различиям.

+0

Спасибо, Грег. Я пробовал сумма $ коэффициентов [1], и это, похоже, дает мне что-то похожее на склон. Надеюсь, это так! – ManInMoon

+0

@ManInMoon, вы должны быть очень осторожны **. Я предполагаю, что то, что вы получили от 'sum $ coe [1]', - это наклон регрессии, установленный через источник, что, вероятно, не то, что вы хотите. (Это подразумевается в ответе Грега.) –

+0

@BenBolker Если я использую предложение Грега. Как найти наклон? Будет ли сумма $ коэффициентов [1 ИЛИ 2]? – ManInMoon

Смежные вопросы