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.

Versión 5.1-1 de RcmdrPlugin.UCA liberada

de Manuel Muñoz Márquez -

Se ha liberado la versión 5.1-1 de RcmdrPlugin.UCA que incluye como principal novedad el test de Kolmogorov.Smirnov para la comparación de la distribución de dos muestras.

Se puede instalar usando el gestor de paquetes habitual o ejecutando en R la instrucción

install.packages('RcmdrPlugin.UCA')

Más información en la página del paquete https://knuth.uca.es/RcmdrPlugin.UCA

Muestra aleatoria basada en un modelo de regresión lineal simple

de Joan Fernando Lamprea Huertas -

Hola, excelente inicio de semana. 

Tengo una pequeña cuestión con el siguiente ejercicio: 

Para el modelo de regresión lineal simple y = 50 + 10x + e, donde e tiene NID (0, 16), suponer que se usan n = 20 pares de observaciones para ajustar este modelo. Generar 500 muestras de 20 observaciones, tomando una observación para cada valor de x = 1, 1.5, 2, ... , 10 para cada muestra.

a. Para cada muestra, calcular los estimados de la pendiente y la ordenada al origen por mínimos cuadrados. Trazar histogramas de los valores muestrales de B1 y B0 

b. Para cada muestra, calcular un estimado de E(y | x = 5). Trazar un histograma de los estimados obtenidos. Comentar la forma del histograma.

c. Determinar un intervalo de confianza de 95% para la pendiente en cada muestra. ¿Cuántos de los intervalos contienen el valor verdadero B1 = 10? ¿Es lo que se esperaba?

d. Para cada estimado de E(y | x = 5) en la parte b, calcular el intervalo de confianza de 95%. ¿Cuántos de esos intervalos contienen el valor verdadero de E(y | x = 5) = 100? ¿Es lo que se esperaba?

Sucede que he intentado generar unas muestras aleatorias; sin embargo, no obedecen la condición de que esas observaciones ajustan el modelo dado anteriormente. La verdad, no sé muy bien cómo generar dichas muestras y que, las 500, se ajusten al modelo. 

Realmente, agradecería la ayuda que me puedan brindar y espero que tengan un inicio de semana productivo. 

Saludos. 

Crear nuevos elementos cambiando ciertas letras del código

de Joan Fernando Lamprea Huertas -

Hola, buen día. 
Tengo una pequeña duda: deseo hacer una función que genere nuevos valores, cambiando ciertos caracteres de la misma; es decir, en el siguiente código:

library(combinat)
hoteles=c("A","B","C","D","E")
choose(5,3)
muestrasMAS=t(as.matrix(combn(hoteles,3)))
dim(muestrasMAS)
muestrasMAS
probmuestra<-c(6/90,7/90,8/90,8/90,9/90,10/90,9/90,10/90,11/90,12/90)
I(muestrasMAS=="A")
IA=rowSums(I(muestrasMAS=="A"))
IA
IB=rowSums(I(muestrasMAS=="B"))
IC=rowSums(I(muestrasMAS=="C"))
ID=rowSums(I(muestrasMAS=="D"))
IE=rowSums(I(muestrasMAS=="E"))
muestrasMAS=data.frame(muestrasMAS,probmuestra,IA,IB,IC,ID,IE)
muestrasMAS
muestrasMAS$ns=rowSums(muestrasMAS[,5:9])
muestrasMAS
attach(muestrasMAS)
piA=sum(IA*probmuestra)
piA
var=piA*(1-piA)*(9/10)
var
piAB=sum(IA*IB*probmuestra)

 

Quiero cambiar las letras "A" y "B" de "piAB", e "IA" e "IB", en la última línea, por las que están en el vector "hoteles", sin repetición, para un total de 10 sentencias (piAC=sum(IA*IC*probmuestra), piAD=sum(IA*ID*probmuestra), piAE=sum(IA*IE*probmuestra), piBC, etc) ejecutables. Intenté el siguiente código:

for (i in hoteles){
 for (j in hoteles){
  if (i!=j)
  print(pi[i][j]\=sum(I[i]*I[j]*probmuestra))
 }
}

Pero me arroja el siguiente error:


Error: unexpected '=' in:
" if (i!=j)
print(pi[i][j]="
> }
Error: unexpected '}' in " }"
> }
Error: unexpected '}' in "}

 

Me gustaría que, por favor, me indicaran que está mal como tal con el código que propuse y, si conocen una alternativa para lo que quiero intentar, les agradecería bastante que me la compartieran.

Quedo atento a sus comentarios. 

Saludos.

Generar 1000 simulaciones de una muestra aleatoria de tamaño n, con distribución Bernoulli de parámetro p

