[R-es] Weighted Likelihood

Olivier Nuñez onunez en unex.es
Vie Abr 17 09:58:43 CEST 2015


Pero, si el modelo lineal lo cubre casi todo! 
Tu modelo es lineal pero generalizado y estás especificando que tus datos siguen una Gamma (family=Gamma). 
Lo cual implica por defecto que en promedio la relación entre la variable dependiente ("datos") y la independiente ("num") es inversa.... no es precisamente lineal. 
Si quieres más flexibilidad puedes utilizar splines en la regresión; un ejemplo: 
require(splines) 
modelo <- svyglm(formula = datos ~ ns(num,2), design = svy, family = Gamma) 


svyplot(formula = datos ~ num, design = svy) 
lines(svy$variables$num, fitted(modelo), col="red") 


Pero, con 10 puntos sólo ganaras inestabilidad en la predicción. 


----- Mensaje original -----

De: "Víctor Nalda Castellet" <victor.nalda.castellet en gmail.com> 
Para: "Olivier Nuñez" <onunez en unex.es> 
Enviados: Jueves, 16 de Abril 2015 18:55:17 
Asunto: Re: [R-es] Weighted Likelihood 

Hola Olivier, 

No recordaba la función "fitted", muchas gracias. Lo que ocurre es que claro al utilizar "glm", es un modelo lineal. Me gustaría saber si se puede ajustar mediante otro tipo de funciones como una Gamma o una normal, ¿sabes cómo? 

install.packages("survey") 
library("survey") 

num <- c(1:10) 
datos <- c(1.1146265, 0.9039153, 0.8374396, 0.7089485, 1.2488793, 2.5789016, 2.0976523, 0.9748834, 0.2738321, 1.1842141) 
pesos <- c(0.7,0.7,1,1,0.02,0.01,1,0.01,0.05,0.2) 
df <- cbind.data.frame(num, datos, pesos) 

svy <- svydesign(datos, weights = pesos, data = df) 

modelo <- svyglm(formula = datos ~ num, design = svy, family = Gamma) 
# family: binomial, gaussian, Gamma, inverse.gaussian, poisson, quasi, quasibinomial, quasipoisson 

svyplot(formula = datos ~ num, design = svy) 
lines(svy$variables$num, fitted(modelo), col="red") 


De verdad, muchas gracias por ayudar. 

El 16 de abril de 2015, 18:27, Olivier Nuñez < onunez en unex.es > escribió: 



Todo parece correcto (siempre que tus pesos son efectivamente "weight sampling"). 
El ajuste, lo puedes obtener de manera estándar con fitted(modelo) y vizualizarlo por ejemplo con 

svyplot(formula = datos ~ num, design = svy) 
lines(svy$variables$num,fitted(modelo),col="blue") 




De: "Víctor Nalda Castellet" < victor.nalda.castellet en gmail.com > 
Para: "Olivier Nuñez" < onunez en unex.es > 
Enviados: Jueves, 16 de Abril 2015 17:25:56 

Asunto: Re: [R-es] Weighted Likelihood 

Hola Olivier, 

Muchas gracias por la ayuda, te he entendido perfectamente. 

Tengo un vector de datos y uno de pesos, por ejemplo: 

num <- c(1:10) 
datos <- c(1.1146265, 0.9039153, 0.8374396, 0.7089485, 1.2488793, 2.5789016, 2.0976523, 0.9748834, 0.2738321, 1.1842141) 
pesos <- c(0.7,0.7,1,1,0.02,0.01,0.02,0.01,0.05,0.2) 
df <- cbind.data.frame(num, datos, pesos) 

Ahora creo el diseño como: 

svy <- svydesign(datos, weights = pesos, data = df) 

Y si hago su gráfica puedo ver que unos puntos tienen mayor peso que otros, tal y como he especificado en los "pesos": 

svyplot(formula = datos ~ num, design = svy) 

Ahora quiero ajustar el modelo mediante una función Gamma, para ello: 

modelo <- svyglm(formula = datos ~ num, design = svy, family = Gamma) 
# family: binomial, gaussian, Gamma, inverse.gaussian, poisson, quasi, quasibinomial, quasipoisson 
summary(modelo) 
plot(modelo) 

¿Esto es correcto? ¿Cómo puedo ver el ajuste? 


Muchas gracias, un saludo. 

El 16 de abril de 2015, 11:40, Olivier Nuñez < onunez en unex.es > escribió: 

<blockquote>

No das muchos detalles sobre porque quieres ponderar los datos, pero intuyo que es por el diseño. 
Si es así, la función svydesign del paquete te permite especificar bien la probabilidad de selección del dato (probs) en la muestra o de manera equivalente, o el "sampling weight" que puedes interpretar como la representatividad del dato en la población. Una vez especificado el diseño mediante esta función, puedes llevar cualquier análisis estandár de tus datos. Un saludo. Olivier 


De: "Víctor Nalda Castellet" < victor.nalda.castellet en gmail.com > 
Para: "Olivier Nuñez" < onunez en unex.es > 
CC: "r-help-es" < r-help-es en r-project.org > 
Enviados: Jueves, 16 de Abril 2015 11:25:10 
Asunto: Re: [R-es] Weighted Likelihood 


Hola, 

He buscado por el pdf de la documentación qué función es la que me puede servir pero no encuentro ninguna. 
¿Tenías alguna función especifica de ese paquete pensada? 


Un saludo, y muchas gracias por la ayuda. 

El 16 de abril de 2015, 10:45, Víctor Nalda Castellet < victor.nalda.castellet en gmail.com > escribió: 

<blockquote>

¡Muchas gracias Olivier! 


Un saludo. 

El 16 de abril de 2015, 10:44, Olivier Nuñez < onunez en unex.es > escribió: 

<blockquote>
Mira el paquete survey. 
Un saludo. Olivier 

----- Mensaje original ----- 
De: "Víctor Nalda Castellet" < victor.nalda.castellet en gmail.com > 
Para: "r-help-es" < r-help-es en r-project.org > 
Enviados: Miércoles, 15 de Abril 2015 14:21:33 
Asunto: [R-es] Weighted Likelihood 

Buenas tardes, 

Estoy intentando ajustar distribuciones utilizando un vector de ponderación 
en los datos (Weighted Likelihood). ¿Existen paquetes en R que resuelven 
esto? He mirado ya el paquete "wle" pero no me permite introducir los pesos 
mediante los cuales ponderar los datos. 

En un primer momento, se me ha ocurrido realizar lo siguiente: repetir 
cada elemento del vector datos tantas veces como indique el vector pesos 
“modificado” (multiplicado por una potencia de 10, para que sean todos 
números enteros). Y con este vector de datos repetidos realizar el ajuste. 

Pero me gustaría conocer si existen otras formas "más elegantes" de hacerlo. 


Un saludo, y muchas gracias por adelantado. 

-- 
Víctor Nalda Castellet 

[[alternative HTML version deleted]] 

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






-- 
Víctor Nalda Castellet 

</blockquote>




-- 
Víctor Nalda Castellet 


</blockquote>




-- 
Víctor Nalda Castellet 


</blockquote>




-- 
Víctor Nalda Castellet 


	[[alternative HTML version deleted]]



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