我想要将特定变量强制输入到glm回归模型,而不需要完全指定每一个变量。我的真实数据集有约200个变量。目前为止,在线搜索中我还没有找到这方面的示例。
例如(仅使用3个变量):
n=200
set.seed(39)
samp = data.frame(W1 = runif(n, min = 0, max = 1), W2=runif(n, min = 0, max = 5))
samp = transform(samp, # add A
A = rbinom(n, 1, 1/(1+exp(-(W1^2-4*W1+1)))))
samp = transform(samp, # add Y
Y = rbinom(n, 1,1/(1+exp(-(A-sin(W1^2)+sin(W2^2)*A+10*log(W1)*A+15*log(W2)-1+rnorm(1,mean=0,sd=.25))))))
如果我想包含所有主要术语,有一个简单的快捷方式:
glm(Y~., family=binomial, data=samp)
但是假设我想要包含所有主要术语 (W1、W2 和 A),再加上 W2 的平方:glm(Y~A+W1+W2+I(W2^2), family=binomial, data=samp)
有没有这个的快捷方式?
[发布之前编辑自己:] 这个可以用!glm(formula = Y ~ . + I(W2^2), family = binomial, data = samp)
好的,那么这个呢!
我想省略一个主要项变量,只包括两个主要项(A,W2)和 W2^2 和 W2^2:A:
glm(Y~A+W2+A*I(W2^2), family=binomial, data=samp)
显然,如果只有少量变量,就不需要真正的快捷方式,但是我处理高维数据。当前数据集仅有"200"个变量,但其他一些数据集有成千上万个变量。