Dear Rosa

Please keep the list on the recipients as others may be able to help.

See inline

On 23/09/2015 19:19, Rosa Oliveira wrote:
Dear Michael,

*New cleaned code :)    (I think :))*

casedata <-read.spss("tas_05112008.sav")
tas.data<-data.frame(casedata)

#Delete patients that were not discharged
tas.data                     <- tas.data[ tas.data$hosp!="si ",]
tas.data$resultado.hosp      <- ifelse(tas.data$hosp=="l", 0, 1)

tas.data$tas_d2      <-
log(ifelse(tas.data$tas_d2==88888|tas.data$tas_d2==99999, NA,
tas.data$tas_d2))
tas.data$tas_d3      <-
log(ifelse(tas.data$tas_d3==88888|tas.data$tas_d3==99999, NA,
tas.data$tas_d3))
tas.data$tas_d4      <-
log(ifelse(tas.data$tas_d4==88888|tas.data$tas_d4==99999, NA,
tas.data$tas_d4))
tas.data$tas_d5      <-
log(ifelse(tas.data$tas_d5==88888|tas.data$tas_d5==99999, NA,
tas.data$tas_d5))
tas.data$tas_d6      <-
log(ifelse(tas.data$tas_d6==88888|tas.data$tas_d6==99999, NA,
tas.data$tas_d6))

     tas.data$age      <-
ifelse(tas.data$age==88888|tas.data$age==99999, NA, tas.data$age)


     tas.data                     <-   data.frame(tas1 =
tas.data$tas_d2, tas2 = tas.data$tas_d3,
                                              tas3 = tas.data$tas_d4,
tas4 = tas.data$tas_d5,
                                              tas5 = tas.data$tas_d6,
age = tas.data$age,
                                              discharge =
tas.data$resultado.hosp, id.pat=tas.data$id)

#    tas.data$discharge              <- factor(   tas.data$discharge ,
levels=c(0,1), labels = c("dead", "alive"))

   #select only cases that have more than 3 tas
     tas.data                      <- tas.data[apply(tas.data[,-8:-6],
1, function(x) sum(!is.na(x)))>2,]


     nsample <- n.obs              <- dim(tas.data)[1]  #nr of patients
with more than 2 tas measurements

     tas.data.long                 <- data.frame(
tas=c(unlist(tas.data[,-8:-6])), time=rep(c(0:4), each=n.obs),
age=rep(tas.data$age, 5), discharge=rep(tas.data$discharge, 5),
                                        id=rep(c(1:n.obs), 5))
     tas.data.long                 <- tas.data.long
  [order(tas.data.long$id),]

     age=tas.data$age



library(verification)

What does that do?

prevOR1 <-
summary(glm(tas.data[,7]~tas.data[,4],family=binomial(link=probit)))
ORmodel1 <- exp(prevOR1$coeff[,1])#####computes OR?
ORmodel1

prevOR2 <-
summary(glm(tas.data[,7]~tas.data[,4]+tas.data[,6],family=binomial(link=probit)))
ORmodel2 <- exp(prevOR2$coeff[,1])#####computes OR?
ORmodel2


So are you happy that those are odds ratios but you need the confidence intervals now?

?confint

may help you

