如何获得 R 中方差分析的 F 统计值?
How can I get F statistic values for an ANOVA in R?
我目前正在运行使用一些算法来求解多objective 线性数学模型(运筹学)。我使用了三种算法:约束方法 (C-M)、非排序遗传算法 II (NSGA-II) 和强度帕累托进化算法 2 (SPEA2)。我已针对 Pareto Border (No_solutions) 中解决方案的数量设置了性能指标,并从六个实例 (I1,..,I6) 中收集了数据。
我的数据如下table:
Instance Algorithm No_solutions
1 I1 C-M 48
2 I2 C-M 46
3 I3 C-M 51
4 I4 C-M 50
5 I5 C-M 51
6 I6 C-M 49
7 I1 NSGA-II 300
8 I2 NSGA-II 300
9 I3 NSGA-II 300
10 I4 NSGA-II 300
11 I5 NSGA-II 300
12 I6 NSGA-II 300
13 I1 SPEA2 150
14 I2 SPEA3 150
15 I3 SPEA4 150
16 I4 SPEA5 150
17 I5 SPEA6 150
18 I6 SPEA7 150
我已经 运行 使用 aov()
在 R 中进行方差分析。我的代码如下:
performance_1 <- read_excel("C:/Users/Alonso/Desktop/metaheuristic_comparation/performance.xlsx")
View(performance_1)
attach(performance_1)
names(performance_1)
str(performance_1)
Factor_algorithm <- factor(Algorithm)
Factor_instance <- factor(Instance)
Respuesta <- performance_1$No_solutions
Modelo <-lm(Respuesta ~ (Factor_algorithm+Factor_instance)^2)
ANOVA <-aov(Modelo)
summary(ANOVA)
输出为:
Modelo <-lm(Respuesta ~ (Factor_algorithm+Factor_instance)^2)
ANOVA <-aov(Modelo)
summary(ANOVA)
Df Sum Sq Mean Sq
Factor_algorithm 7 191169 27310
Factor_instance 5 9 2
Factor_algorithm:Factor_instance 5 9 2
我已经阅读了 aov() 方法的文档,我非常确定必须显示 F 统计量。有任何想法吗?我很确定我可以使用这种方法获得更多信息
仔细查看 aov
函数的文档。它指出 F 和 p-values 仅在模型中具有 non-zero 剩余自由度时显示
在您的情况下,您有 18 个数据点,您的预测器使用了 17 (7+5+5) 个自由度,而模型本身需要 1 个,这使您达到 18 个。这给您留下了0 剩余自由度,因此 F-value 不显示。解决方案是收集更多数据或简化您的模型
你的数据有误吗?与您的问题文本中的 3 种相比,指示了 8 种算法。如果将所有 SPEA#
更改为 SPEA2
并删除交互,您可以获得 F-values,但考虑到数据和 within-/between-group 方差,它仍然是一个 non-sense 模型。 Algorithm
微不足道,而 Instance
微不足道。
pp <- read.table(text="
Instance Algorithm No_solutions
1 I1 C-M 48
2 I2 C-M 46
3 I3 C-M 51
4 I4 C-M 50
5 I5 C-M 51
6 I6 C-M 49
7 I1 NSGA-II 300
8 I2 NSGA-II 300
9 I3 NSGA-II 300
10 I4 NSGA-II 300
11 I5 NSGA-II 300
12 I6 NSGA-II 300
13 I1 SPEA2 150
14 I2 SPEA2 150
15 I3 SPEA2 150
16 I4 SPEA2 150
17 I5 SPEA2 150
18 I6 SPEA2 150")
anova(aov(No_solutions ~ Instance+Algorithm, data=pp))
# Analysis of Variance Table
#
# Response: No_solutions
# Df Sum Sq Mean Sq F value Pr(>F)
# Instance 5 6 1 1 0.4651
# Algorithm 2 191169 95585 76129 <2e-16 ***
# Residuals 10 13 1
我目前正在运行使用一些算法来求解多objective 线性数学模型(运筹学)。我使用了三种算法:约束方法 (C-M)、非排序遗传算法 II (NSGA-II) 和强度帕累托进化算法 2 (SPEA2)。我已针对 Pareto Border (No_solutions) 中解决方案的数量设置了性能指标,并从六个实例 (I1,..,I6) 中收集了数据。
我的数据如下table:
Instance Algorithm No_solutions
1 I1 C-M 48
2 I2 C-M 46
3 I3 C-M 51
4 I4 C-M 50
5 I5 C-M 51
6 I6 C-M 49
7 I1 NSGA-II 300
8 I2 NSGA-II 300
9 I3 NSGA-II 300
10 I4 NSGA-II 300
11 I5 NSGA-II 300
12 I6 NSGA-II 300
13 I1 SPEA2 150
14 I2 SPEA3 150
15 I3 SPEA4 150
16 I4 SPEA5 150
17 I5 SPEA6 150
18 I6 SPEA7 150
我已经 运行 使用 aov()
在 R 中进行方差分析。我的代码如下:
performance_1 <- read_excel("C:/Users/Alonso/Desktop/metaheuristic_comparation/performance.xlsx")
View(performance_1)
attach(performance_1)
names(performance_1)
str(performance_1)
Factor_algorithm <- factor(Algorithm)
Factor_instance <- factor(Instance)
Respuesta <- performance_1$No_solutions
Modelo <-lm(Respuesta ~ (Factor_algorithm+Factor_instance)^2)
ANOVA <-aov(Modelo)
summary(ANOVA)
输出为:
Modelo <-lm(Respuesta ~ (Factor_algorithm+Factor_instance)^2)
ANOVA <-aov(Modelo)
summary(ANOVA)
Df Sum Sq Mean Sq
Factor_algorithm 7 191169 27310
Factor_instance 5 9 2
Factor_algorithm:Factor_instance 5 9 2
我已经阅读了 aov() 方法的文档,我非常确定必须显示 F 统计量。有任何想法吗?我很确定我可以使用这种方法获得更多信息
仔细查看 aov
函数的文档。它指出 F 和 p-values 仅在模型中具有 non-zero 剩余自由度时显示
在您的情况下,您有 18 个数据点,您的预测器使用了 17 (7+5+5) 个自由度,而模型本身需要 1 个,这使您达到 18 个。这给您留下了0 剩余自由度,因此 F-value 不显示。解决方案是收集更多数据或简化您的模型
你的数据有误吗?与您的问题文本中的 3 种相比,指示了 8 种算法。如果将所有 SPEA#
更改为 SPEA2
并删除交互,您可以获得 F-values,但考虑到数据和 within-/between-group 方差,它仍然是一个 non-sense 模型。 Algorithm
微不足道,而 Instance
微不足道。
pp <- read.table(text="
Instance Algorithm No_solutions
1 I1 C-M 48
2 I2 C-M 46
3 I3 C-M 51
4 I4 C-M 50
5 I5 C-M 51
6 I6 C-M 49
7 I1 NSGA-II 300
8 I2 NSGA-II 300
9 I3 NSGA-II 300
10 I4 NSGA-II 300
11 I5 NSGA-II 300
12 I6 NSGA-II 300
13 I1 SPEA2 150
14 I2 SPEA2 150
15 I3 SPEA2 150
16 I4 SPEA2 150
17 I5 SPEA2 150
18 I6 SPEA2 150")
anova(aov(No_solutions ~ Instance+Algorithm, data=pp))
# Analysis of Variance Table
#
# Response: No_solutions
# Df Sum Sq Mean Sq F value Pr(>F)
# Instance 5 6 1 1 0.4651
# Algorithm 2 191169 95585 76129 <2e-16 ***
# Residuals 10 13 1