代码之家  ›  专栏  ›  技术社区  ›  Varun

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

lm r
  •  0
  • Varun  · 技术社区  · 8 年前

    我有三年(2016年至2018年)内5个问题的满意度得分数据。我的目标是确定这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))
    

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

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

    然而,为了确定最重要的向上和向下趋势问题,我考虑将模型系数存储在一个数据框中,然后将最高和最低系数视为我最重要的向上和向下趋势问题。

    我的第一个问题 -对于我想要实现的目标,我是否使用了正确的方法?

    和 我的第二个问题 -如果我使用正确的方法,我如何将这些系数存储在数据帧中,并过滤掉顶部和底部的值?

    在此方面的任何帮助都将不胜感激。

    1 回复  |  直到 8 年前
        1
  •  0
  •   macworthy    8 年前

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

    举个例子:

    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 
    
    推荐文章