Foro de discusión y soporte para usuarios de R

Un foro abierto a todos los temas relacionados con R que quiera.
Nota: Una url estable a este foro es https://knuth.uca.es/R-foro.

Optimización - solnp

de Ronald Miranda -

Que tal?

Tengo los siguientes datos:

>newdatos

   Departamento Actividad   area elasticidad Ingresoxha    precio    costos  produccion lambda1       OP1       ALPHA1    LAMBDA2i1

1             1         1   5862   0.3052655   249.6103 3663.0000  553.3957    399.4582   72.02 0.1594879 1.001184e+02  -585.605890

2             1         2   3790   0.3053532   607.1605  271.1768  483.4507   8485.7499  185.61 0.1559047 2.348355e+03  -574.401512

3             1         3  12186   0.3054410  2226.0968  246.0000 1414.0000 110273.2320   75.53 0.1557844 2.546577e+04 -1142.738933

4             1         4   3442   0.3055287   873.5717 4558.9336   92.0000    659.5476   36.30 0.1555019 1.858940e+02     7.542038

5             1         5 107459   0.3056165   142.6272 1558.0083   93.0000   9837.2869   36.30 0.8981847 2.977762e-01    -1.194445

6             1         6   1459   0.3057043  1080.0976  410.0000  926.2996   3843.5669   81.39 0.1550390 1.242175e+03  -840.232421

7             2         1  15084   0.3057920   249.6103 3663.0000  553.3957   1027.8792   72.02 0.2388242 1.032788e+02  -565.802721

8             2         2   1031   0.3058798   433.6256  227.7168  498.3463   1963.2633  185.61 0.2344137 3.860374e+02  -582.308481

9             2         3   6297   0.3059675  2226.0968  246.0000 1414.0000  56982.6475   75.53 0.2344997 7.325660e+03  -967.510900

10            2         4  80409   0.3060553   873.5717 4558.9336   92.0000  15407.7760   36.30 0.2414303 1.007978e+03    82.606664

11            2         5 255026   0.3061430   142.5132 1556.7632   93.0000  23346.2431   36.30 0.8218663 8.408677e-01   -12.173206

12            2         6    906   0.3062308  1080.0976  410.0000  575.2073   2386.7523   81.39 0.2345015 4.834553e+02  -403.312795

#########################

#Y me genera un problema de este tipo 

In .safefunx(tmpv, .solnp_fun, .env, ...) : 



solnp-->warning: NaN detected in function call...check your function

#cuando aplico:

MP<-function(newdatos1,j){

  filtronewdatos<-newdatos1[newdatos1[,1]==j,]

  filtronewdatos

    # Re-nombro las variables

  dptonew<-filtronewdatos[,1]      # j departamentos

  actnew<-filtronewdatos[,2]       # i actividades 

  xnew<-filtronewdatos[,3]         # superficie en ha de la actividad i

  etanew<-filtronewdatos[,4]       # elasticidad de oferta (exógena)

  ingresosnew<-filtronewdatos[,5]  # revenue<-price*output  #output (kg) <-rendimiento (kg/ha) * x (ha)

  pricenew<-filtronewdatos[,6]     # precio internacional

  cinew<-filtronewdatos[,7]        # costo unitario por ha

  qnew<-filtronewdatos[,8]         # producción    

  lambda1new<-filtronewdatos[,9]   # Precio sombra de la tierra = precio de la renta de la tierra por ha

  deltas<-filtronewdatos[,10] 

  alpha<-filtronewdatos[,11] 

  lambda2<-filtronewdatos[,12] 

    lamb1i<-lambda1new                # precio sombra - precio de arrendamiento de la tierra

   

  np1<-cbind(pricenew,alpha,deltas,cinew,lambda2,lamb1i,xnew)

    #Función objetivo

  prof1<-function(area0,np=np1){

    areaX<-area0

    -(sum(np1[,1]*np1[,2]*(areaX^np1[,3])-(np1[,4]+np1[,5])*areaX))

   }

    #Restricción

  eqn1<-function(area0,L=sum(np1[,7])){(sum(area0)-L)}

    par0<-c(np1[,7]-np1[,7]+100) # valor de los parámetros iniciales para comenzar a optimizar

    Mx1<-solnp(par0,prof1,eqfun = eqn1,eqB = c(0),LB=NULL,UB=NULL,control = list(maxit=1000,tol=1e-10))

  return(Mx1$pars)

}

###########################################################################################

# Aplicación de la función "MP" de maximización del problema

 land<-list()

for(j in 1:2){

  land[[j]]<-MP(newdatos,j) # utilizo la base "newdatos" y j es la región que varia 

 }

land  

# me determina los valores de land pero no son los originales que debería replicar además de tirarme ese error previamente señalado

