как распечатать только коэффициенты лм? - PullRequest
0 голосов
/ 10 июня 2019

Если у меня есть одна строка данных, y, например:

 1 4 5 6 3 4 

Я могу использовать следующий код, чтобы найти подходящую плавную кривую:

y <- scan(text = '1 4 5 6 3 4 ')
x <- seq_along(y)
fit <- lm(y ~ poly(x,5))

summary(fit)   
newy <- predict(fit, data.frame(x))

plot(y, type = "b")
lines(x, newy, col = "red") 

Iнужно сделать то же самое для 600 строк и использовать summary(fit) для получения коэффициентов.Моя проблема в том, что я должен использовать эти коэффициенты в другом программном обеспечении, и мне просто нужны коэффициенты, а не дополнительная информация.Есть ли способ распечатать только коэффициенты?

Ответы [ 2 ]

3 голосов
/ 10 июня 2019

Это просто coef(fit).Метод coef() должен работать для большинства статистических моделей в R: model$coefficients работает для lm объектов, но обычно не является надежным.coef(summary(model)) или summary(model)$coefficients дают полный коэффициент таблица .(Метод по умолчанию для coef(), stats:::coef.default() использует $coefficients для извлечения этих значений из объектов, но другие объекты модели могут работать по-другому.)

0 голосов
/ 10 июня 2019

Если я правильно понял ваш вопрос, вы просто хотите цифры без каких-либо дескрипторов. Вот оно:

y <- scan(text = '1 4 5 6 3 4 ')
x <- seq_along(y)
fit <- lm(y ~ poly(x,5))

z <- coef(fit)
names(z) <- NULL
z

[1]  3.833333  1.553797 -2.836833  1.341641  1.133893  1.133893

Просто помните, что первым элементом является y-перехват.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...