java中的广义线性混合效应模型

时间:2016-01-05 11:05:02

标签: java r machine-learning statistics

我有一个R代码,它使用glmer方法创建广义线性混合效果模型,我需要将此代码移植到java。

是否有一个提供此功能的库?

我试过谷歌等但是可以找到任何直接有用的东西。

有没有办法使用Apache Math库实现混合效果回归?

我仍然在学习混合效果模型的概念,但还没有完全理解这些概念。我在这里找到了一个提供多元回归的类http://commons.apache.org/proper/commons-math/apidocs/org/apache/commons/math3/stat/regression/MultipleLinearRegression.html,我想我可以用它实现我需要的东西。

有没有人尝试过类似的事情?

1 个答案:

答案 0 :(得分:1)

您可以使用rJava包。它要求在机器上安装R,然后,它允许从java调用R代码。

要使用它,您需要先安装它install.packages('rJava')。 之后,您需要将以下内容添加到R

的目录中
<R_HOME>\bin\i386;
<R_HOME>\library\rJava\jri\i386;

在java中你需要添加来自

的所有jar
<R_HOME>\library\rJava\jri 

到你的班级路径。

之后你可以调用rJava

Rengine eng = new Rengine(new String[] { "--no-save" }, false, null);

String[] colNames = {"col1", "col2", "col3"};
String[] col1 = {"a1", "a2", "a3", "a4"};
String[] col2 = {"b1", "b2", "b3", "b4"};
int[] col3 = {1, 2, 3, 4};

REXP mydf = REXP
            .createDataFrame(new RList(
                    new REXP[] {
                            new REXPString(col1),
                            new REXPString(col2),
                            new REXPInteger(col3)},
                    colNames));
//generate a dataframe inr engine
eng.assign("myDataFrame", mydf);

 //Calculate MEAN of vector using R syntax.
 eng.eval("meanVal=mean(myDataFrame$col3)");

 //Retrieve MEAN value
 double mean = eng.eval("meanVal").asDouble();