Módulo 4 - Dudas

Pregunte en el foro todas las dudas de las que crea que sus compañeros puedan beneficiarse

Imagen de jordi.cortes

Hola,

Os informamos que ya está disponible todo el material referente al capítulo 11 (apuntes, ejercicios y tests de e-status), así como la guía docente actualizada.

Saludos

Hola,

Ma llamo Marta.
estoy encallada en el problema "análisi d esupervivencia" del capítulo 11. No sé como utilizar R para realizar los cálculos.
si no me equivoco es como el ejemplo d eR de la página 22 pero me pierdo en la "programación " de R ¿me pueden ayudar.?
guardo los datos y después, ¿tengo que escribir todo?

gracias

marta

Hola Marta!

Entiendo que tienes los datos en R bien leídos (es decir, un objeto data.frame con 3 variables: Grupo, Tiempo y Censura).

Una vez los tienes, tienes que basarte en los ejercicios de R que aparecen en las páginas 22, 25-26 y 34. Si ejecutas las mismas instrucciones, cambiando los nombres de variables por los de este ejercicio, todo debería salir bien.

En todo caso, para poder saber mejor qué es lo que no te sale, ¿podrías indicarnos cuál es la instrucción que te falla y el error que te da?

Gracias!

Laura.

Hola!

A mi tampoco me sale el ejercicio de supervivencia.
No sé como calcular las medianas de tratamiento y control por separado.
No me deja instalar el paquete Survfit.

LLevo una hora. jejeje.

Imagen de marta.vilaro

Buenas tardes,

Marta y Alexandre, lo primero que debéis hacer es instalar el paquete survival no Survfit y a continuación cargarlo. Las instrucciones para ello son:
install.packages('survival')
library(survival)
A continuación, como se muestra en la página 22 de los apuntes del tema, debéis crear un objeto de supervivencia, en el caso del ejemplo se llama ColoSurv.
Con estas pistas deberíais poder continuar con el ejercicio y encontrar las respuestas correctas.
Cuando lo probéis por favor, decidme si habéis conseguido hacer el ejercicio o necesitáis alguna ayuda más.
Ánimo!!

Marta

Hola ! tengo un problema en el ejercicio de efecto y cumplimiento de protocolo:
al copiar la instruccion en R me sale esto:
datos <- read.delim("clipboard", sep = "")
Warning message:
In read.table(file = file, header = header, sep = sep, quote = quote, :
incomplete final line found by readTableHeader on 'clipboard'

y ya no puedo hacer mas...¿¿que hago mal??graciaas

Imagen de hector.rufino

Hola,

Cuando en el read.table se indica "clipboard" se hace referencia a que se quiere leer en R unos datos que previamente hemos copiado en el portapapeles.

El error que te da R es porque no tienes los datos que quieres leer copiados.

Los pasos a seguir son los siguientes:

1) copias la instrucción datos <- read.delim("clipboard", sep = "") en el script, pero no lo ejecutas aún.
2) Seleccionas los datos disponibles en el problema de e-status.
3) Una vez copiados, ejecutas la instrucción anterior.

si sigues estos pasos no tendría que darte más problemas.

Si no consigues revolverlo, indícanoslo y te ayudaremos.

Atentamente,

Hector.

hola , lo he intentado mil veces, parece que los datos del problema no se me copian..ya no se que hacer..no hay otra forma?

esto es lo que me aparece:

Error: unexpected symbol in "72 Treatment"
> 73 Treatment Treatment 7
Error: unexpected symbol in "73 Treatment"
> 74 Treatment Treatment 11
Error: unexpected symbol in "74 Treatment"
> datos <- read.delim("clipboard", sep = "")
> datos <- read.delim("clipboard", sep = "")
> datos <- read.delim("clipboard", sep = "")

le doy a copiar con el boton derecho y luego intento ejecutar, pero nada de nada

