[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