R二项回归

R二项回归,r,R,我试图在R中建立一个二项式模型 我想用这样一个公式:VAL=X0+b1*X1+b2*X2 其中,X0、X1和X2是我的数据框中的变量,b1和b2是我想要开发的系数。如果此公式生成的VAL>0,我希望目标值Y为TRUE/1;如果生成的VAL

我试图在R中建立一个二项式模型

我想用这样一个公式:VAL=X0+b1*X1+b2*X2

其中,X0、X1和X2是我的数据框中的变量,b1和b2是我想要开发的系数。如果此公式生成的VAL>0,我希望目标值Y为TRUE/1;如果生成的VAL<0,则为FALSE/0

b1和b2设置为1的示例数据:
目标X0 X1 X2 VAL结果

186-5417491

0 0-5417-370

140-1523481

050-20-2551

我希望X0的值被纳入预测中,但我不希望这个变量有一个系数(因为这是一个预定义的公式,我不能更改)

我在模型中需要X0的原因是,如果X1和X2对于具有不同X0值的两个观测值相等(如前两个观测值),我想在公式中反映这一点。一个观测值的X0可能会导致VAL为负值,而另一个观测值的X0可能会导致VAL为正值,但如果将X0完全排除在模型之外,则不会反映出这一点。还要注意最后一个观察,我需要增加b1或b2,使VAL为负值,结果为0(模型在没有看到X0的情况下无法看到)


我目前使用的公式类似于glm(“Y~X0+X1+X2”,family=binomial(link=“logit”)),但该模型生成了X0的系数。我如何建立一个模型,强迫X0没有系数?

看起来你想要的是让X0的系数为零。如果您无法更改公式(忽略X0),则可以更改数据。下面是一个例子:

n = 1000
df = data.frame('x1'=rnorm(n), 'x2'=rnorm(n))
df0 = df
df0[,2] = 0

y = 0.5 + 1.5*df[,1] - 1.0*df[,2] + rnorm(n, 0, 0.1)

mod1 = lm(y ~ x1, data = df)
mod2 = lm(y ~ x1 + x2, data = df)
mod3 = lm(y ~ x1 + x2, data = df0)
听起来像是
mod1
是您想要的,但是由于您无法更改公式,您只能使用
mod2
mod3
mod2
不起作用,因为这将给出
x2
的估计值
mod3
mod1
相同,除了
x2
的系数为
NA
,但截距和
x1
的系数相同


使
x2
be
NA
的系数等于零。来自
mod1
mod3
的预测将是相同的,但是
mod3
确实会发出警告。

作为更新,我正在寻找offset()函数。在这种情况下,我使用偏移量(X0)作为模型的附加预测值。

您希望X0包含在预测中但没有系数是什么意思?有一个系数可以让你在预测中使用X0。你是在寻找一个没有截距的模型吗?我不明白你怎么能强迫模型中没有系数的东西。如果你不希望它有一个系数,不要把它放在模型中。也许用样本输入和所需的输出来帮助你更容易。你可以像这样拟合一个无截距模型
glm(status==1~0+年龄,data=lung,family=binomial)
。然而,我强烈建议对此有充分的理由——请看这篇文章@mickey I将我的问题编辑得更具体一些。说清楚一点,我不介意在X0的顶部设置一个截距(如果可能的话)。我只是不希望模型为X0建立一个系数(使模型过于依赖X0),因为由于外部限制,我无法在预测中使用该系数。