Las primeras líneas muestran que se está mandando al intérprete de comandos (el prompt que espera órdenes) una fila de datos (varias veces, en realidad), y no una instrucción a ejecutar. No domino R-Studio (me muevo mejor con R pelado), pero yo diría que has hecho Ctrl-V en la consola en el momento que tenías los datos en el clipboard. Pero puedo estar equivocado. Comprueba que tienes los datos correctos haciendo Ctrl-V en un notepad, por ejemplo, luego ejecuta la instrucción read.delim y comprueba que has cargado bien el dataframe haciendo, por ejemplo "head(datos)": te mostrará los primeros.

tambien en el problema de analisis de supervivencia tengo problemillas, esto es lo que me sale en R:
Installing package into ‘C:/Users/Lara/Documents/R/win-library/3.0’
(as ‘lib’ is unspecified)
trying URL 'http://cran.rstudio.com/bin/windows/contrib/3.0/survival_2.37-7.zip'
Content type 'application/zip' length 4570668 bytes (4.4 Mb)
opened URL
downloaded 4.4 Mb

package ‘survival’ successfully unpacked and MD5 sums checked

The downloaded binary packages are in
C:\Users\Lara\AppData\Local\Temp\RtmpcTqfYB\downloaded_packages
> library (survival)
Loading required package: splines
> ECJ<-read.table ('ECJakob.txt',header=TRUE,sep='\ t')
Error in file(file, "rt") : cannot open the connection
In addition: Warning message:
In file(file, "rt") :
cannot open file 'ECJakob.txt': No such file or directory

Imagen de hector.rufino

Hola,

El paquete "survival" lo instala bien y lo carga bien a través del library.

El problema parece estar en el directorio donde están guardados los datos. Recuerda que el archivo que quieres leer con R tiene que estar en el mismo directorio con el que esta trabajando en ese momento R.

Para cambiar el directorio y ponerlo donde tienes el archivo, de forma que lo pueda leer adecuadamente, tienes que seguir los siguientes pasos:

1) Clicar en session
2) Ponerse encima de Set Working Directoy
3) Apretar en Choose Directory...
4) Seleccionar el directorio donde esta el archivo que se quiere leer

Si después de estos pasos ejecutas el read.table no tendría que darte problemas.

Si no consigues resolver el problema no dudes en comunicárnoslo,

Atentamente,

Hector.

en el analisis de supervivencia me pasa lo mismo, no se copian los datos...

En principio las instrucciones incluidas en el mismo problema deberían funcionar sin incidentes. Revisa cuidadosamente todos los pasos:
1. Abra RStudio
2. Abra un nuevo script: File -> New -> R Script
3. Copie la siguiente instrucción en el script: datos <- read.delim("clipboard", sep = "") # No la ejecute, sólo cópiela
(de hecho, sin poner el parámetro sep funciona igual)
4. Haga clic en el enlace de abajo: copiar datos para pegar en otro programa
5. En Column divider seleccione: R (blank space)
(podría estar en otro idioma, "Separador de columnas", pero se localiza fácilmente)
6. Seleccione todos los datos, incluidos los nombres de las variables
(cuidado, ¡no seleccionar ni más ni menos!)
7. Clique en el botón derecho del ratón y seleccione copiar
8. Finalmente, vuelva a Rstudio y ejecute la instrucción poniendo el cursor encima de la misma y apretando (Ctrl + Enter)

Puede ser útil pegar el contenido en otro lugar para comprobar qué es lo que se ha copiado exactamente en el clipboard.

Espero haber ayudado.

JA

Por casualidad estás trabajando con un Mac?

Saludos,

Àngel

Hola! no trabajo con mac,solo microsoft normal. he probado lo de pegar en word lo que he copiado y lo copio bien, todos los datos del problema que previamente he ordenado con el column divider, pero en R cd voy a ejecutar la instruccion, no ocurre absolutamente nada:

> datos <- read.delim("clipboard", sep = "")
> datos <- read.delim("clipboard", sep = "")
> datos <- read.delim("clipboard", sep = "")

no se...no puedo hacer esos dos problemas..

Si aún no has podido solucionar el problema, podrías copiar los datos en una hoja de texto tipo notepad en formato .txt. Éste archivo deberías guardarlo en el espacio de trabajo de R (Working Directory).

Para leer los datos lo harías de la siguiente manera:

datos<-read.table('nombre_datos.txt', header=T)

