¡Muchas gracias Olivier! Un saludo. El 16 de abril de 2015, 10:44, Olivier Nuñez <onunez en unex.es> escribió:> 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 [[alternative HTML version deleted]]
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ó:> ¡Muchas gracias Olivier! > > > Un saludo. > > El 16 de abril de 2015, 10:44, Olivier Nuñez <onunez en unex.es> escribió: > >> 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 >-- Víctor Nalda Castellet [[alternative HTML version deleted]]
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 ----- Mensaje original ----- 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ó: ¡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 [[alternative HTML version deleted]]
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]]
Hola Olivier, Muchísimas gracias por la ayuda, todo entendido. Con tan pocos datos no puedo pretender obtener lo que me imagino en mi cabeza. Me has ayudado mucho a entender como funcionaba, todo solucionado! Un abrazo, y gracias de nuevo. El 17 de abril de 2015, 9:58, Olivier Nuñez <onunez en unex.es> escribió:> 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. > > > ------------------------------ > *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ó: >> >>> 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ó: >>> >>>> ¡Muchas gracias Olivier! >>>> >>>> >>>> Un saludo. >>>> >>>> El 16 de abril de 2015, 10:44, Olivier Nuñez <onunez en unex.es> escribió: >>>> >>>>> 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 >>>> >>> >>> >>> >>> -- >>> Víctor Nalda Castellet >>> >>> >> >> >> -- >> Víctor Nalda Castellet >> >> > > > -- > Víctor Nalda Castellet > >-- Víctor Nalda Castellet [[alternative HTML version deleted]]