Buenas. Tengo los dos siguientes valores de las variables x e y de una muestra de tamaño 6 x<-c(3,2,6,5,4,6) y<-c(6,2,2,1,3,3) Y calculo el estimador mean(x) * mean(y) como est<-mean(x)*mean(y) Mi problema es que ahora quiero calcular este estimador para todas las posibles semimuestras de tamaño 3. Es decir, la primera muestra estaría constituida por los 3 primeros datos de cada variable. Por ejemplo muestra 1. (1,2,3) muestra 2. (1,2,4) muestra 3. (1,2,5) muestra 4 (1,2,6) muestra 5. (1,3,4) Así hasta la muestra 10, teniendo en cuenta que las muestras que contengan los mismos elementos sólo la consideramos una vez. Para la primera muestra puedo hacer est.1<-mean(x[1:3])*mean(y[1:3]) Para la segunda est.2<-mean(x[c(1,2,4)])*mean(y[c(1,2,4)]) Y así, sucesivamente. Estoy intentando hacerlo de forma que sea automática, he probado con un ciclo for , pero no me sale. ¿ideas? Gracias
Hola Jose Luis. Una posible solución: require(gtools) est <- apply(combinations(6, 3), 1, function(ind) mean(x[ind]) * mean(y[ind])) El 16 de abril de 2010 12:44, José Luis Cañadas <canadasreche@gmail.com>escribió:> Buenas. > > Tengo los dos siguientes valores de las variables x e y de una muestra de > tamaño 6 > > x<-c(3,2,6,5,4,6) > y<-c(6,2,2,1,3,3) > > Y calculo el estimador mean(x) * mean(y) como est<-mean(x)*mean(y) > > Mi problema es que ahora quiero calcular este estimador para todas las > posibles semimuestras de tamaño 3. Es decir, la primera muestra estaría > constituida por los 3 primeros datos de cada variable. Por ejemplo > > muestra 1. (1,2,3) > muestra 2. (1,2,4) > muestra 3. (1,2,5) > muestra 4 (1,2,6) > muestra 5. (1,3,4) > > Así hasta la muestra 10, teniendo en cuenta que las muestras que contengan > los mismos elementos sólo la consideramos una vez. > > Para la primera muestra puedo hacer > est.1<-mean(x[1:3])*mean(y[1:3]) > Para la segunda > est.2<-mean(x[c(1,2,4)])*mean(y[c(1,2,4)]) > > Y así, sucesivamente. Estoy intentando hacerlo de forma que sea automática, > he probado con un ciclo for , pero no me sale. > > ¿ideas? > > > Gracias > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Gracias, estaba viendo por el paquete combinat, pero esta también me vale. Javier Muñoz escribió:> Hola Jose Luis. > > Una posible solución: > > require(gtools) > est <- apply(combinations(6, 3), 1, function(ind) mean(x[ind]) * > mean(y[ind])) > > > El 16 de abril de 2010 12:44, José Luis Cañadas > <canadasreche en gmail.com <mailto:canadasreche en gmail.com>> escribió: > > Buenas. > > Tengo los dos siguientes valores de las variables x e y de una > muestra de tamaño 6 > > x<-c(3,2,6,5,4,6) > y<-c(6,2,2,1,3,3) > > Y calculo el estimador mean(x) * mean(y) como est<-mean(x)*mean(y) > > Mi problema es que ahora quiero calcular este estimador para todas > las posibles semimuestras de tamaño 3. Es decir, la primera > muestra estaría constituida por los 3 primeros datos de cada > variable. Por ejemplo > > muestra 1. (1,2,3) > muestra 2. (1,2,4) > muestra 3. (1,2,5) > muestra 4 (1,2,6) > muestra 5. (1,3,4) > > Así hasta la muestra 10, teniendo en cuenta que las muestras que > contengan los mismos elementos sólo la consideramos una vez. > > Para la primera muestra puedo hacer > est.1<-mean(x[1:3])*mean(y[1:3]) > Para la segunda > est.2<-mean(x[c(1,2,4)])*mean(y[c(1,2,4)]) > > Y así, sucesivamente. Estoy intentando hacerlo de forma que sea > automática, he probado con un ciclo for , pero no me sale. > > ¿ideas? > > > Gracias > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org <mailto:R-help-es en r-project.org> > https://stat.ethz.ch/mailman/listinfo/r-help-es > >
Hola, foo <- function( x )apply( combinations( length( x ), r = 3 ), 1, function( z ) x[ z ] ) apply( foo( x ), 2, mean )* apply( foo( y ), 2, mean ) aunque creo que se me han adelantado :P saludos Patricia El 16 de abril de 2010 13:19, Javier Muñoz <javimunozlara@gmail.com>escribió:> Hola Jose Luis. > > Una posible solución: > > require(gtools) > est <- apply(combinations(6, 3), 1, function(ind) mean(x[ind]) * > mean(y[ind])) > > > El 16 de abril de 2010 12:44, José Luis Cañadas > <canadasreche@gmail.com>escribió: > > > Buenas. > > > > Tengo los dos siguientes valores de las variables x e y de una muestra de > > tamaño 6 > > > > x<-c(3,2,6,5,4,6) > > y<-c(6,2,2,1,3,3) > > > > Y calculo el estimador mean(x) * mean(y) como est<-mean(x)*mean(y) > > > > Mi problema es que ahora quiero calcular este estimador para todas las > > posibles semimuestras de tamaño 3. Es decir, la primera muestra estaría > > constituida por los 3 primeros datos de cada variable. Por ejemplo > > > > muestra 1. (1,2,3) > > muestra 2. (1,2,4) > > muestra 3. (1,2,5) > > muestra 4 (1,2,6) > > muestra 5. (1,3,4) > > > > Así hasta la muestra 10, teniendo en cuenta que las muestras que > contengan > > los mismos elementos sólo la consideramos una vez. > > > > Para la primera muestra puedo hacer > > est.1<-mean(x[1:3])*mean(y[1:3]) > > Para la segunda > > est.2<-mean(x[c(1,2,4)])*mean(y[c(1,2,4)]) > > > > Y así, sucesivamente. Estoy intentando hacerlo de forma que sea > automática, > > he probado con un ciclo for , pero no me sale. > > > > ¿ideas? > > > > > > Gracias > > > > _______________________________________________ > > R-help-es mailing list > > R-help-es@r-project.org > > https://stat.ethz.ch/mailman/listinfo/r-help-es > > > > [[alternative HTML version deleted]] > > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > >[[alternative HTML version deleted]]