[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