Re: [R] retrieving p-values in lm

From: Gavin Simpson <gavin.simpson_at_ucl.ac.uk>
Date: Sat 10 Dec 2005 - 01:07:28 EST

On Fri, 2005-12-09 at 14:19 +0100, Patrick Kuss wrote:
> Dear list,
>
> I want to retrieve the p-value of a two-polynomial regression. For a
> one-polynomial lm I can easily do this with:
> summary(lm(b~a, data=c)[[4]][[8]].
>
> But how do I find the final p-value in the two-polynomial regression? Under
> $coefficients I don't find it
>
> Any suggestions?

Judging from your code, you mean p-value of the F-statistic for the whole model - this isn't stored anywhere, see:

getAnywhere(print.summary.lm)

In particular this section:

 cat("\nResidual standard error:", format(signif(x$sigma,

        digits)), "on", rdf, "degrees of freedom\n")     if (!is.null(x$fstatistic)) {

        cat("Multiple R-Squared:", formatC(x$r.squared, digits = digits))
        cat(",\tAdjusted R-squared:", formatC(x$adj.r.squared,
            digits = digits), "\nF-statistic:", formatC(x$fstatistic[1],
            digits = digits), "on", x$fstatistic[2], "and", x$fstatistic[3],
            "DF,  p-value:", format.pval(pf(x$fstatistic[1],
                x$fstatistic[2], x$fstatistic[3], lower.tail = FALSE),
                digits = digits), "\n")
    }

The relevant bit being:

format.pval(pf(x$fstatistic[1],

                x$fstatistic[2], x$fstatistic[3], lower.tail = FALSE)

The reason this works for the first model is that with one covariate the value in $coefficients is the overall model p-value, in that case. With two covariates, the things in $coefficients relate to these, not to the overall model - your assumption was wrong in the first usage, you just lucked out that it gave the same result.

So,

p1 <- pf(lm.res$fstatistic[1],

         lm.res$fstatistic[2], lm.res$fstatistic[3], 
         lower.tail = FALSE)

p2 <- pf(lm.res.2$fstatistic[1],
         lm.res.2$fstatistic[2], lm.res.2$fstatistic[3], 
         lower.tail = FALSE)

Gives you the p-values:

> p1

     value
0.01368545
> p2

    value
0.0461472

HTH G
>
> Patrick
>
> alt <-(2260,2183,2189,1930,2435,
> 2000,2100,2050,2020,2470,
> 1700,2310,2090,1560,2060,
> 1790,1940,2100,2250,2010)
>
> H <- c(0.2034,0.1845,0.2053,0.1788,0.2196,
> 0.2037,0.1655,0.2176,0.1844,0.2033,
> 0.1393,0.2019,0.1975,0.1490,0.1917,
> 0.2180,0.2064,0.1943,0.2139,0.1320)
>
> X <- data.frame(alt,H)
>
> lm.res <- summary(lm(H~alt,data=X))
> lm.res
> p1 <- lm.res[[4]][[8]]
> p1
>
> lm.res.2 <- summary(lm(H~alt+I(alt^2),data=X))
> lm.res.2
> str(lm.res.2) # where is p
>
> p2 <- lm.res.2[[???]][[????]]
>
> --
> Patrick Kuss
> PhD-student
> Institute of Botany
> University of Basel
> Schönbeinstr. 6
> CH-4056 Basel
> +41 61 267 2976
>
> ______________________________________________
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
--
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%

Gavin Simpson                     [T] +44 (0)20 7679 5522
ENSIS Research Fellow             [F] +44 (0)20 7679 7565
ENSIS Ltd. & ECRC                 [E] gavin.simpsonATNOSPAMucl.ac.uk
UCL Department of Geography       [W] http://www.ucl.ac.uk/~ucfagls/cv/

26 Bedford Way                    [W] http://www.ucl.ac.uk/~ucfagls/

London. WC1H 0AP.
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%

R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Sat Dec 10 01:13:33 2005

This archive was generated by hypermail 2.1.8 : Sat 10 Dec 2005 - 02:26:17 EST