2017-06-21 56 views
0

背景:R中的项目级回归系数?

1000参与者额定自己满意200点的对象(S),以及关于所述参与者本身提供4名不同的心理测量的变量(A,B,C,d)。有5000个独特的对象进行评级,因此由于资源限制,并非每个参与者都评估每个对象。这导致了一个稀疏的数据集,其中每个对象被大约30个参与者评分。

从这个设计中,检索基本的描述统计量(例如,每个对象的平均满意度)是微不足道的。我现在的任务是建立心理测量变量(A,B,C,D)与对象之间的关系 - 即“如果你在A,B,C,D上以某种方式得分,你可能会发现满意的对象?

这个想法是运行一个回归,随后提取中介系数。式(以及可能的设计)是相当复杂的,我不知道如何即使在R.尝试此

数据集:

的数据集如下 -

[参与者ID] ,[对象ID],[S评级],[A],[B],[C],[D]

A,B,C,D值对于一个参与者总是相同的,不要依赖于对象。对象ID取值范围为1〜5000,与一个参加者ID被与来自5000

实施例的池200级的对象的随机选择配对:

+----------------+-----------+----------+-----+------+------+------+ 
| Participant ID | Object ID | S Rating | A | B | C | D | 
+----------------+-----------+----------+-----+------+------+------+ 
| 1    | 23  | 2  | 0.2 | 0.7 | 0.42 | 0.9 | 
+----------------+-----------+----------+-----+------+------+------+ 
| 1    | 69  | 1  | 0.2 | 0.7 | 0.42 | 0.9 | 
+----------------+-----------+----------+-----+------+------+------+ 
| 1    | 769  | 1  | 0.2 | 0.7 | 0.42 | 0.9 | 
+----------------+-----------+----------+-----+------+------+------+ 
| 1    | 1357  | 5  | 0.2 | 0.7 | 0.42 | 0.9 | 
+----------------+-----------+----------+-----+------+------+------+ 
| ... 196 more |   |   |  |  |  |  | 
+----------------+-----------+----------+-----+------+------+------+ 
| 2    | 84  | 1  | 0.3 | 0.12 | 0.6 | 0.86 | 
+----------------+-----------+----------+-----+------+------+------+ 
| 2    | 345  | 5  | 0.3 | 0.12 | 0.6 | 0.86 | 
+----------------+-----------+----------+-----+------+------+------+ 
| 2    | 1357  | 4  | 0.3 | 0.12 | 0.6 | 0.86 | 
+----------------+-----------+----------+-----+------+------+------+ 

公式:

为了建立项目级别对象评分和参与者级别心理测量变量之间的关系,我希望用下列公式进行回归:

SR (A + B + C + D)* I +(1/P)

其中S评级是数据集中的S评级,ABCD是来自数据集的心理测量变量,I是项目级别系数I想要提取,而P是参与者等级系数。

该公式将为数据集中的每个项目(对象)提供项目级系数-IA,IB,IC,ID。然后,这会回答诸如“对于对象931而言,对A的高评分在预测满意度方面尤为重要”。

问题:

是否有可能在R键实现这一目标?

我是否正确地认为上述公式可以让我获得项目级别的系数,从而让我看到心理测量变量A,B,C,D如何有助于预测S,独立于每个项目I?

是否有可能从R回归中检索这些系数?我希望最终得到一个表格,例如:[对象ID],[A的贡献],[B的贡献],[C的贡献],[D的贡献]。这将告诉每个心理测量变量对每个对象单独预测S的贡献。

在R中如何去做这件事?

回答

1

当然,你应该可以在R中做到这一点。关键是要正确定义你的变量类。我认为我和P应该是因素。

,然后只需用LM()函数:

OBJ = LM(评级〜(A + B + C + d):I + P)

+0

谢谢你的快速答复。 该解决方案效果很好。关键是正确设置因素。我现在只是在努力处理数据集的大小(需要36GB内存),我读过的内容可以使用biglm软件包来克服,而不是使用lm本身。 – Tomas2015