No puedo utilizar comandar en mi mac

de Marco Antonio Otárola Rojas -

Hola a todos y todas

Tengo un problema para usar R en mi computador mac y no puedo accesar a Rcomnder por que me indica error y me envía el siguiente mensaje y parece ser que no me esta cargando los paquetes:

Durante la inicializaci'on - Warning messages:

1: Setting LC_CTYPE failed, using "C" 

2: Setting LC_COLLATE failed, using "C" 

3: Setting LC_TIME failed, using "C" 

4: Setting LC_MESSAGES failed, using "C" 

5: Setting LC_MONETARY failed, using "C" 

[R.app GUI 1.66 (7060) x86_64-apple-darwin13.4.0]


WARNING: You're using a non-UTF8 locale, therefore only ASCII characters will work.

Please read R for Mac OS X FAQ (see Help) section 9 and adjust your system preferences accordingly.

[Workspace restored from /Users/marcootarola/.RData]

[History restored from /Users/marcootarola/.Rapp.history]

Gracias por cualquier ayuda que puedan darme.

Publicada la versión 2.0-5 del paquete RcmdrPlugin.UCA

de Manuel Muñoz Márquez -
Se ha publicado la versión 2.0-5 del paquete RcmdrPlugin.UCA.

El registro de cambios para la versión 2 es:

Versión 2.0-5 2016-01-12
  • Corrección de error menor
Versión 2.0-4 2015-06-10
  • Corrección de error
Versión 2.0-3 2015-06-10
  • La opción "Descartar niveles sin uso" ha sido introducida en Rcmdr y por tanto suprimida del paquete
  • Se han añadido dos opciones para realizar un test de aleatoriedad al menú de Rcmdr. Una para variables numéricas y otra para factores con dos niveles.

Ayuda con un codigo de R!

de Marta Ramirez Sanches -

Hola! Necesito ayuda con codigo de R!!

Tengo el siguiente codigo:


 j<-c(unique(Pfin))
 n<-nrow(dades)
 n1<-length(j)
 s<-matrix()
 for (i in 1:n){
for (j in 1:n1){
 s<-matrix(Tdifn[Pfin==j])
}}

Donde Tdfin es una columna con un numero que corresponde a un tiempo y Pfin es un indicador que tiene unicamente dos valores (2 y 3). Lo que necesitaría obtener es el tiempo para cada valor en columnas diferentes, y de forma automàtica (es decir, que si en algún momento se introdujeran más valores a Pfin, ejecutándo el código aparecieran en otra columna nueva). Si alguien pudiera ayudarme!!!

ponderar

de dionisio grullon -
Como ponderar datos en una muestra de una encuesta, en R....En SPSS cuando uno entra a datos, te da la opcion de ponderar los datos. Como se hace en Rcmdr, tengo varios dias navegando y consulte la ayuda de R, pero no consigo la informacion

Dionisio

ejecutar scripts sin abrirlos

de Alba Victoria Olivares Nadal -
Buenas,

Tengo un problemilla que no consigo resolver: tengo un script (llamémosle script1) en el que llamo a ciertas funciones (bastante largas) definidas en otros scripts (llamémosles scripts_auxiliares). Antes de poder ejecturar el script1, debo abrir y ejecutar de uno en uno todos los scripts_auxiliares, cosa que puede dar lugar a errores y además conlleva una pérdida de tiempo considerable.

Me gustaría saber si hay alguna manera de cargar/ejecutar los scripts_auxiliares sin necesidad de abrirlos y ejecutarlos manualmente de uno en uno, si están en la misma carpeta que script1 y establezco como directorio de R esa carpeta (he probado con source, sink...etc, pero creo que no valen para esto)

Agradezco cualquier sugerencia :). Gracias

Alba

Ayuda con Pronosticos

de Brenda Perez -

Hola a todos!

Tengo una duda, realizando mi pronostico de una serie de tiempo me doy cuenta que los resultados se cambian de escala, es decir mis datos originales son en un rango de 150,000 a 300,000 pero los resultados me los da en uno de -100 a 50, ¿como puedo cambiar la escala para ver los pronósticos reales? Muchas gracias.

Ayuda con Funciones

de Jose Antonio -

Hola estoy empezando a usar el programa R, y necesito ayuda con este ejercicio que no consigo resolver. Espero que puedan ayudarme.

Crear una función que permita ajustar los siguientes modelos de regresión simple:

Lineal Y= a + b*X

Exponencial Y=exp(a+b*X)

Potencial Y=a*X^b

En la creación de la función tendremos en cuenta lo siguiente:

- La función tendrá tres argumentos: los vectores con los datos de la variable de respuesta (y) y la explicativa (x) y el tipo de regresión a realizar (tipo), de este modo el usuario ejecutará la función pasando los datos para la regresión y el tipo con valor 1, 2 ó 3 en el caso en que se quiera la regresión lineal, exponencial o potencial, respectivamente. Por defecto el argumento “tipo” se definirá como 1.