de Joan Fernando Lamprea Huertas -

Buen día, comunidad. 
Tengo el siguiente dilema:

a. Para cada valor de p entre 0.05,0.1,0.15,...,0.85,0.9,0.95:
   b. Para cada tamaño de muestra n entre 5, 10, 50, 100, 200, 500,
   1000:

       c. Repetir este procedimiento m=1000 veces:

       c1. Genere una muestra aleatoria de tamaño n de
       una Bernoulli con parámetro p.

Para el cual, le estoy dando la siguiente solución: 

#n=5,p=0.05

cincodecinco <- matrix(NA, 1000, 5)
#Y en cada paso del bucle reemplazar la columna que corresponda:

for(i in 1:5) {
 print(rbernoulli(n = 5, p = 0.05))
 b_cincodecinco <- print(rbernoulli(n = 5, p = 0.05))
 cincodecinco[, i] <- b_cincodecinco
}

#n=10,p=0.05
diezdecinco <- matrix(NA, 1000, 10)
#Y en cada paso del bucle reemplazar la columna que corresponda:

for(i in 1:10) {
 print(rbernoulli(n = 10, p = 0.05))
 b_diezdecinco <- print(rbernoulli(n = 10, p = 0.05))
 diezdecinco[, i] <- b_diezdecinco
}

...

y así por cada uno de los valores de p y de n. 

Soy muy novato en el mudo de R y quería saber si hay alguna forma de generar esas mil muestras, con los respectivos valores de p y n, sin necesidad de reemplazar dichos valores en cada código; algo así como un código que me genera las matrices correspondientes a cada muestra, para un total de mil filas, por cada una de las alternativas, sin tener que hacer el proceso de "copia y pega". En caso de que exista, por favor, ¿me indicaran cómo es la estructura del mismo? En caso de que no, por favor, ¿me pueden notificar? 

Les agradecería mucho la ayuda que me pudieran brindar. 

Saludos. 
 

 

Problemas con R

de Emmanuel Santos May -
Buen día compañeros, tengo un problema con el programa R, soy nuevo en estos programas, quisiera saber si me pueden ayudar. Utilizo una mac con sistema mountain lion. Instale el programa R y quize jalar el programa Rcmdr, pero me aparece la siguiente informacion desde que inicio el programa:


Durante la inicializaci'on - Mensajes de aviso perdidos

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_PAPER failed, using "C" 

[R.app GUI 1.52 (6188) i386-apple-darwin9.8.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.

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


Espero me puedan ayudar!!!!

Saludos!

Abrir R-commander desde R

de Alba Gasca Vazquez -

Buenas noches,

hasta hace unos días no tenia ningun problema con R-commander, pero no se que toqué que ahora cada vez que intento abrirlo desde R me aparece el siguiente mensaje:

Loading required package: splines
Loading required package: RcmdrMisc
Loading required package: car
Loading required package: sandwich
Error: package ‘sandwich’ could not be loaded
Además: Mensajes de aviso perdidos
In library(pkg, character.only = TRUE, logical.return = TRUE, lib.loc = lib.loc) :
there is no package called ‘sandwich’
>

Alguien sabe como puedo arreglarlo? El domingo tengo que entregar un trabajo y lo necesito urgentemente!!!!!!!

Muchas gracias,

Alba.

Problema en la funcion accuracy de R

de Lucas de Andres -

Cuando intento compara el pronostico de mi modelo con una serie de test con el siguiente código  accuracy(fc3train2, st2)

 

me aparece el siguiente error: Error: `estimate` is missing and must be supplied.

 

fc3train2 es una avariable que almacena los pronosticos realizados por el modelo y st2 es la variable de tipo tsibble que almacena los datos reales.

 

 

 

alguien me puede ayudar??

 

Gracias!

Test Friedman

de Gloritzel Vargas -

Buenas tardes a todos (as),

 

estoy intentando realizar este test pero me da error y erros.

 

 

Mi data posee 7 plantas, 3 tratamientos y el total de hormigas. Necesito comparar total de hormigas por tratamientos 

 

#Base de datos
mar

#cOLUMNAS FILTRADAS

hormigas <- select(data, Total_hormigas_mem) %>% unlist

tratamientos <- select(data, tratamiento) %>% unlist

 

 

friedman.test(hormigas, tratamientos)

 

> friedman.test(hormigas, tratamientos)
Error in friedman.test.default(hormigas, tratamientos) :
argument "blocks" is missing, with no default
>

 

 

lo intente con 

friedman.test(cbind(Total_hormigas_mem,tratamiento))

Error in cbind(Total_hormigas_mem, tratamiento) :
object 'Total_hormigas_mem' not found

 

 

Saludos