- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用于实验的 CRM 数据集,其中虚拟 W 对应于治疗/对照组(参见下面的代码)。当我测试 W 与其他特征的独立性时,我意识到两件事:
我(认为我)理解多重共线性的概念,但在这种特殊情况下我不太理解 a) 为什么会出现 b) 为什么它对 model.matrix 和 lm 有不同的影响
我错过了什么?
非常感谢!
set.seed(1)
n = 302
DT = data.table(
zipcode = factor(sample(seq(1,52), n, replace=TRUE)),
gender = factor(sample(c("M","F"), n, replace=TRUE)),
age = sample(seq(1,95), n, replace=TRUE),
days_since_last_purchase = sample(seq(1,259), n, replace=TRUE),
W = sample(c(0,1), n, replace=TRUE)
)
summary(DT)
m = model.matrix(W ~ . +0, DT)
f1 = lm(DT$W ~ m)
f2= lm(W~ ., DT)
p_value_ratio <- function(lm)
{
summary_randomization = summary(lm)
p_values_randomization = summary_randomization$coefficients[, 4]
L = length(p_values_randomization)
return(sum(p_values_randomization <= 0.05)/(L-1))
}
all.equal(p_value_ratio(f1), p_value_ratio(f2))
alias(f1)
alias(f2)
最佳答案
您的问题是 model.matrix
中的 + 0
。第二次拟合包括模型矩阵中的截距。如果排除它,则会排除较少的因子水平(通常由截距表示):
colnames(model.matrix(W ~ ., DT))
#excludes zipcode1 and genderf since these define the intercept
colnames(model.matrix(W ~ . + 0, DT))
#excludes only genderf
请注意,f1
包含一个截距,它由 lm
添加(我相信是通过对 model.matrix
的内部调用,但还没有'检查):
m = model.matrix(W ~ . + 0, DT);
f1 = lm(DT$W ~ m );
model.matrix(f1)
你可能想要这个:
m = model.matrix(W ~ ., DT);
f1 = lm(DT$W ~ m[,-1]);
(如果您想直接使用 lm.fit
,通常您只能手动构建模型矩阵。)
f2= lm(W~ ., DT);
all.equal(unname(coef(f1)), unname(coef(f2)))
#[1] TRUE
最后,这归结为您对治疗对比的理解。通常,您不应从模型矩阵中排除截距。
关于r - 由于相似性和 pvalues 而未定义 Coef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45585052/
我使用此函数绘制每个标签的最佳和最差特征 (coef)。 def plot_coefficients(classifier, feature_names, top_features=20):
我有一个用于实验的 CRM 数据集,其中虚拟 W 对应于治疗/对照组(参见下面的代码)。当我测试 W 与其他特征的独立性时,我意识到两件事: 使用 model.matrix 时,一些系数(此虚拟数据集
我的问题几乎在 dplyr 0.3.0.9000 how to use do() correctly 中得到了回答,但不完全是。 我有一些看起来像这样的数据: > head(myData) Se
我使用 pandas 和 statsmodels 进行线性回归。但是,我找不到任何可能的方法来读取结果。结果已显示,但我需要使用 coef 值做一些进一步的计算。有什么方法可以将 coef 值存储到新
我正在尝试按 coef 打印 VIF(方差膨胀因子)。但是,我似乎无法从 statsmodels 中找到任何说明如何进行的文档?我有一个需要处理的 n 个变量的模型,并且所有变量的多重共线性值无助于删
假设我有 my.model My.model <- coxph(Surv(stop, event) ~ (rx + size + number) * strata(enum), clust
我在弄清楚如何从模型系数和模型矩阵中找到预测值时遇到了很多麻烦。我希望有人可以提供帮助。 我目前有一个线性模型,其中包含我正在设置的两个自变量。例如 data <- data.frame(d1,d2,
有人可以解释一下我是否有因变量,例如结果 (y),定义为 y = K1*F1 + K2*F2 + ... + Kn*Fn + E 每 n 个特征,其中 K - 系数,F - 特征(分类特征和连续特征)
我正在尝试为一组标准曲线构建一系列线性模型。 目前这段代码正在产生我想要的输出(每个线性模型的截距和斜率): slopes % group_by(plate, col, row, conc_ug_mL
我试图简化我的代码以避免 for 循环,但是一旦我运行我的 cox 比例风险代码来提取系数的 p 值和标准误差,我就遇到了困难。我的代码如下: library(survival) #Generate
我正在尝试在 KNeighborsClassifier 上应用 RFECV 来消除无关紧要的特征。为了使问题可重复,以下是虹膜数据的示例: from sklearn.datasets import l
我是一名优秀的程序员,十分优秀!