- Se controlará que los vectores x e y tengan la misma longitud y los cálculos se realizarán eliminado los posibles datos faltantes (NA) en los vectores de forma adecuada.

- Para ajustar el modelo lineal se utilizará la función lm().

- Para ajustar los otros dos modelos bastará con linealizar el modelo tomando logaritmos y después se utilizará la función lm(). Así, para el modelo exponencial consideramos el modelo transformado log(Y) = a + b* X, con lo cual podremos obtener la estimación de los parámetros “a” y “b” mediante lm() pero considerando como vectores de datos “x” y “log(y)”. Para el modelo potencial consideraremos la transformación log(Y)= log(a)+b*log(X) de modo que el logaritmo del parámetro ”a” y el parámetro “b” los estimaremos aplicando la función lm() a los datos log(x) y log(y).

- La función devolverá una lista con los valores estimados de “a” y “b” y creará un gráfico de dispersión de los datos superponiendo la curva correspondiente al modelo ajustado.

- Para probar la función considerar los datos siguientes:

x<- c(0.2,0.1,0.7,0.8,1.1,1.3,2.4,2.9,3.5,NA,3.9,3.5)

y<-c(25.3,26.7,31.4,33.5,39.7,40.6,45.5,56.8,75.4,80.1,97.2,NA)

Interacciones en ANOVAS de 2 factores

de Luis Santos -

Estoy trabajando con las interacciones en ANOVAS de dos factores y tengo varias dudas.

 

¿Cuántas comparaciones se dan en este ejemplo (hay dos factores, el factor tests, que tiene tres niveles, pre, post y re, y el factor group, que tiene dos niveles, EG y CG) las cuales se deben tener en cuenta para aplicar el test de Bonferroni, es decir, para “penalizar el p-valor” –en caso de que la interacción fuese significativa-? ¿cómo puedo saber donde están exactamente las interacciones (al igual que se aplica el test de Tukey HSD para determinar exactamente, donde se encuentran las diferencias entre los diferentes niveles de los factores, ¿qué test o procedimiento se debe utilizar para determinar dónde se encuentran las interacciones?)?

 

 

Espero que se entienda mi pregunta.

 

Muchas gracias

 

 

> EG<-c(7,4,2,4,110,116,115,116,97,94,92,95) 

> CG<-c(6,4,3,6,8,6,4,3,8,7,6,5)

> lintmass<-c(EG,CG)

> tests<-gl(3,1,4*3*2, labels=c("pre","post","re"))

> groups<-gl(2,3*4,2*3*4, labels=c("experimental", "control"))

> anova(lm(lintmass~tests*groups))

Analysis of Variance Table

 

Response: lintmass

                                               Df         Sum Sq         Mean Sq        F value      Pr(>F)   

tests                           2         751.8             375.9                         0.2598        0.7740511   

groups                       1         25741.5         25741.5         17.7920 0.0005171 ***

tests:groups                          2         802.8             401.4                         0.2774           0.7609165   

Residuals                   18       26042.5         1446.8                     

---

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

 

> lm.out=lm(lintmass~tests+groups+tests:groups)

> summary(lm.out)

 

Call:

lm(formula = lintmass ~ tests + groups + tests:groups)

 

Residuals:

    Min      1Q  Median      3Q     Max

-76.500  -1.875   0.625  18.000  60.000

 

 

Coefficients:

                                                          Estimate        Std. Error       t value            Pr(>|t|)  

(Intercept)                                       55.00             19.02             2.892                         0.00971 **

testspost                               25.50             26.90             0.948                         0.35564  

testsre                                   22.50             26.90             0.837                         0.41381  

groupscontrol                       -49.25            26.90                         -1.831            0.08369 .

testspost:groupscontrol      -26.00            38.04                         -0.684            0.50297  

testsre:groupscontrol          -22.75            38.04                         -0.598            0.55722  

---

Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

 

Residual standard error: 38.04 on 18 degrees of freedom

Multiple R-squared:  0.5118,         Adjusted R-squared:  0.3761

F-statistic: 3.773 on 5 and 18 DF,  p-value: 0.01636

 


DUDAS GENERALES

de FRANKY GARCIA LOPEZ -

ME GUSTARIA SABER ALGUNAS CUESTIONES BÁSICAS DE R COMMANDER:


-Cómo se hace para saber el intervalo que contiene el 30% inferior de una distribución de una variable?


-Y para la homogeneidad de una variable respecto a otra?


-El error cuadrático medio  como se mira en r?


y la fiabilidad?

y la longitud del diagrama de cajas?

y el residuo?