1
所以我有这2个变量:如何在Spark Scala中执行ANOVA?
x: 1 0 1 1 0 1 1 0 ...
和
y: 4 3 12 9 2 7 23 ...
以前我可以在R
使用此代码进行方差分析:
stats <- anova(lm(as.matrix(y) ~ as.factor(x)))
,它会给这个结果:
> anova(lm(as.matrix(y) ~ as.factor(x)))
Analysis of Variance Table
Response: as.matrix(y)
Df Sum Sq Mean Sq F value Pr(>F)
as.factor(x) 1 2020 2019.99 5.1431 0.02426 *
Residuals 231 90727 392.76
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
现在我想用Scala代码将这段代码翻译成Spark。这个怎么做?
我已经尝试this API,但我很困惑,因为在该API中只有1个变量作为输入,但anova
在R
使用2个输入。
我也发现this API,但它似乎是另一个的前身。我很困惑在哪里把x
和y
作为输入。通常我们在API中有依赖于&的独立变量,我们可以在其中放入输入,但我似乎无法在这里找到它。
我的Spark版本是2.1.1。
谢谢你!真的解释!我很好奇,你知道为什么在'R'中我们需要先做线性回归? (如在代码'lm(as.matrix(y)〜as.factor(x))') –
如果你这样做,你正在查看拟合回归模型的ANOVA表。一些更多细节在这里:http://stat.ethz.ch/R-manual/R-patched/library/stats/html/anova.lm.html和这里:https://stats.stackexchange.com/questions/115304 /解释输出从 - ANOVA-时-使用-LM-作为输入 – jamborta