如何在 glm (R) 中拟合斜率修改器
How to fit a slope modifier in glm (R)
我想拟合以下形式的一般线性模型:
lp = c + (a1+a2*Test)*x
其中 c 是截距(待拟合),a1 是 x 的系数,a2 是 2 级因子的第二级 x 系数的修饰符 'Test'(此处编码为虚拟变量值“1”)。
所以对于因子'Test'的第一水平,虚拟变量的值为0,斜率为a1。对于'Test'的第二级,斜率为(a1+a2).
在 GenStat 中,我可以将其作为 'x+Test.x' 放入“广义线性模型”菜单中,这将为我提供我想要的系数 c、a1 和 a2 的估计值。
在 R 中,我尝试了以下操作:
glm(y ~ x + Test*x)
这给了我以下系数:截距 (c)、x、测试和 x:Test。
我认为 'Test' 系数是截距的修饰符(我不想拟合),而 x:Test 是 x 系数的修饰符(即 a2)我真正想要的。
如何避免在 R 中拟合 'Test' 的系数?是否有与我使用“.”具有相同效果的运算符?在 GenStat 中?
编辑:我也尝试过:
glm(y ~ x + offset(Test*x))
但这只是给了我值 'Test*x' 的固定偏移量,它不适合系数 'a2'。
我不知道 GenStat,但看来您要求的是线性预测器
lp = intercept + a1*x + Test*x
代数(非模型)表示法,其中 intercept
和 a1
是适合的,但 Test
和 x
是固定值或观察值。
如果那是正确的,那么 R 表示法就是将 Test*x
描述为 "offset",并使用
拟合模型
glm(y ~ x + offset(Test*x))
我想我已经找到了解决方案。
R 中正确的运算符是“:”。
所以R中的代码是:
glm(y~x+Test:x)
这给了我截距的拟合系数,x 和 Test:x,根据需要。
我想拟合以下形式的一般线性模型:
lp = c + (a1+a2*Test)*x
其中 c 是截距(待拟合),a1 是 x 的系数,a2 是 2 级因子的第二级 x 系数的修饰符 'Test'(此处编码为虚拟变量值“1”)。
所以对于因子'Test'的第一水平,虚拟变量的值为0,斜率为a1。对于'Test'的第二级,斜率为(a1+a2).
在 GenStat 中,我可以将其作为 'x+Test.x' 放入“广义线性模型”菜单中,这将为我提供我想要的系数 c、a1 和 a2 的估计值。
在 R 中,我尝试了以下操作:
glm(y ~ x + Test*x)
这给了我以下系数:截距 (c)、x、测试和 x:Test。
我认为 'Test' 系数是截距的修饰符(我不想拟合),而 x:Test 是 x 系数的修饰符(即 a2)我真正想要的。
如何避免在 R 中拟合 'Test' 的系数?是否有与我使用“.”具有相同效果的运算符?在 GenStat 中?
编辑:我也尝试过:
glm(y ~ x + offset(Test*x))
但这只是给了我值 'Test*x' 的固定偏移量,它不适合系数 'a2'。
我不知道 GenStat,但看来您要求的是线性预测器
lp = intercept + a1*x + Test*x
代数(非模型)表示法,其中 intercept
和 a1
是适合的,但 Test
和 x
是固定值或观察值。
如果那是正确的,那么 R 表示法就是将 Test*x
描述为 "offset",并使用
glm(y ~ x + offset(Test*x))
我想我已经找到了解决方案。
R 中正确的运算符是“:”。
所以R中的代码是:
glm(y~x+Test:x)
这给了我截距的拟合系数,x 和 Test:x,根据需要。