Dane wyjściowe LaTeX dla obiektu Summary.lm R. - podczas wyświetlania informacji poza tabelą [zamknięte]

10

Wydawało mi się to podstawowe, ale nie mogę znaleźć rozwiązania online, więc zastanawiałem się, co może mi brakować.

Chcę zawrzeć wynik obiektu podsumowania lm w dokumencie Sweave (.Rnw). Mogę albo wypisać podsumowanie.lm bez zmian, albo użyć pakietów xtable / Hmisc (za pomocą poleceń xtable lub lateksowych). Czy istnieje coś takiego jak xtable, który zawiera również informacje podsumowujące, które są dostępne spoza tabeli? ( , statystyki F itp.?)R2)

Tal Galili
źródło
Dlaczego to powinno być zamknięte? Czy zamiast tego powinno przejść na SO ?!
Tal Galili
4
Myślę, że może tu pozostać, pytanie jest bardziej odpowiednie dla statystyk, niż dla programistów.
mpiktas,
Zgodnie z obecnymi standardami tego forum jest to zdecydowanie nie na temat.
ameba

Odpowiedzi:

6

Spójrz na apsrtable pakietu . Następnie możesz dostosować wynik tak, jak chcesz i podsumować kilka modeli zamiast jednego.

mpiktas
źródło
Cześć mpiktas. Dziękuję za odpowiedź. Jestem mniej zainteresowany pokazaniem kilku tabel - i chcę po prostu mieć podsumowanie jednego modelu, ale to będzie wyglądać „ładnie”. Mogę otworzyć kod i to zrobić, ale jestem zaskoczony, że nie zostało to zrobione wcześniej ...
Tal Galili
1
@Tal Mam +1 tej odpowiedzi, ponieważ jestem prawie pewien, że istnieje sposób na osiągnięcie tego, co chcesz, chociaż nie poświęciłem czasu na szczegółowe zbadanie opcji pakietu (użyłem go raz, aby wyświetlić kilka modeli, jak powiedziałeś).
chl
2

Poddałem się i bawiłem się kodem, żeby stworzyć coś podobnego. Jednak nie najładniejsza rzecz. Jeśli ktoś chce go ulepszyć - chętnie skorzystam z twojego kodu.

print.summary.lm.xtable <- function (x, digits = max(3, getOption("digits") - 3), symbolic.cor = x$symbolic.cor, 
    signif.stars = getOption("show.signif.stars"), ...) 
{

if(!require(xtable)) stop("This function requires the package 'xtable' - please make sure you get it")


cat("\\begin{verbatim}")

    cat("\nCall:\n", paste(deparse(x$call), sep = "\n", collapse = "\n"), 
        "\n\n", sep = "")
    resid <- x$residuals
    df <- x$df
    rdf <- df[2L]
    cat(if (!is.null(x$w) && diff(range(x$w))) 
        "Weighted ", "Residuals:\n", sep = "")
    if (rdf > 5L) {
        nam <- c("Min", "1Q", "Median", "3Q", "Max")
        rq <- if (length(dim(resid)) == 2L) 
            structure(apply(t(resid), 1L, quantile), dimnames = list(nam, 
                dimnames(resid)[[2L]]))
        else {
            zz <- zapsmall(quantile(resid), digits + 1)
            structure(zz, names = nam)
        }
        print(rq, digits = digits, ...)
    }
    else if (rdf > 0L) {
        print(resid, digits = digits, ...)
    }
    else {
        cat("ALL", df[1L], "residuals are 0: no residual degrees of freedom!\n")
    }
#     if (length(x$aliased) == 0L) {
#         cat("\nNo Coefficients\n")
#     }
#     else {
#         if (nsingular <- df[3L] - df[1L]) 
#             cat("\nCoefficients: (", nsingular, " not defined because of singularities)\n", 
#                 sep = "")
#         else cat("\nCoefficients:\n")
#         coefs <- x$coefficients
#         if (!is.null(aliased <- x$aliased) && any(aliased)) {
#             cn <- names(aliased)
#             coefs <- matrix(NA, length(aliased), 4, dimnames = list(cn, 
#                 colnames(coefs)))
#             coefs[!aliased, ] <- x$coefficients
#         }
#         printCoefmat(coefs, digits = digits, signif.stars = signif.stars, 
#             na.print = "NA", ...)
#     }


cat("\\end{verbatim}")

print(xtable(x),   latex.environments = "left") # x is a summary of some lm object

cat("\\begin{verbatim}")
    cat("Residual standard error:", format(signif(x$sigma, 
        digits)), "on", rdf, "degrees of freedom\n")
    if (nzchar(mess <- naprint(x$na.action))) 
        cat("  (", mess, ")\n", sep = "")
    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[1L], 
            digits = digits), "on", x$fstatistic[2L], "and", 
            x$fstatistic[3L], "DF,  p-value:", format.pval(pf(x$fstatistic[1L], 
                x$fstatistic[2L], x$fstatistic[3L], lower.tail = FALSE), 
                digits = digits), "\n")
    }
    correl <- x$correlation
    if (!is.null(correl)) {
        p <- NCOL(correl)
        if (p > 1L) {
            cat("\nCorrelation of Coefficients:\n")
            if (is.logical(symbolic.cor) && symbolic.cor) {
                print(symnum(correl, abbr.colnames = NULL))
            }
            else {
                correl <- format(round(correl, 2), nsmall = 2, 
                  digits = digits)
                correl[!lower.tri(correl)] <- ""
                print(correl[-1, -p, drop = FALSE], quote = FALSE)
            }
        }
    }
    cat("\n")
cat("\\end{verbatim}")
    invisible(x)
}
Tal Galili
źródło
2

Jednym z możliwych rozwiązań jest swst: wydruk wyników statystycznych w pakiecie Sweave autorstwa Sacha Epskamp .

Przykłady

library(swst)
x <- c(44.4, 45.9, 41.9, 53.3, 44.7, 44.1, 50.7, 45.2, 60.1)
y <- c( 2.6, 3.1, 2.5, 5.0, 3.6, 4.0, 5.2, 2.8, 3.8)
corTest <- cor.test(x, y, method = "kendall", alternative = "greater")
swst(corTest)

T.=26p=0,06

# Chi-square test:
M <- as.table(rbind(c(762, 327, 468), c(484,239,477)))
dimnames(M) <- list(gender=c("M","F"),
party=c("Democrat","Independent", "Republican"))
chisqTest <- chisq.test(M)
swst(chisqTest)

(dohja2)(2))=30,07p<0,001

# Linear model:
## Annette Dobson (1990) "An Introduction to Generalized Linear Models".
## Page 9: Plant Weight Data.
ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2,10,20, labels=c("Ctl","Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)
lm.D90 <- lm(weight ~ group - 1) # omitting intercept
swst(lm.D9)

fa(1,18)=1.419p=0,249

swst(lm.D90)

fa(2),18)=485,051p<0,001

MYaseen208
źródło
0

Osobiście podoba mi się texreg , który dobrze się gra booktabsi jest również wysoce konfigurowalny.

Nie do końca to, czego szukasz, ale myślę, że to także dobra lektura dla tego rodzaju pracy.

* Uwaga, nie mam związku z Filipem, który napisał ten pakiet. Lol.

Philip
źródło