[R-es] convertir el resultado de un regresión lineal en una función
Argel Gastélum Arellánez
argel.gastelum en gmail.com
Sab Jun 23 00:04:52 CEST 2012
Hola Daniel, tal vez esto te pueda servir...
El 22/06/12 12:28, Daniel Arismendi escribió:
> Saludos a todos los miembros de la comunidad.
>
> Estoy en estos momentos intentando resolver un problemita con R (una
> metodología que tengo que repetir cerca de 100 veces con un conjunto de
> datos) y me gustaría convertir el resultado de una regresión lineal en una
> función que pueda ser integrada posteriormente, es decir:
>
> Tengo los siguiente:
> >file<- commandArgs(trailingOnly=TRUE)
> >options(digits=16)
> >options(max.print=5.5E5)
> >x<- seq(50001,100000,1)
> >datos<- read.table(file)
> >attach(datos)
> >ajust<- lm(V1~x,data=datos)
> >ajust.
>
> Hasta aquí no tengo problemas y se resolver integrales de manera numérica
> en R de manera aislada, por ejemplo:
>
>> ## define the integrated function
>> integrand<- function(x) {1/((x+1)*sqrt(x))}
>> ## integrate the function from 0 to infinity
>> integrate(integrand, lower = 0, upper = Inf)
> Cuando quiero intentar relacionar ambas cosas en una sola, no tengo idea de
> como pasar el resultado que arroja "ajust" y convertirlo en una función que
> pueda integrarse usando el ejemplo que os muestro arriba.
>
> Alguna idea de como pudiera empezar para resolver este problemilla.!
>
> Gracias de antemano.
>
# Datos
x <- c(0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20)
V1 <- c(1, 3, 2, 7, 9, 11, 13, 12, 15, 19, 22)
datos <- data.frame(x, V1)
# Modelo lineal:
ajust <- lm(V1 ~ x, data = datos)
ajust
## define the integrated function
integrand <- function(x) {(ajust$coefficients["x"]) * x +
ajust$coefficients["(Intercept)"]}
integrand
## integrate the function from 0 to infinity
integrate(integrand, lower = 0, upper = 20)
Más información sobre la lista de distribución R-help-es