如何处理R中线性回归输出中的NA,特别是三向交互项的NA?

如何处理R中线性回归输出中的NA,特别是三向交互项的NA?,r,linear-regression,na,interaction,R,Linear Regression,Na,Interaction,我在R中运行一个三方交互的线性回归 lm(A~XYZ),A=数值变量,而X、Y、Z都是带因子的分类变量。 X=5个因素,Y=2个因素,Z=4个因素。每次我运行回归时,最后一级的三方交互都会丢失。例如,如果我重新调整Z因子,最后一个因子将在三方交互中被删除 系数:(8因奇点未定义)。(这在R输出中提到) 我尝试过使用零截取,但没有任何区别 lm(A~0+XYZ)或lm(A~XYZ-1)以及所有其他可能的组合 lm(A~X*Y*Z,数据=dat) X=5个因素,Y=2个因素,Z=4个因素[每个变量中

我在R中运行一个三方交互的线性回归 lm(A~XYZ),A=数值变量,而X、Y、Z都是带因子的分类变量。 X=5个因素,Y=2个因素,Z=4个因素。每次我运行回归时,最后一级的三方交互都会丢失。例如,如果我重新调整Z因子,最后一个因子将在三方交互中被删除

系数:(8因奇点未定义)。(这在R输出中提到)

我尝试过使用零截取,但没有任何区别 lm(A~0+XYZ)或lm(A~XYZ-1)以及所有其他可能的组合

lm(A~X*Y*Z,数据=dat)


X=5个因素,Y=2个因素,Z=4个因素[每个变量中的一个因素作为基准水平]

如果您想尝试使用三个分类变量,您可以使用混合效应模型包

model = lmer(A ~ noise + (1 | Y) + (1 | X) +(1 | Z), data = data)
这将通过创建随机截距为您提供因子的系数,但您可能需要一些关于固定效果(也称为“噪波”)的附加信息


另一种方法是使用fastdummies包创建虚拟变量。这将从您拥有的每个类别中创建一个二进制变量。

您根本无法获得系数的每个级别。您的模型可能过度指定,无法识别。如果您需要了解统计原因的帮助,请拨打电话寻求帮助。这确实不是一个适合堆栈溢出的特定编程问题。