En 'nombre_datos.txt' debes introducir el nombre del archivo entre comillas. La opción header=T le está diciendo a R que la primera fila la interprete cómo los nombres de las variables.

Te preguntaba lo de Mac porque a los usuarios de Mac no nos funciona la función read.delim leyendo desde el portapapeles. En éste caso yo suelo copiar los datos en un archivo de texto o en un excel y cargarlos.

Salutaciones,

Àngel

Es un comentario tonto, posiblemente. Pero he de hacer notar que, en efecto, después de ejecutar la instrucción read.delim, no ocurre absolutamente nada... visible. Pero los datos se cargan, como puedes comprobar mostrando las primeras filas:
> head(datos)

Simplemente para descartar esta posibilidad.

Hola otra vez! voy superando poco a poco los ejercicios con vuestra ayuda...aunque con esfuerzo!! hoy estoy haciendo el ejercicio del modulo 4 "cuantos pacientes".
el primer punto bien, ya que he calculado el sumatorio de ambas varianzas y me da ok
en el punto 2, empiezan los problemas: he usado la fórmula del calculo de n para la comparacion de medias de la página 10 de los apuntes, pero sumando las desviaciones intra y entre, osea :
2X (desv intra+desv entre)al cuadradoX(zalpha/s+zbeta)al cuadrado/delta al cuadrado

y no parece que sea correcto.
el punto 3, sinceramente no tengo ni idea como hacerlo
el punto 4, he usado la fórmula de N de la página 16, usando ahora solo la desviacion intra
el punto 5 veo que es como en el ejercicio de celiacos con la sobrestimación de la desviación y no tengo problemas

Siento atosigaros a preguntas.......muchas gracias por todo

Imagen de jordi.cortes

Hola Lara,

Comentas que tienes dudas en las preguntas 2, 3 y 4. Vamos a ir una por una.

Pregunta 2. La fórmula que utilizas es la correcta. Por lo que he visto en tu ejecución, lo que falta es multiplicar por 2 el resultado, ya que la expresión te proporciona la "n" para un solo grupo. Aún así, no te daría bien por muy poco, pero intuyo que es por un problema de redondeo (recuerda que en los problemas de cálculo de tamaño muestral siempre se redondea al alza).

Pregunta 3. Al trabajar con la variable diferencia (post-basal), la variabilidad entre-sujetos desaparece (a cada sujeto le restas su medida basal) pero a costa de duplicar la variablidad intra-sujetos (por tener dos medidas). Por tanto, la varianza total es el doble de la varianza intra. [Disculpas, porque este punto está mejor explicado en el módulo 5 y del capítulo 12, sólo se podía deducir haciendo una analogía con el análisis de datos apareados]

Pregunta 4. Debes utilizar la misma fórmula que en la pregunta 2, pero teniendo en cuenta que ahora la varianza global es la calculada en la pregunta 3.

[En cualquier caso, recuerda coger el máximo número de decimales para hacer los cálculos para evitar problemas con el redondeo]

Ánimo!!

Muchisimas gracias Jordi, ahora si, aunque es verdad lo del redondeo... buen domingo

