[R-es] convertir el resultado de un regresión lineal en una función

Marcuzzi, Javier Rubén javier.ruben.marcuzzi en gmail.com
Vie Jun 29 19:41:48 CEST 2012


Estimados:

Dato unos correos anteriores, y aclarando que nunca use esta parte de la 
tecnología matemática se me ocurrió leer algo y realizar ejercicios, pero 
hay algo que no comprendí correctamente, al correr el código seguramente se 
darán cuenta de un error muy básico, casi matemáticamente imperdonable, pero 
hay algo en R que no comprendí.
# Datos
x <- 1:10
V1 <- x+x
datos <- data.frame(x, V1)
plot(datos)

# 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 = 2)

# Otra forma es usar "predict":
integrand.2 <- function(x) {predict(object = ajust, newdata = 
data.frame(x))}

integrate(integrand.2, lower = 0, upper = 2)
predict(object = ajust, newdata = data.frame(x))
xx<-2
integrand(xx)

#  mi duda o incomprención
#  viendo los datos, para xx igual a 2, tengo x 1 y x2, con valores de 2 y 4
#  cumando a lo que corresponde a x1 y x2 es 6
#  algo no comprendi bien

-----Mensaje original----- 
From: Argel Gastélum Arellánez
Sent: Friday, June 22, 2012 7:58 PM
To: r-help-es en r-project.org
Subject: Re: [R-es] convertir el resultado de un regresión lineal en una 
función



El 22/06/12 17:04, Argel Gastélum Arellánez escribió:
>     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)

# Otra forma es usar "predict":
integrand.2 <- function(x) {predict(object = ajust, newdata =
data.frame(x))}

integrate(integrand.2, lower = 0, upper = 20)

_______________________________________________
R-help-es mailing list
R-help-es en r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es



Más información sobre la lista de distribución R-help-es