Estaré mirando los paquetes. Muchas gracias.
El 26/4/2015 5:00, <r-help-es-request en r-project.org> escribió:
> Envíe los mensajes para la lista R-help-es a
> r-help-es en r-project.org
>
> Para subscribirse o anular su subscripción a través de la WEB
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
> O por correo electrónico, enviando un mensaje con el texto "help"
en
> el asunto (subject) o en el cuerpo a:
> r-help-es-request en r-project.org
>
> Puede contactar con el responsable de la lista escribiendo a:
> r-help-es-owner en r-project.org
>
> Si responde a algún contenido de este mensaje, por favor, edite la
> linea del asunto (subject) para que el texto sea mas especifico que:
> "Re: Contents of R-help-es digest...". Además, por favor, incluya
en
> la respuesta sólo aquellas partes del mensaje a las que está
> respondiendo.
>
>
> Asuntos del día:
>
> 1. Paquetes en R de programación lineal con muchas restricciones
> (Alex J. Zambrano)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Sat, 25 Apr 2015 06:22:58 -0500
> From: "Alex J. Zambrano" <alexjzc en gmail.com>
> To: r-help-es en r-project.org
> Subject: [R-es] Paquetes en R de programación lineal con muchas
> restricciones
> Message-ID:
> <CAJS8D_UaXUn7V4OwK60_0DDcNuVvk> PH2kVTC2cf+LdNrO9+cA en
mail.gmail.com>
> Content-Type: text/plain; charset="UTF-8"
>
> Hola a tod en s.
>
> Quisiera saber si conocen algún paquete además de boot que permita realizar
> programación lineal con muchas restricciones. A continuación escribo el
> codigo que estoy utilizando
>
> rm(list = ls())
>
> #Función para generar las variables independientes
> gen<-function(n,a=0,b=1){
> X<-matrix(0,ncol=3,nrow=n)
> #Muestras distribuidas entre -1 y 1 cuyo radio sea menor que 1
> for(i in 1:n){
> m<-0
> while(m==0){
> U<-runif(3,min=-1,max=1)
> R<-t(U)%*%U
> if(R<=1){
> X[i,]<-U/sqrt(R)
> m<-1
> }
> }
> }
> #Transformación de muestras según la matriz correlación
> V<-diag(rep(sqrt(1/3),3))
> C=matrix(c(1,0.03,-0.06,0.03,1,-0.28,-0.06,-0.28,1),ncol=3)#Matriz de
> correlación
> S<-V%*%C%*%V
> B<-chol(solve(S))
> Z<-X%*%t(solve(B))
> #Transformación de muestras para rango 0 y 1
> Y<-(Z-min(Z))/(max(Z)-min(Z))
> #Transformación de muestras entre a y b
> Y<-(b-a)*Y+a
> return(Y)
> }
>
> set.seed(25042015)
>
> #Prueba
> X<-gen(10000,a=-10,b=10)
> summary(X)
> cor(X)
>
> #Caso laplace
> library(VGAM)#Se debe cargar está librería independiente del boot (genera
> problemas)
> X<-gen(20,-10,10)
> e<-rlaplace(20,location=0,scale=1)
> Yest<-16+4*X[,1]+X[,2]+0.25*X[,3] # Valores a estimar 4, 1, 0.25
> Y<-Yest+e
>
> n<-length(Y)
> p<-dim(X)[2]
> r<-n*(n-1)/2
> H<-cbind(rep(1,n-1),-diag(1,n-1))
> for(i in 1:(n-2)){
> h<-cbind(matrix(0,n-1-i,i),rep(1,n-1-i),-diag(1,n-1-i))
> H<-rbind(H,h)
> }
>
> library(boot) # Librería de programación
>
> #MINSADBED
> a<-c(rep(0,p),rep(0,n),rep(1,r),rep(1,r))
> A31<-cbind(X,diag(1,n),matrix(0,n,r),matrix(0,n,r))
> A32<-cbind(matrix(0,r,p),H,-diag(r),diag(r))
> A3<-rbind(A31,A32)
> b3<-c(Y,matrix(0,r,1))
>
>
> simplex(a,A3=A3,b3=b3)
>
>
> #MINSADBAD
> a<-c(rep(0,p),rep(0,n),rep(1,r),rep(1,r))
> A31<-cbind(X,diag(1,n),matrix(0,n,r),matrix(0,n,r))
> A32<-cbind(-X,diag(1,n),matrix(0,n,r),matrix(0,n,r))
> A33<-cbind(matrix(0,r,p),H,diag(r),-diag(r))
> A3<-rbind(A31,A32,A33)
> b3<-c(Y,-Y,matrix(0,r,1))
>
> simplex(a,A3=A3,b3=b3)
>
>
> La idea es estimar unos parámetros de un modelo de regresión, utilizando
> métodos de programación. La matriz X tiene cierta estructura de
> correlación, y los errores en el modelo son no normales.
>
> Al realizar la solución por MINSADBED con la función simplex del paquete
> boot, me arroja las estimaciones de Beta_1, Beta_2 y Beta_3 se encuentran
> en la solución optima de los primeros tres valores. Pero noten que se tiene
> una matriz de restricciones demasiado grande.
>
> Al realizar la solución por MINSADBAD las estimaciones de Beta_1, Beta_2 y
> Beta_3 no se logran obtener debido a que es una solución no factible.
>
> Al realizar está misma en paquete de programación winqsb la solución si
> logra obtener, pero construir esa matriz de restricciones es demasiado
> engorroso y más aún si de desea realizar un proceso de simulación.
>
> Agradezco me puedan ayudar.
>
> Saludos.
>
> --
> Alex Johann Zambrano Carbonell
> http://experienceinstatistics.blogspot.com/
>
> [[alternative HTML version deleted]]
>
>
>
> ------------------------------
>
> Subject: Pié de página del digest
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
> ------------------------------
>
> Fin de Resumen de R-help-es, Vol 74, Envío 40
> *********************************************
>
[[alternative HTML version deleted]]