Por fin parece que en el ejercicio del efecto y cumplimiento de protocolo puedo copiar los datos en R, pero ahora para calcular las medias de tratamiento y de control para hacer el punto 1, no se si no me salen en R porque escribo mal la función o porque realmente no tengo bien los datos copiados...
esto es lo que aparece:
> datos <- read.delim("clipboard", sep = "")
> head(datos)
T_asig T_real RMDQ
1 Control Control 8
2 Control Control 9
3 Control Control 9
4 Control Control 13
5 Control Control 9
6 Control Treatment 6
> datos
T_asig T_real RMDQ
1 Control Control 8
2 Control Control 9
3 Control Control 9
4 Control Control 13
5 Control Control 9
6 Control Treatment 6
7 Control Treatment 14
8 Control Control 17
9 Control Control 8
10 Control Control 19
11 Control Control 16
12 Control Treatment 15
13 Control Control 13
14 Control Control 16
15 Control Control 9
16 Control Treatment 11
17 Control Treatment 8
18 Control Treatment 7
19 Control Control 11
20 Control Treatment 10
21 Control Control 4
22 Control Control 9
23 Control Treatment 7
24 Control Control 8
25 Control Treatment 14
26 Control Control 11
27 Control Control 7
28 Control Control 17
29 Control Control 13
30 Control Control 18
31 Control Control 19
32 Control Control 9
33 Control Control 15
34 Control Control 17
35 Treatment Control 12
36 Treatment Treatment 5
37 Treatment Control 13
38 Treatment Treatment 9
39 Treatment Treatment 8
40 Treatment Treatment 8
41 Treatment Treatment 16
42 Treatment Control 7
43 Treatment Control 10
44 Treatment Treatment 11
45 Treatment Treatment 9
46 Treatment Treatment 10
47 Treatment Treatment 8
48 Treatment Treatment 4
49 Treatment Treatment 15
50 Treatment Treatment 9
51 Treatment Control 9
52 Treatment Treatment 11
53 Treatment Treatment 14
54 Treatment Control 10
55 Treatment Treatment 13
56 Treatment Treatment 7
57 Treatment Treatment 12
58 Treatment Control 19
59 Treatment Treatment 12
60 Treatment Treatment 10
61 Treatment Treatment 8
62 Treatment Treatment 8
63 Treatment Treatment 14
64 Treatment Treatment 7
65 Treatment Treatment 7
66 Treatment Treatment 7
67 Treatment Control 10
68 Treatment Treatment 13
> mean (Treatment)
Error in mean(Treatment) : object 'Treatment' not found
> mean(Treatment treatment)
Error: unexpected symbol in "mean(Treatment treatment"
> mean (datos)
[1] NA
Warning message:
In mean.default(datos) : argument is not numeric or logical: returning NA
> mean(Control)
Error in mean(Control) : object 'Control' not found
> mean (Treatment Control)
Error: unexpected symbol in "mean (Treatment Control"
> mean (TT)
Error in mean(TT) : object 'TT' not found
> mean (Tasig)

he probado llamando a la variable de muchas formas, pero quizas no es lo adecuado....
Gracias

Imagen de jordi.cortes

Hola Lara,

Para acceder a una variable concreta de tus datos, se debe especificar separando la variable del objeto que la contiene con el símbolo "$". En este caso, la única variable numérica es RMDQ. Para obtener la media de esta variable:

> mean(datos$RMDQ)

Si no quieres la media global, sino para un grupo concreto, la puedes obtener con la instrucción tapply con los siguientes parámetros en este orden: 1) la variable sobre la cual quieres aplicar alguna operación (en este caso, datos$RMDQ); 2) la variable categórica por la cual quieres estratificar (datos$T_asig ó datos$T_real); y 3) la operación a aplicar (en esta caso quieres la media, es decir mean). Por ejemplo:

> tapply(datos$RMDQ, datos$T_asig, mean)

Ok Jordi, muchas gracias, ahora si. Podeis echarme un cable tambien con las dudas del problema "cuántos pacientes"?
Muchas gracias, al final voy a lograrlo a tiempo....

Ok Jordi, muchas gracias, ahora si. Podeis echarme un cable tambien con las dudas del problema "cuántos pacientes"?
Muchas gracias, al final voy a lograrlo a tiempo....

Estoy estancada al darle las instrucciones de t.test ya que no sé como poner las variables. He probado de varias formas y nada , me da error. El concepto los tengo claros, me fallan las instrucciones.

No lo he dicho, pero es en el ejercicio del efecto y cumplimiento de protocolo

Imagen de jordi.cortes

Hola Mari Carmen,

Suponiendo que no le hayas cambiado el nombre a las variables y que a tus datos les hayas llamado "datos" al hacer la lectura, entonces la instrucción para la pregunta 1 sería:

t.test(RMDQ~T_asig, data = datos, var.eq = TRUE)

Para el análisis Per Protocol (PP) es un poco más complejo porque te has de crear una nueva variable que indique si el paciente siguió el tratamiento (T_real) al que fue asignado (T_asig).

Ánimo