Nonetheless I can’t get OR confidence intervals :( and i’m not sure if I
have it right :(

Best,
RO



Atenciosamente,
Rosa Oliveira

--
____________________________________________________________________________


Rosa Celeste dos Santos Oliveira,

E-mail:rosit...@gmail.com <mailto:rosit...@gmail.com>
Tlm: +351 939355143
Linkedin: https://pt.linkedin.com/in/rosacsoliveira
____________________________________________________________________________
"Many admire, few know"
Hippocrates

On 23 Sep 2015, at 16:29, Michael Dewey <li...@dewey.myzen.co.uk
<mailto:li...@dewey.myzen.co.uk>> wrote:

Dear Rosa

Can you remove all the code which is not relevant to calculating the
odds ratio so we can see what is going on?

On 23/09/2015 16:06, Rosa Oliveira wrote:
Dear Michael,


I found some of the errors, but others I wasn’t able to.

And my huge huge problem concerns OR and OR confidence interval :(


*New Corrected code:*


casedata <-read.spss("tas_05112008.sav")
tas.data<-data.frame(casedata)

#Delete patients that were not discharged
tas.data                     <- tas.data[ tas.data$hosp!="si ",]
tas.data$resultado.hosp      <- ifelse(tas.data$hosp=="l", 0, 1)

tas.data$tas_d2      <-
log(ifelse(tas.data$tas_d2==88888|tas.data$tas_d2==99999, NA,
tas.data$tas_d2))
tas.data$tas_d3      <-
log(ifelse(tas.data$tas_d3==88888|tas.data$tas_d3==99999, NA,
tas.data$tas_d3))
tas.data$tas_d4      <-
log(ifelse(tas.data$tas_d4==88888|tas.data$tas_d4==99999, NA,
tas.data$tas_d4))
tas.data$tas_d5      <-
log(ifelse(tas.data$tas_d5==88888|tas.data$tas_d5==99999, NA,
tas.data$tas_d5))
tas.data$tas_d6      <-
log(ifelse(tas.data$tas_d6==88888|tas.data$tas_d6==99999, NA,
tas.data$tas_d6))

    tas.data$age      <-
ifelse(tas.data$age==88888|tas.data$age==99999, NA, tas.data$age)


    tas.data                     <-   data.frame(tas1 =
tas.data$tas_d2, tas2 = tas.data$tas_d3,
                                             tas3 = tas.data$tas_d4,
tas4 = tas.data$tas_d5,
                                             tas5 = tas.data$tas_d6,
age = tas.data$age,
                                             discharge =
tas.data$resultado.hosp, id.pat=tas.data$id)

#    tas.data$discharge              <- factor(   tas.data$discharge ,
levels=c(0,1), labels = c("dead", "alive"))

  #select only cases that have more than 3 tas
    tas.data                      <- tas.data[apply(tas.data[,-8:-6],
1, function(x) sum(!is.na(x)))>2,]


    nsample <- n.obs              <- dim(tas.data)[1]  #nr of patients
with more than 2 tas measurements

    tas.data.long                 <- data.frame(
tas=c(unlist(tas.data[,-8:-6])), time=rep(c(0:4), each=n.obs),
age=rep(tas.data$age, 5), discharge=rep(tas.data$discharge, 5),
                                       id=rep(c(1:n.obs), 5))
    tas.data.long                 <- tas.data.long
 [order(tas.data.long$id),]

    age=tas.data$age

##################################################################################################
#PLOT EMPIRICAL MEANS OF CRP FOR ALIVE  DEATh
##################################################################################################
  mean.alive                      <-
apply(tas.data[tas.data$discharge==0, -8:-6], 2, mean, na.rm=T)
  mean.dead                       <-
apply(tas.data[tas.data$discharge==1, -8:-6], 2, mean, na.rm=T)
  stderr                          <- function(x)
sqrt(var(x,na.rm=TRUE)/length(na.omit(x)))
  se.alive                        <-
apply(tas.data[tas.data$discharge==0, -8:-6], 2, stderr)
  se.dead                         <-
apply(tas.data[tas.data$discharge==1, -8:-6], 2, stderr)
  summarytas                      <- data.frame (media = c(mean.dead,
mean.alive),
                                      standarderror = c( se.dead,
se.alive), discharge = c(rep("dead",5), rep("alive", 5)))


ggplot(summarytas, aes(x=c(c(1:5), c(1:5)), y=mean, colour=discharge)) +
    geom_errorbar(aes(ymin=mean-2* standarderror, ymax=media+2*
standarderror), width=.1) +
  scale_color_manual(values=c("blue", "red")) +
   theme(legend.text=element_text(size=20),
axis.text=element_text(size=16),
axis.title=element_text(size=20,face="bold")) +
   scale_x_continuous(name="Days") +
  scale_y_continuous(name="log tas") +
  geom_line() +
    geom_point()


library(verification)
prev <-
summary(glm(tas.data[,7]~tas.data[,4],family=binomial(link=probit)))
answer            = c(prev$coefficients[,1:2])


roc.plot(tas.data[,7], prev, show.thres = FALSE, legen=F )



modelo<-function (dataainit)
{

#dataa<-tas.data
dataa<-dataainit

dataa$ident<-seq(1:90)
tas.6days<-cbind(id=rep(dataa$id,5),tas=c(dataa$tas_d2, dataa$tas_d3,
dataa$tas_d4, dataa$tas_d5, dataa$tas_d6),
time=rep(c(2:6)-2, each=90), out.come=rep(dataa$hosp,5),
ident=rep(dataa$ident,5))
tas.6days<-data.frame(tas.6days[order(tas.6days[,1]),])
tas.6days$tas[tas.6days$tas==88888|tas.6days$tas==99999 ]<-NA
#mixed model for the longitudinal tas
lme.1 <- lme(tas~ time+1, random = ~ time+1 |ident, data=tas.6days,
na.action=na.exclude )
#Random intercept and slopes
pred.lme<-predict(lme.1)
lme.intercept<-lme.1$coef$random$ident[,1]+lme.1$coef$fixed[1]
lme.slope<- lme.1$coef$random$ident[,2]+lme.1$coef$fixed[2]
selector<-as.numeric(names(lme.intercept)) #to select not NA rows. Apply
to the vector in the dataset
 test(dataa$intercept[resultado.hosp==1],
dataa$intercept[resultado.hosp==0])
print(summary(model.surv1))
return(model.surv1$coef)
 }


*CONSOLE RESULT: (errors in red)*

> casedata <-read.spss("tas_05112008.sav")
Warning message:
In read.spss("tas_05112008.sav") :
  tas_05112008.sav: Unrecognized record type 7, subtype 18 encountered
in system file
> tas.data<-data.frame(casedata)
>
> #Delete patients that were not discharged
> tas.data                     <- tas.data[ tas.data$hosp!="si ",]
> tas.data$resultado.hosp      <- ifelse(tas.data$hosp=="l", 0, 1)
>
> tas.data$tas_d2      <-
log(ifelse(tas.data$tas_d2==88888|tas.data$tas_d2==99999, NA,
tas.data$tas_d2))
> tas.data$tas_d3      <-
log(ifelse(tas.data$tas_d3==88888|tas.data$tas_d3==99999, NA,
tas.data$tas_d3))
> tas.data$tas_d4      <-
log(ifelse(tas.data$tas_d4==88888|tas.data$tas_d4==99999, NA,
tas.data$tas_d4))
> tas.data$tas_d5      <-
log(ifelse(tas.data$tas_d5==88888|tas.data$tas_d5==99999, NA,
tas.data$tas_d5))
> tas.data$tas_d6      <-
log(ifelse(tas.data$tas_d6==88888|tas.data$tas_d6==99999, NA,
tas.data$tas_d6))
>
>     tas.data$age      <-
ifelse(tas.data$age==88888|tas.data$age==99999, NA, tas.data$age)
>
>
>     tas.data                     <-   data.frame(tas1 =
tas.data$tas_d2, tas2 = tas.data$tas_d3,
+                                              tas3 = tas.data$tas_d4,
tas4 = tas.data$tas_d5,
+                                              tas5 = tas.data$tas_d6,
age = tas.data$age,
+                                              discharge =
tas.data$resultado.hosp, id.pat=tas.data$id)
>
> #    tas.data$discharge              <- factor(   tas.data$discharge
, levels=c(0,1), labels = c("dead", "alive"))
>
>   #select only cases that have more than 3 tas
>     tas.data                      <- tas.data[apply(tas.data[,-8:-6],
1, function(x) sum(!is.na(x)))>2,]
>
>
>
>     nsample <- n.obs              <- dim(tas.data)[1]  #nr of
patients with more than 2 tas measurements
>
>     tas.data.long                 <- data.frame(
tas=c(unlist(tas.data[,-8:-6])), time=rep(c(0:4), each=n.obs),
age=rep(tas.data$age, 5), discharge=rep(tas.data$discharge, 5),
+                                        id=rep(c(1:n.obs), 5))
>     tas.data.long                 <- tas.data.long
 [order(tas.data.long$id),]
>
>     age=tas.data$age
>
>
##################################################################################################
> #PLOT EMPIRICAL MEANS OF CRP FOR ALIVE  DEATh
>
##################################################################################################
>   mean.alive                      <-
apply(tas.data[tas.data$discharge==0, -8:-6], 2, mean, na.rm=T)
>   mean.dead                       <-
apply(tas.data[tas.data$discharge==1, -8:-6], 2, mean, na.rm=T)
>   stderr                          <- function(x)
sqrt(var(x,na.rm=TRUE)/length(na.omit(x)))
>   se.alive                        <-
apply(tas.data[tas.data$discharge==0, -8:-6], 2, stderr)
>   se.dead                         <-
apply(tas.data[tas.data$discharge==1, -8:-6], 2, stderr)
>   summarytas                      <- data.frame (media = c(mean.dead,
mean.alive),
+                                       standarderror = c( se.dead,
se.alive), discharge = c(rep("dead",5), rep("alive", 5)))
>
>
> ggplot(summarytas, aes(x=c(c(1:5), c(1:5)), y=mean,
colour=discharge)) +
+     geom_errorbar(aes(ymin=mean-2* standarderror, ymax=media+2*
standarderror), width=.1) +
+   scale_color_manual(values=c("blue", "red")) +
+    theme(legend.text=element_text(size=20),
axis.text=element_text(size=16),
axis.title=element_text(size=20,face="bold")) +
+    scale_x_continuous(name="Days") +
+   scale_y_continuous(name="log tas") +
+   geom_line() +
+     geom_point()
Error in mean - 2 * standarderror :
  non-numeric argument to binary operator
>
>
> library(verification)
> prev <-
summary(glm(tas.data[,7]~tas.data[,4],family=binomial(link=probit)))
> answer            = c(prev$coefficients[,1:2])
>
>
> roc.plot(tas.data[,7], prev, show.thres = FALSE, legen=F )
Error in is.finite(x) : default method not implemented for type 'list'
>
>
>
> modelo<-function (dataainit)
+
+ {
+
+ #dataa<-tas.data
+ dataa<-dataainit
+
+ dataa$ident<-seq(1:90)
+ tas.6days<-cbind(id=rep(dataa$id,5),tas=c(dataa$tas_d2, dataa$tas_d3,
+ dataa$tas_d4, dataa$tas_d5, dataa$tas_d6),
+ time=rep(c(2:6)-2, each=90), out.come=rep(dataa$hosp,5),
ident=rep(dataa$ident,5))
+
+ tas.6days<-data.frame(tas.6days[order(tas.6days[,1]),])
+ tas.6days$tas[tas.6days$tas==88888|tas.6days$tas==99999 ]<-NA
+
+ #mixed model for the longitudinal tas
+ lme.1 <- lme(tas~ time+1, random = ~ time+1 |ident, data=tas.6days,
na.action=na.exclude )
+
+ #Random intercept and slopes
+ pred.lme<-predict(lme.1)
+ lme.intercept<-lme.1$coef$random$ident[,1]+lme.1$coef$fixed[1]
+ lme.slope<- lme.1$coef$random$ident[,2]+lme.1$coef$fixed[2]
+ selector<-as.numeric(names(lme.intercept)) #to select not NA rows.
Apply to the vector in the dataset
+
+  test(dataa$intercept[resultado.hosp==1],
dataa$intercept[resultado.hosp==0])
+
+ print(summary(model.surv1))
+ return(model.surv1$coef)
+
+  }
>

I can’t get the OR and OR CI :(


*DATA:*






Best,

RO




Atenciosamente,
Rosa Oliveira

--
____________________________________________________________________________




Rosa Celeste dos Santos Oliveira,

E-mail:rosit...@gmail.com <http://gmail.com> <mailto:rosit...@gmail.com>
Tlm: +351 939355143
Linkedin: https://pt.linkedin.com/in/rosacsoliveira
____________________________________________________________________________
"Many admire, few know"
Hippocrates

On 23 Sep 2015, at 12:02, Michael Dewey <li...@dewey.myzen.co.uk
<mailto:li...@dewey.myzen.co.uk>
<mailto:li...@dewey.myzen.co.uk>> wrote:

Dear Rosa

It would help if you posted the error messages where they occur so
that we can see which of your commands caused which error. However see
comment inline below.

On 22/09/2015 22:17, Rosa Oliveira wrote:
Dear all,


I’m trying to compute Odds ratio and OR confidence interval.

I’m really naive, sorry for that.


I attach my data and my code.

I’m having lots of errors:

1. Error in data.frame(tas1 = tas.data$tas_d2, tas2 =
tas.data$tas_d3, tas3 = tas.data$tas_d4,  :
 arguments imply differing number of rows: 90, 0


At least one of tas_d2, tas_d3, tas_d4 does not exist

I suggest fixing that one and hoping the rest go away.

2. Error in data.frame(tas = c(unlist(tas.data[, -8:-6])), time =
rep(c(0:4),  :
 arguments imply differing number of rows: 630, 450, 0

3. Error: object 'tas.data.long' not found

4. Error in data.frame(media = c(mean.dead, mean.alive),
standarderror = c(se.dead,  :
 arguments imply differing number of rows: 14, 10

5. Error in ggplot(summarytas, aes(x = c(c(1:5), c(1:5)), y = mean,
colour = discharge)) :
 object 'summarytas' not found

6. Error in summary(glm(tas.data[, 6] ~ tas.data[, 4], family =
binomial(link = probit))) :
 error in evaluating the argument 'object' in selecting a method for
function 'summary': Error in eval(expr, envir, enclos) : y values
must be 0 <= y <= 1

7. Error in wilcox.test.default(pred[obs == 1], pred[obs == 0],
alternative = "great") :
 not enough (finite) 'x' observations
In addition: Warning message:
In is.finite(x) & apply(pred, 1, f) :
 longer object length is not a multiple of shorter object length


and off course I’m not getting OR.

Nonetheless all this errors, I think I have not been able to compute
de code to get OR and OR confidence interval.


Can anyone help me please. It’s really urgent.

PLEASE

THE CODE:

the hospital outcome is discharge.

require(gdata)
library(foreign)
library(nlme)
library(lme4)
library(boot)
library(MASS)
library(Hmisc)
library(plotrix)
library(verification)
library(mvtnorm)
library(statmod)
library(epiR)

#########################################################################################
# Data preparation
                                                                    #
#########################################################################################

setwd("/Users/RO/Desktop")

casedata <-read.spss("tas_05112008.sav")
tas.data<-data.frame(casedata)

#Delete patients that were not discharged
tas.data                     <- tas.data[ tas.data$hosp!="si ",]
tas.data$resultado.hosp      <- ifelse(tas.data$hosp=="l", 0, 1)

tas.data$tas_d2      <-
log(ifelse(tas.data$tas_d2==88888|tas.data$tas_d2==99999, NA,
tas.data$tas_d2))
tas.data$tas_d3      <-
log(ifelse(tas.data$tas_d3==88888|tas.data$tas_d3==99999, NA,
tas.data$tas_d3))
tas.data$tas_d4      <-
log(ifelse(tas.data$tas_d4==88888|tas.data$tas_d4==99999, NA,
tas.data$tas_d4))
tas.data$tas_d5      <-
log(ifelse(tas.data$tas_d5==88888|tas.data$tas_d5==99999, NA,
tas.data$tas_d5))
tas.data$tas_d6      <-
log(ifelse(tas.data$tas_d6==88888|tas.data$tas_d6==99999, NA,
tas.data$tas_d6))

   tas.data$age      <-
ifelse(tas.data$age==88888|tas.data$age==99999, NA, tas.data$age)


   tas.data                     <-   data.frame(tas1 =
tas.data$tas_d2, tas2 = tas.data$tas_d3,
                                            tas3 = tas.data$tas_d4,
tas4 = tas.data$tas_d5,
                                            tas5 = tas.data$tas_d6,
age = tas.data$age,
                                            discharge =
tas.data$resultado.hosp, id.pat=tas.data$ID)

#    tas.data$discharge              <- factor(   tas.data$discharge
, levels=c(0,1), labels = c("dead", "alive"))

 #select only cases that have more than 3 tas
   tas.data                      <- tas.data[apply(tas.data[,-8:-6],
1, function(x) sum(!is.na(x)))>2,]



   nsample <- n.obs              <- dim(tas.data)[1]  #nr of
patients with more than 2 tas measurements

   tas.data.long                 <- data.frame(
tas=c(unlist(tas.data[,-8:-6])), time=rep(c(0:4), each=n.obs),
age=rep(tas.data$age, 5), discharge=rep(tas.data$discharge, 5),
                                      id=rep(c(1:n.obs), 5))
   tas.data.long                 <- tas.data.long
[order(tas.data.long$id),]

   age=tas.data$age

##################################################################################################
#PLOT EMPIRICAL MEANS OF CRP FOR ALIVE  DEATh
##################################################################################################
 mean.alive                      <-
apply(tas.data[tas.data$discharge==0, -8:-6], 2, mean, na.rm=T)
 mean.dead                       <-
apply(tas.data[tas.data$discharge==1, -8:-6], 2, mean, na.rm=T)
 stderr                          <- function(x)
sqrt(var(x,na.rm=TRUE)/length(na.omit(x)))
 se.alive                        <-
apply(tas.data[tas.data$discharge==0, -8:-6], 2, stderr)
 se.dead                         <-
apply(tas.data[tas.data$discharge==1, -8:-6], 2, stderr)
 summarytas                      <- data.frame (media = c(mean.dead,
mean.alive),
                                     standarderror = c( se.dead,
se.alive), discharge = c(rep("dead",5), rep("alive", 5)))


ggplot(summarytas, aes(x=c(c(1:5), c(1:5)), y=mean,
colour=discharge)) +
   geom_errorbar(aes(ymin=mean-2* standarderror, ymax=media+2*
standarderror), width=.1) +
 scale_color_manual(values=c("blue", "red")) +
  theme(legend.text=element_text(size=20),
axis.text=element_text(size=16),
axis.title=element_text(size=20,face="bold")) +
  scale_x_continuous(name="Days") +
 scale_y_continuous(name="log tas") +
 geom_line() +
   geom_point()


library(verification)
prev <-
summary(glm(tas.data[,6]~tas.data[,4],family=binomial(link=probit)))
answer = c(prev$coefficients[,1:2])


roc.plot(tas.data[,6], prev, show.thres = FALSE, legen=F )


modelo<-function (dataainit)

{

#dataa<-tas.data
dataa<-dataainit

dataa$ident<-seq(1:90)
tas.6days<-cbind(id=rep(dataa$id,5),tas=c(dataa$tas_d2, dataa$tas_d3,
dataa$tas_d4, dataa$tas_d5, dataa$tas_d6),
time=rep(c(2:6)-2, each=90), out.come=rep(dataa$hosp,5),
ident=rep(dataa$ident,5))

tas.6days<-data.frame(tas.6days[order(tas.6days[,1]),])
tas.6days$tas[tas.6days$tas==88888|tas.6days$tas==99999 ]<-NA

#mixed model for the longitudinal tas
lme.1 <- lme(tas~ time+1, random = ~ time+1 |ident, data=tas.6days,
na.action=na.exclude )

#Random intercept and slopes
pred.lme<-predict(lme.1)
lme.intercept<-lme.1$coef$random$ident[,1]+lme.1$coef$fixed[1]
lme.slope<- lme.1$coef$random$ident[,2]+lme.1$coef$fixed[2]
selector<-as.numeric(names(lme.intercept)) #to select not NA rows.
Apply to the vector in the dataset

test(dataa$intercept[resultado.hosp==1],
dataa$intercept[resultado.hosp==0])

print(summary(model.surv1))
return(model.surv1$coef)

}




Best,
RO



______________________________________________
R-help@r-project.org <mailto:R-help@r-project.org>
<mailto:R-help@r-project.org> mailing list -- To
UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


--
Michael
http://www.dewey.myzen.co.uk/home.html


--
Michael
http://www.dewey.myzen.co.uk/home.html


--
Michael
http://www.dewey.myzen.co.uk/home.html

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to