Печать всех значений, сгенерированных моделью в R - PullRequest
0 голосов
/ 20 февраля 2019

После запуска функции в R, проверяющей соответствие модели данным, например:

> (lm1 <- lmer(Reaction ~ Days + (Days | Subject), sleepstudy))

можно использовать summary() (или summary.aov(), summary.glm()и т. д.), чтобы R напечатал подмножество значений, сгенерированных при запуске этой функции:

> summary(lm1)

Linear mixed model fit by REML ['lmerMod']  
Formula: Reaction ~ Days + (Days | Subject)  
   Data: sleepstudy

REML criterion at convergence: 1743.6

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.9536 -0.4634  0.0231  0.4634  5.1793 

Random effects:
 Groups   Name        Variance Std.Dev. Corr
 Subject  (Intercept) 612.09   24.740       
          Days         35.07    5.922   0.07
 Residual             654.94   25.592       
Number of obs: 180, groups:  Subject, 18

Fixed effects:
            Estimate Std. Error t value
(Intercept)  251.405      6.825  36.838
Days          10.467      1.546   6.771

Correlation of Fixed Effects:
     (Intr)
Days -0.138

Как я могу R напечатать список все значений, сгенерированных моделью вместе с их метками?(Так что здесь я мог видеть все значения, которые вошли в эти результаты.)

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Если вы хотите увидеть обзор всех компонентов объекта в R, str действительно полезен.Он также обрабатывает объекты S3 (например, из lm) и слоты для объектов S4 (например, из lme4) соответствующим образом.

0 голосов
/ 20 февраля 2019

Если вы запускаете модель (например, lm1), вы можете увидеть категории вещей, которые она вычисляет, используя имена (например, names(lm1)), а затем получить значения, используя $.

# Dummy Example
df <- data.frame(v1 = 1:10,
           v2 = runif(10))

lm1 <- lm(v1 ~ v2, data=df)

# See all types of computed values
names(lm1)

# grab computed values
lm1$coefficients
lm1$residuals
lm1$fitted.values

# some things stored in lm1 are your inputs, such as model
lm1$model

ОБНОВЛЕНИЕ: для lme4, захватывать элементы, используя @ вместо $. Вы также можете увидеть другие вычисленные элементы, используя names(summary(lm1)), а затем захватить элементы с summary(), используя $

library(lme4) 
df <- data.frame(v1 = 1:10,
                 v2 = runif(10),
                 v3 = c(1,1,2,2,2,3,3,3,4,4))

lm1 <- lmer(v1 ~ v2 + (1 | v3),  data=df)

lm1@devcomp

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