Как вы извлекаете значение p (для значимости коэффициента единственной объясняющей переменной, отличной от нуля) и значение R-квадрата из простой модели линейной регрессии? Например...
x = cumsum(c(0, runif(100, -1, +1)))
y = cumsum(c(0, runif(100, -1, +1)))
fit = lm(y ~ x)
summary(fit)
Я знаю, что summary(fit)
отображает значение p и значение R в квадрате, но я хочу иметь возможность вставить их в другие переменные.
r <- summary(lm(rnorm(10)~runif(10)))
ничего не показывает).Ответы:
r-квадрат : вы можете вернуть значение r-квадрат непосредственно из итогового объекта
summary(fit)$r.squared
. Смотритеnames(summary(fit))
список всех предметов, которые вы можете извлечь непосредственно.Значение p модели. Если вы хотите получить значение p общей модели регрессии, в этом сообщении в блоге описывается функция, возвращающая значение p:
В случае простой регрессии с одним предиктором, p-значение модели и p-значение для коэффициента будут одинаковыми.
P-значения коэффициентов: если у вас есть более одного предиктора, то приведенное выше вернет p-значение модели, и p-значение для коэффициентов можно извлечь с помощью:
В качестве альтернативы, вы можете получить p-значение коэффициентов из
anova(fit)
объекта аналогично итоговому объекту выше.источник
inherits
, чемclass
напрямую. А может ты хочешьunname(pf(f[1],f[2],f[3],lower.tail=F))
?Обратите внимание, что
summary(fit)
генерируется объект со всей необходимой вам информацией. В нем хранятся векторы бета, se, t и p. Получите p-значения, выбрав 4-й столбец матрицы коэффициентов (хранится в итоговом объекте):Попробуйте
str(summary(fit))
просмотреть всю информацию, которая содержится в этом объекте.Изменить: я неправильно прочитал ответ Чейза, который в основном говорит вам, как добраться до того, что я здесь даю.
источник
summary(fit)$coefficients[1,4]
для их инцепцииlm()
но не работает дляgls()
моделей.Вы можете увидеть структуру объекта, возвращенного
summary()
путем вызоваstr(summary(fit))
. Каждая часть может быть доступна с помощью$
. Значение p для статистики F легче получить из возвращаемого объектаanova
.Вкратце, вы можете сделать это:
источник
Хотя оба приведенных выше ответа хороши, процедура извлечения частей объектов носит более общий характер.
Во многих случаях функции возвращают списки, и к отдельным компонентам можно получить доступ, используя
str()
которые будут печатать компоненты вместе с их именами. Вы можете получить доступ к ним с помощью $ оператора, то естьmyobject$componentname
.В случае объектов lm есть несколько предопределенных методов, которые можно использовать, например
coef()
,resid()
иsummary()
т. Д., Но вам не всегда повезет.источник
Я сталкивался с этим вопросом, изучая предложенные решения для подобной проблемы; Я предполагаю, что для дальнейшего использования может быть целесообразно обновить доступный список ответов решением, использующим
broom
пакет.Образец кода
Полученные результаты
Примечания стороны
Я считаю, что
glance
функция полезна, так как она аккуратно суммирует ключевые значения. Результаты сохраняются в виде,data.frame
что облегчает дальнейшие манипуляции:источник
Расширение @Vincent «s ответ :
Для
lm()
сгенерированных моделей:Для
gls()
сгенерированных моделей:Чтобы изолировать отдельное p-значение, вы должны добавить номер кода в код:
Например, чтобы получить доступ к p-значению перехвата в обеих сводках модели:
Обратите внимание, что вы можете заменить номер столбца на имя столбца в каждом из приведенных выше случаев:
Если вы все еще не знаете, как получить доступ к значению из сводной таблицы, используйте ее
str()
для определения структуры сводной таблицы:источник
Это самый простой способ получить значения p:
источник
Я использовал эту функцию LMP довольно много раз.
И в один прекрасный момент я решил добавить новые функции для улучшения анализа данных. Я не эксперт в R или статистике, но люди обычно смотрят на различную информацию о линейной регрессии:
Давайте иметь пример. У вас есть здесь
Вот воспроизводимый пример с разными переменными:
Конечно, есть более быстрое решение, чем эта функция, но оно работает.
источник
Для конечного p-значения, отображаемого в конце
summary()
, функция используетpf()
для вычисленияsummary(fit)$fstatistic
значений.Источник: [1] , [2]
источник
источник
Другой вариант - использовать функцию cor.test вместо lm:
источник
Использование:
где
num
число, которое обозначает строку матрицы коэффициентов. Это будет зависеть от того, сколько функций у вас есть в вашей модели и для какой вы хотите получить значение p. Например, если у вас есть только одна переменная, для пересечения будет одно p-значение, которое будет [1,4], и следующее для вашей фактической переменной, которое будет [2,4]. Таким образом, вашnum
будет 2.источник