Gracias Jordi. Ya me ha salido. Lo que más me está costando es darle las instrucciones correctas al programa porque a poco que se me olvide una rayita , o una coma...da error. Por cierto ¿Hay algún error en el URL del ejemplo del tema 11 para supervivencia? No me carga los datos. He instalado y cargado correctamente el paquete survival .

El ejemplo está en la pagina 22 del tema 11 y es de cancer colorrectal

Imagen de jordi.cortes

Hola Mari Carmen,

Tienes razón que R es muy "puñetero" con la sintaxis y es frecuente al inicio cometer muchos errores "tontos" que nos hacen perder mucho tiempo. Sin embargo, con el tiempo, aprenderás a detectarlos y solucionarlos rápidamente. Por si te sirve de ayuda, en el siguiente enlace hay un documento con los errores más frecuentes:
http://www-eio.upc.es/teaching/best/R/ErroresComunesR.pdf

Respecto a los datos de cancer colorrectal habíamos hecho unos cambios en la web que hacía que ya no se pudiese acceder a los datos. Si vuelves a ejecutar la instrucción tal como está en los apuntes, deberías poder cargarlos.

Saludos.

No consigo resolver las preguntas 2 y 3 de este ejercicio...
Para la pregunta 2

decía que para la pregunta 2, como el HRR es constante utilizo la función "ssizeCT.default", pero el resultado que me da es ligeramente inferior a lo que debe dar, y no sé ver qué hago mal...
en la pregunta 3 me pasa lo mismo, utilizo la función "TwoSampleSurvival.Equality" y el resultado que me da es ligeramente inferior a la solución..
os agradecería si me podeis ayudar un poco!

Imagen de jordi.cortes

Hola Marta,

Te proporciono un poco de ayuda en cada una de les preguntas:

1) Pregunta 2. No se puede emplear la función "ssizeCT.default" porque esta proporciona los tamaños muestrales necesarios en el caso de HRR constante pero no el número de eventos en el caso de tasas también constantes. Has de realizar el cálculo usando la primer fórmula que tienes al inicio de la pág. 28 del capítulo 12.

E=4*[za+zb]^2/log(HRR)^2

2) Pregunta 3. No se puede emplear la función "TwoSampleSurvival.Equality" porque sirve únicamente para cuando el tiempo de reclutamiento es NO nulo (como en la pregunta 4). En esta cuestión, se nos dice que imaginemos que "todos los participantes hubieran sido aleatorizados a la vez" por lo que el periodo de reclutamiento es 0 y hemos de hacer el cálculo con la tercera fórmula que aparece en la pág. 28 del capítulo 12:

N=2*E/(2-piA-piB)

Espero haberte ayudado.

He conseguido hacer todos los ejercicios correctamente, pero en la página principal sale una cruz roja todavía...

Imagen de jordi.cortes

Tranquila Marta,

La cruz roja lo único que indica es que el promedio de todas tus ejecuciones está por debajo de 5, pero a efectos prácticos, para la nota final te contará la máxima puntuación que hayas obtenido de cada ejercicio.

Saludos

Tengo un problema importante al hacer el ejercicio de Efecto y cumplimiento del protocolo del módulo 4, tema 11. Consigo hacer todos los pasos, pero cuando se me pide que me sitúe de nuevo en R y, con el cursor sobre la instrucción datos <- read.delim("clipboard", sep = "") pulsar control+enter, me da un mensaje de error que viene a decir que no se pueden cargar los datos (es el que sigue):

> datos <- read.delim("clipboard", sep = "")
Error en file(file, "rt") : no se puede abrir la conexión
Además: Mensajes de aviso perdidos
In file(file, "rt") :
no fue posible abrir el portapapeles o no contiene texto

Por ello me resulta imposible llevar a cabo el ejercicio. Necesito ayuda, por favor. Por cierto, tengo un Mac (por el foro comentaban que en Mac no sirve esta instrucción), y he probado a guardar el archivo en formado .txt en el Workspace de R pero tampoco sé cómo guardarlo...

Buenos días y perdón por el retraso,

