studio regresion polinomial multiple modelo lineal entre ejemplos diferencia determinacion correlacion coeficiente r regression lm

polinomial - regresion lineal en r, lm



Extraer valores del coeficiente de regresiĆ³n (3)

Tengo un modelo de regresión para algunos datos de series de tiempo que investigan la utilización de medicamentos. El objetivo es ajustar una spline a una serie temporal y calcular un 95% de IC, etc. El modelo es el siguiente:

id <- ts(1:length(drug$Date)) a1 <- ts(drug$Rate) a2 <- lag(a1-1) tg <- ts.union(a1,id,a2) mg <-lm (a1~a2+bs(id,df=df1),data=tg)

El resultado de resumen de mg es:

Call: lm(formula = a1 ~ a2 + bs(id, df = df1), data = tg) Residuals: Min 1Q Median 3Q Max -0.31617 -0.11711 -0.02897 0.12330 0.40442 Coefficients: Estimate Std. Error t value Pr(>|t|) (Intercept) 0.77443 0.09011 8.594 1.10e-11 *** a2 0.13270 0.13593 0.976 0.33329 bs(id, df = df1)1 -0.16349 0.23431 -0.698 0.48832 bs(id, df = df1)2 0.63013 0.19362 3.254 0.00196 ** bs(id, df = df1)3 0.33859 0.14399 2.351 0.02238 * --- Signif. codes: 0 ''***'' 0.001 ''**'' 0.01 ''*'' 0.05 ''.'' 0.1 '' '' 1

Estoy usando el valor Pr(>|t|) de a2 para probar si los datos bajo investigación están autocorrelacionados.

¿Es posible extraer este valor de Pr(>|t|) (en este modelo 0.33329) y almacenarlo en un escalar para realizar una prueba lógica?

Alternativamente, ¿se puede resolver usando otro método?


La broom paquete es útil aquí (usa el formato "ordenado").

tidy(mg) proporcionará un data.came de formato agradable con coeficientes, t estadísticas, etc. Funciona también para otros modelos (p. ej., plm, ...).

Ejemplo del repositorio github de broom:

lmfit <- lm(mpg ~ wt, mtcars) require(broom) tidy(lmfit) term estimate std.error statistic p.value 1 (Intercept) 37.285 1.8776 19.858 8.242e-19 2 wt -5.344 0.5591 -9.559 1.294e-10 is.data.frame(tidy(lmfit)) [1] TRUE


Simplemente pase su modelo de regresión a la siguiente función:

plot_coeffs <- function(mlr_model) { coeffs <- coefficients(mlr_model) mp <- barplot(coeffs, col="#3F97D0", xaxt=''n'', main="Regression Coefficients") lablist <- names(coeffs) text(mp, par("usr")[3], labels = lablist, srt = 45, adj = c(1.1,1.1), xpd = TRUE, cex=0.6) }

Use de la siguiente manera:

model <- lm(Petal.Width ~ ., data = iris) plot_coeffs(model)


Un objeto summary.lm almacena estos valores en una matrix llamada ''coefficients'' . Entonces, se puede acceder al valor que está buscando con:

a2Pval <- summary(mg)$coefficients[2, 4]

O, de forma más general / legible, coef coef(summary(mg))["a2","Pr(>|t|)"] . Vea here por qué se prefiere este método.