You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by Jonathan MERCIER <jm...@cng.fr> on 2018/10/30 11:22:46 UTC

[Math | Statistics] looking for an equivalent of both the R class "lm" and intrcept

Dear,

Firstly thanks for your amazing libraries.

Currently I am working to port some R code to Java, and I encounter some 
difficulties.


What is the equivalent of:

- the R class "lm" ?

*description*: 
https://www.rdocumentation.org/packages/stats/versions/3.5.1/topics/lm

- of intercept: Z ~ y-1 or z ~ 1

*R examples:*
Y ~ A          |  Y = βo + β1A     | Straight-line with an implicit 
y-intercept
Y ~ -1 + A    | Y = β1A| Straight-line with no y-intercept; that is, a 
fit forced through (0,0)
Y ~ A + I(A^2)| Y = βo+ β1A + β2A2| Polynomial model; note that the 
identity function I( ) allows terms in the model to include normal 
mathematical symbols.


Thanks for your help
-- 

Jonathan MERCIER
Centre National de Recherche en Génomique Humaine (CNRGH)

Researcher computational biology

PhD, Jonathan MERCIER

Bioinformatics (LBI)

2, rue Gaston Crémieux

91057 Evry Cedex

Tel :(33) 1 60 87 83 44

Email :jonathan.mercier@cng.fr <ma...@cng.fr>


Re: [Math | Statistics] looking for an equivalent of both the R class "lm" and intrcept

Posted by Gilles <gi...@harfang.homelinux.org>.
Hello.

On Tue, 30 Oct 2018 12:22:46 +0100, Jonathan MERCIER wrote:
> Dear,
>
> Firstly thanks for your amazing libraries.
>
> Currently I am working to port some R code to Java, and I encounter
> some difficulties.
>
>
> What is the equivalent of:
>
> - the R class "lm" ?
>
> *description*:
> 
> https://www.rdocumentation.org/packages/stats/versions/3.5.1/topics/lm
>
> - of intercept: Z ~ y-1 or z ~ 1
>
> *R examples:*
> Y ~ A          |  Y = βo + β1A     | Straight-line with an implicit
> y-intercept
> Y ~ -1 + A    | Y = β1A| Straight-line with no y-intercept; that is,
> a fit forced through (0,0)
> Y ~ A + I(A^2)| Y = βo+ β1A + β2A2| Polynomial model; note that the
> identity function I( ) allows terms in the model to include normal
> mathematical symbols.

I can guess that some of the equivalent functionality is provided
by the "o.a.c.math4.stat.regression" package:
   
http://commons.apache.org/proper/commons-math/apidocs/org/apache/commons/math4/stat/regression/package-summary.html


Regards,
Gilles

>
> Thanks for your help
> --
>
> Jonathan MERCIER
> Centre National de Recherche en Génomique Humaine (CNRGH)
>
> Researcher computational biology
>
> PhD, Jonathan MERCIER
>
> Bioinformatics (LBI)
>
> 2, rue Gaston Crémieux
>
> 91057 Evry Cedex
>
> Tel :(33) 1 60 87 83 44
>
> Email :jonathan.mercier@cng.fr <ma...@cng.fr>


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Re: [Math | Statistics] looking for an equivalent of both the R class "lm" and intrcept

Posted by Jonathan MERCIER <jm...@cng.fr>.
Thanks  Eric and Gilles for your help

Best regards

-- 

Jonathan MERCIER
Centre National de Recherche en Génomique Humaine (CNRGH)

Researcher computational biology

PhD, Jonathan MERCIER

Bioinformatics (LBI)

2, rue Gaston Crémieux

91057 Evry Cedex

Tel :(33) 1 60 87 83 44

Email :jonathan.mercier@cng.fr <ma...@cng.fr>


Re: [Math | Statistics] looking for an equivalent of both the R class "lm" and intrcept

Posted by Eric Barnhill <er...@gmail.com>.
On Tue, Oct 30, 2018 at 4:22 AM Jonathan MERCIER <jm...@cng.fr> wrote:

> *R examples:*
>
> Y ~ A          |  Y = βo + β1A     | Straight-line with an implicit
> y-intercept
> Y ~ -1 + A     |  Y = β1A          | Straight-line with no y-intercept;
> that is, a fit forced through (0,0)
>

SimpleRegression should take care of these first cases.
http://commons.apache.org/proper/commons-math/apidocs/org/apache/commons/math4/stat/regression/SimpleRegression.html

Construct the SimpleRegression() object, then pass data using the
addObservations() method. You can either call regress() and inspect the
RegressionResults object returned, or after calling results, use the
SimpleRegression methods getSlope() and getIntercept() . The results
returned by RegressionResults are more exhaustive. The boolean
includeIntercept should toggle whether the model fits an intercept.


Y ~ A + I(A^2) | Y = βo+ β1A + β2A2| Polynomial model; note that the
> identity function I( ) allows terms in the model to include normal
> mathematical symbols.
>

I don't think we have such a compact syntax for this. I think you'll have
to do it the old-fashioned way and create the appropriate model matrix,
then solve using the OLS regression package
http://commons.apache.org/proper/commons-math/apidocs/org/apache/commons/math4/stat/regression/OLSMultipleLinearRegression.html
which uses a QR factorization.

Add data with the newSampleData() method, then get your regression
coefficients by calling calculateBeta() .



>
> Thanks for your help
> --
> [image: Jonathan MERCIER]
> [image: Centre National de Recherche en Génomique Humaine (CNRGH)]
>
> Researcher computational biology
>
> PhD, Jonathan MERCIER
>
> Bioinformatics (LBI)
>
> 2, rue Gaston Crémieux
>
> 91057 Evry Cedex
>
> Tel :(33) 1 60 87 83 44
>
> Email :jonathan.mercier@cng.fr
>