вытащить р-значения и г-квадрат из линейной регрессии - PullRequest
158 голосов
/ 08 апреля 2011

Как вы извлекаете значение 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 в квадрате, но я хочу иметь возможность вставить их в другие переменные.

Ответы [ 12 ]

0 голосов
/ 07 мая 2017

Использование:

(summary(fit))$coefficients[***num***,4]

где num - число, обозначающее строку матрицы коэффициентов. Это будет зависеть от того, сколько функций у вас есть в вашей модели и для какой вы хотите получить значение p. Например, если у вас есть только одна переменная, для пересечения будет одно p-значение, которое будет [1,4], и следующее для вашей фактической переменной, которое будет [2,4]. Таким образом, ваши num будут 2.

0 голосов
/ 05 июня 2014

Другой вариант - использовать функцию cor.test вместо lm:

> x <- c(44.4, 45.9, 41.9, 53.3, 44.7, 44.1, 50.7, 45.2, 60.1)
> y <- c( 2.6,  3.1,  2.5,  5.0,  3.6,  4.0,  5.2,  2.8,  3.8)

> mycor = cor.test(x,y)
> mylm = lm(x~y)

# r and rsquared:
> cor.test(x,y)$estimate ** 2
      cor 
0.3262484 
> summary(lm(x~y))$r.squared
[1] 0.3262484

# P.value 

> lmp(lm(x~y))  # Using the lmp function defined in Chase's answer
[1] 0.1081731
> cor.test(x,y)$p.value
[1] 0.1081731
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...