# [R] R-square n p-value

Peter Dalgaard p.dalgaard at biostat.ku.dk
Sun Sep 4 10:43:22 CEST 2005

```Dirk Eddelbuettel <edd at debian.org> writes:

> On 3 September 2005 at 17:59, Justin Rhodes wrote:
> | Dear R-help,
> |
> | me a p-value from the input: 1) R-square statistic from a simple
> | linear regression, and 2) sample size, n
> |
> | This would be greatly appreciated.  I need this because I am using a
> | database that gives me R-square and sample size for multiple
> | comparisons, and I wish to determine the false discovery rate using
> | q-value.  Thanks again,
>
> Do
> 	> example(lm)			# just to get an lm object
> 	> str(summary(lm.D9))		# to examine summary of an object
>
> and you'll see that the object returned from summary has the two common R^2
> measures, as well as things like residuals from which can compute n quite
> easily -- which you could obviously also from your regressors and regressand.
>
> 	> length(summary(lm.D9)\$residuals)

I think the problem was somewhat different: The *input* is coming from
some sort of (closed-source or otherwise impenetrable) database which
only gives out n and R^2, right?

Now R^2 = SSDmodel/(SSDmodel+SSDres) and F =
DFres/DFmodel*SSDmodel/SSDres, i.e.

1/R^2 = 1 + 1/F*DFmodel/DFres

or

F = 1/(1/R^2 - 1)*DFres/DFmodel = R^2/(1-R^2)*DFres/DFmodel

which can be looked up "in the F-table" using

pf(F, 1, N-2, lower.tail=FALSE)

(provided we have a 1 DF model)

Actually, R^2 itself has a beta distribution and you could use pbeta
directly, but then you'd need to figure out (or recall) what the
relation between the DF and the shape parameters of the beta
distribution are. By my reckoning, this should do it:

pbeta(Rsq, 1/2, (N-2)/2, lower.tail=FALSE)

"Proof":

....
Residual standard error: 1.143 on 8 degrees of freedom
Multiple R-Squared: 0.0004207,  Adjusted R-squared: -0.1245
F-statistic: 0.003367 on 1 and 8 DF,  p-value: 0.9552

> pbeta(0.0004207, 1/2, 8/2, lower=F)
[1] 0.9551511

--
O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)                  FAX: (+45) 35327907

```