我有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)
但是,为了确定最重要的向上和向下趋势问题,我想到了将模型系数存储在数据框中,然后将最高和最低系数视为我最重要的向上和向下趋势问题。
我的第一个问题-我是否在使用正确的方法来实现自己的目标?
还有我的第二个问题-如果我使用的是正确的方法,如何将这些系数存储在数据框中,并过滤出最高和最低值?
对此将提供任何帮助。
答案 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