存储和解释lm()模型的结果

时间:2018-09-28 16:18:21

标签: r lm

我有3年(2016年至2018年)5个问题的满意度得分数据。我的目标是确定在这3年中,这5个问题中有哪个经历了统计学上最显着的 上升下降趋势。

我的虚拟数据框看起来像这样-

df = data.frame(Question = c('Q1','Q1','Q1','Q2','Q2','Q2','Q3','Q3','Q3','Q4','Q4','Q4','Q5','Q5','Q5'),
                Year = c('2016','2017','2018','2016','2017','2018','2016','2017','2018','2016','2017','2018','2016','2017','2018'),
                Score = c(0.8,0.6,0.2,0.2,0.4,0.8,0.4,0.5,0.4,0.1,0.2,0.1,0.9,0.7,0.3),
                Count = c(226,117,200,323,311,380,411,408,407,222,198,201,665,668,670))

为此,我在R中使用了lm函数来创建线性模型。

lm(Score ~ Question * as.numeric(Year), data = df)

但是,为了确定最重要的向上和向下趋势问题,我想到了将模型系数存储在数据框中,然后将最高和最低系数视为我最重要的向上和向下趋势问题。

我的第一个问题-我是否在使用正确的方法来实现自己的目标?

还有我的第二个问题-如果我使用的是正确的方法,如何将这些系数存储在数据框中,并过滤出最高和最低值?

对此将提供任何帮助。

1 个答案:

答案 0 :(得分:0)

如果存储模型,则可以像从数据框中提取系数和其他元素一样。

一个例子:

y = as.numeric(c("1","2","3","4","5"))
x = as.numeric(c("5","6","3","10","12"))
model=lm(y~x)

model$coefficients
  (Intercept) as.numeric(x) 
    0.6350365     0.3284672