Rで同様のJavaの線形回帰

可能重複:
  より良い線形のためのJavaライブラリがありますか?回帰? (例:反復最小二乗法)

私は次のコードのinf Rを持っていますが、私はjavaで同じことを実装する必要があります。私は数学ではあまり鋭くないので、助けが必要です。

test_trait <- c( -0.48812477 , 0.33458213, -0.52754476, -0.79863471, -0.68544309, -0.12970239,  0.02355622, -0.31890850,0.34725819 , 0.08108851)

geno_A <- as.factor(c("Sub_0001"=1, "Sub_0002"=0, "Sub_0003"=1, "Sub_0004"=2, "Sub_0005"=0, "Sub_0006"=0, "Sub_0007"=1, "Sub_0008"=0, "Sub_0009"=1, "Sub_0010"=0))

geno_B <- as.factor(c("Sub_0001"=0, "Sub_0002"=0, "Sub_0003"=0, "Sub_0004"=1, "Sub_0005"=1, "Sub_0006"=0, "Sub_0007"=0, "Sub_0008"=0, "Sub_0009"=0, "Sub_0010"=0) )

fit <- lm(test_trait ~ geno_A*geno_B)
res <- anova(fit)
p.value <- res[3,5]

編集1: 私はこの質問を投稿する前にApache Commons Mathライブラリをチェックして、より良い線形回帰のためのJavaライブラリがありますか? (例:反復的に最小二乗を再計算)しかし、私の問題は、私のケースが単純な線形回帰か複数であるかどうかを特定できないということです。

test_trait contains height expressed from genetic trait geno_A and geno_B. geno_A and geno_B are alleles.

0
nl ru de
追加された 著者 TheWhiteRabbit,
私はこれが単純な線形回帰か倍数かを理解していません。
追加された 著者 World,

2 答え

java linear regression のためのグーグルでは、興味深いいくつかのリンクにつながっています。

より良い線形のためのJavaライブラリがありますか?回帰? (例:反復最小二乗)

線形回帰 y = a + b * x は、次の式を使用して計算できます。

b = (n*Σ(X*Y) - (ΣX)*(ΣY))/(n*Σ(X^2) - (ΣX)^2)
a = (ΣY - b*(ΣX))/n

ここで、Σ(A)はAの利用可能なすべての値の和であり、n - これらの値の数(X、Yの組の数)です。

カスタムデータ構造に対して回帰を直接行う必要がある場合は、独自の実装を優先することができます。ライブラリは、それがサポートしているデータ構造を渡す必要があり、大量のデータをクローンするか、そうでなければ最適な方法でデータ構造を設計する必要があります。

反対側から、データの量が多くないか、 double [] がプロジェクトに十分な構造であれば、 SimpleRegression は、通常の場合にはおそらく適切です。

0
追加された
これを行うには、おそらくいくつかのJavaライブラリがありますので、おそらくホイールを再構築する必要はありません。既に私がリンクしているSO投稿にはいくつかのオプションがあります。
追加された 著者 Paul Hiemstra,
線形回帰は確かに図書館にふさわしいものです。既にプログラムされたものを再実装するのは時間の無駄でしょう。同じライブラリにはおそらく平均を計算する関数もあります。さらに、私が以下にリンクしているライブラリは、RではなくJavaのライブラリです。JavaでRを接続する方法を学ぶことは、Rで利用できるはるかに複雑なライブラリがあるので、興味深いです。
追加された 著者 Paul Hiemstra,
回帰を計算するためのライブラリを見つけた後、ライブラリが平均を計算するように求めるかもしれません。特に、そのライブラリが別の言語で書かれている場合は、ライブラリの使用を正当化するための複雑さの特定の閾値があります。
追加された 著者 h22,
Apache Commonsの SimpleRegression 非常にカスタムのアプローチを必要としない場合におそらく使用できます。
追加された 著者 h22,