Hasta no hace mucho los usuarios de mac no teníamos una alternativa a la instrucción de windows para leer des de ''clipboard''. En la mayoría de casos servirá la siguiente instrucción:

datos<-read.table(pipe('pbpaste'))

La alternativa que puedes usar es importar los datos de estatus a un archivo excel o .txt, guardarlo en el Working Directory y luego leerlos en R.

Si necesitas más ayuda en éste tema puedes escribirme a:

angel.ruiz@estudiant.upc.edu

Saludos,

Àngel

Buenas tardes,
Agradecería que me pudieran ayudar con la resolución del ejercicio <> que corresponde al capitulo 10 del módulo 4.
¿Qué fórmula utilizan para ello? ¿Puedo usar alguna instrucción de R?
El resultado numérico que obtengo difiere muchísimo del que proporcionan ustedes como solución.

Gracias y un saludo,
Adriana

Imagen de nerea.bielsa

Hola Adriana,
creo que al poner el ejercicio ha habido algún error, ya que no veo a que ejercicio te refieres.
¿Podrías especificarlo de nuevo?
Gracias,
Nerea.

Hola!

Busco a gente para realizar el módulo 6. Soy resis de psiquiatría del hospital clínic, si alguien de este hospital quiere formar equipo para el trabajo práctico, pues encantado !!

oriolo@clinic.ub.es

Saludos

Hola, estoy realizando el teste de efectos del tema 11 y tengo una duda. En el test hace referencia a el documento de NEJM y no soy capaz de dar con el. Podeis echarme un cable? Gracias

Imagen de roman-guzman

Buenos días,
si te he entendido bien buscas el documento sobre el tratamiento y la prevención de datos ausentes de NEJM. El enlace lo podrás encontrar en la página 18 de los apuntes, en el ejercicio 2.3 que es el siguiente:
http://www.nejm.org/doi/full/10.1056/NEJMsr1203730
En la página web arriba a la derecha en "Tools" te lo podrás descargar como PDF.
Si esto no es lo que buscas, por favor específica el nombre del documento para que podamos buscarlo lo antes posible.
Gracias,
Daniela.

Hola, acabo de hacer el ejercicio de e-status "efecto y cumplimiento del protocolo". Agradecería que pusieras una manera para conseguir transportar los datos si tenemos un mac y no un windows... no los he conseguido copiar y en el tiempo que dura el examen he tenido que hacer peripecias para poder resolver los ejercicios con los datos y terminar antes de que se me acabara el tiempo...
Muchas gracias por vuestra comprensión, sobretodo para futuros compañeros
Gracias
Galaad T.

Gracias Galaad,
Si, al inicio es muy frustrante. Tienes razón.
La nueva versión abordará este tema.
Por favor, recuerda que es un proceso de aprendizaje. Y por eso, puedes repetir el ejercicio y, con nuevos datos, te queda la mejor nota.
Adelante!
Erik

Imagen de roman-guzman

Buenas Galaad,

Muchas gracias a ti por tus consejos. Lo tendremos en cuenta.

Saludos,
Daniela.

Buenos días,
Tengo una duda en el ejercicio 1.6 del tema 12 "Tamaño muestral". En el enunciado del mismo dice que la incidencia del fenómeno es del 1% a los 3 meses. A mi juicio, esta incidencia sería de 1/100 a los 3 meses. Pero en la resolución del ejercicio veo que pone una incidencia de 1/1000. ¿Es un error o estoy yo equivocada? Muchas gracias

Estaba yo equivocada... ¿Puede ser que sea porqué al usar la distribución de Poisson se calcula siempre la probabilidad para una tasa de aparición del evento (lambda) de 1/1000? Gracias!

Imagen de roman-guzman

Hola,

Efectivamente, hay un error en el enunciado, debería decir: que la incidencia del fenómeno es del 0,1% a los 3 meses. En este caso se está haciendo uso de la aproximación Binomial dónde en cada caso la probabilidad es de 1 por mil.

Si tienes alguna consulta más sobre este tema por si no te ha quedado bien claro puedes escribirme un mensaje a daniela.valeska.roman@upc.edu o a Bioestadistica.fme@upc.edu

Saludos,
Daniela.