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