- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在不同模型之间进行 ANCOVA(方差分析和线性回归之间的混合),但我遇到了一些问题。我想我把它缩小到一个关于方差分析的问题(或者我不理解或做错的事情):为了在两个模型之间进行比较,它们需要具有不同的残差 Df(自由度)。
例如,让我们考虑 R 中的 mtcars 数据:
library(car)
test_data <- mtcars %>% mutate(factored_variable = as.factor(carb))
model_1 <- aov(drat ~ factored_variable , data = test_data)
Anova(model_1, type = "III")
# Anova Table (Type III tests)
#
# Response: drat
# Sum Sq Df F value Pr(>F)
# (Intercept) 94.870 1 313.3656 0.0000000000000005038 ***
# factored_variable 0.991 5 0.6546 0.6607
# Residuals 7.871 26
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
model_2 <- aov(drat ~ factored_variable - 1, data = test_data)
Anova(model_2, type = "III")
# Anova Table (Type III tests)
#
# Response: drat
# Sum Sq Df F value Pr(>F)
# factored_variable 414.92 6 228.42 < 0.00000000000000022 ***
# Residuals 7.87 26
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
所以,我刚才所做的是创建两个模型来预测 drat 值。第一个采用带有因子的变量(Df = 水平数 - 1 = 5)和截距(Df = 1 始终),因此使用 6 Df。我删除了第二个模型中的截距,所以我只有变量。我希望这个变量只使用 5 个 Df,但显然情况并非如此,因为 Anova 说有 6 个。
因此我的问题是:为什么最后一个 Df 是 6 而不是 5?我猜这与变量有因素有关,但我不明白为什么。是否无法比较涉及此类变量的两个模型?
编辑:感谢您的回答。我想我误解了理论而不是 R,现在更清楚了
最佳答案
您的两个模型本质上是相同的模型,但在第二个模型中您强制截距为零。删除截距不会改变自由度,因为它会导致 factored_variable
的所有 6 个级别都获得参数估计,而不是 6-1=5 个级别的 factored_variable
加上截距。
要了解模型在其他方面是等价的(并且每个模型都等价于回归模型),我们将创建等价的线性回归模型,然后查看系数。
aov1 <- aov(drat ~ factored_variable , data = test_data)
aov2 <- aov(drat ~ factored_variable - 1, data = test_data)
lm1 = lm(drat ~ factored_variable , data = test_data)
lm2 = lm(drat ~ factored_variable - 1 , data = test_data)
现在查看四个模型的系数,如下面的代码和输出所示。 aov1
和 lm1
估计 factored_variable
的截距加上 5 个系数。 factored_variable
(“引用”类别)缺失类别的系数是截距。其他系数是该类别与引用类别之间的差异。 aov2
和 lm2
估计每个类别的绝对系数 factored_variable
,而不是相对于引用类别的系数。
coefs = data.frame(aov1=coef(aov1), aov2=coef(aov2), lm1=coef(lm1), lm2=coef(lm2))
aov1 aov2 lm1 lm2
(Intercept)/factored_variable1 3.68142857 3.681429 3.68142857 3.681429
factored_variable2 0.01757143 3.699000 0.01757143 3.699000
factored_variable3 -0.61142857 3.070000 -0.61142857 3.070000
factored_variable4 -0.08542857 3.596000 -0.08542857 3.596000
factored_variable6 -0.06142857 3.620000 -0.06142857 3.620000
factored_variable8 -0.14142857 3.540000 -0.14142857 3.540000
请注意,模型对 lm1
/aov1
和 lm2
/aov2
每个都具有相同的系数。对于模型 aov1
和 lm1
,如果将每个 factored_variable
的系数添加到截距中,您还会看到系数相同作为 lm2
和 aov2
的系数。在每种情况下,模型都会估计六个参数。
关于r - 为什么在包含 R 中的因素的方差分析中删除变量不会降低自由度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44656698/
The proper divisors of a positive integer, n, are all the positive integers that divide n evenly oth
我有这个命令行 $ sudo find /etc/grub.d | sort | tail -n 1 | xargs sudo cat | wc 我想用一个 sudo 命令执行 $ sudo --so
选项大小策略和拉伸(stretch)因子如何影响小部件的大小? 下图显示了三个不同排列的窗口的预览。对于所有三个窗口 (W1-W3),右侧的小部件是一个 QFrame 小部件,其水平和垂直大小策略设置
每次当我必须重新编码一组变量时,我都会想到 SPSS 重新编码功能。我必须承认这很简单。有一个类似的recode函数在 car包,它可以解决问题,但让我们假设我想用 factor 完成任务. 我有 d
这个问题在这里已经有了答案: Template issue causes linker error (C++) [duplicate] (6 个答案) 关闭 9 年前。 我的问题查了没用所以特地来问
我想使用 Eigen 来计算稀疏矩阵的 cholesky 分解。但是,结果不正确,我找不到原因。我如何获得正确答案? Eigen 中是否实现了特殊例程,利用稀疏矩阵的结构来提高性能(例如,对于下例中的
我正在尝试使 angularjs 应用程序在配置( http://12factor.net/config )方面符合 12 因素。 它应该取决于环境,我不应该看到 development 字样, te
我在我的项目中使用 Soil,我在我的包含目录中添加了 soil,在我的预编译头文件中我包含了“Soil.h”。对于我预编译头中的库,我添加了这个: #pragma comment(lib,"SOIL
在我的 Web 应用程序中,我将所有最终用户的日期信息以 UTC 格式存储在数据库中,在向他们显示之前,只需将 UTC 日期转换为他们选择的时区。 我正在使用此方法将本地时间转换为 UTC 时间(在存
我的申请是 Piwik Server从放置在数百个网站上的跟踪代码接收传入的跟踪数据。当这些跟踪请求进入时,大部分工作负载是每秒向数据库写入数百次。我使用的是带有 JDBC 和 Hibernate 的
我有一个非常简单的 GWT 应用程序,它收集一些数据并在用户单击“提交”时提供确认对话框。我创建了一个 com.google.gwt.user.client.ui.DialogBox,填充它,然后调用
我正在使用 Delphi(2009 年,没关系)和 IBX,并且我正在尝试执行简单的代码: TestSQL.ExecQuery; 在此代码之前,我已检查(也可以在调试器监视中看到)TestSQL.Tr
许多线性代数例程都将常量(例如 alpha 和 beta)作为参数。例如cublas?GEMM执行以下操作: C := alpha*op( A )op( B ) + betaC 假设我将 beta 设
我是一名优秀的程序员,十分优秀!