Hi

thanks for data.

na.exclude does not excludes NA values. Actually it computes result without 
considering NAs but keeps those NA values in propper positions so that the 
result has the same length as input

Instead of several ifelse you can use

q131 <- as.numeric(cut(id3$q13,c(0,1.5,5)))-1

fitted values start with NA values

> fitted(tp1)
        1241         1242         1243         1244         1245         1246
          NA           NA 2.143345e-11 2.143345e-11 2.143345e-11 2.143345e-11
        1247         1248         1256         1268
2.143345e-11 2.143345e-11 2.143345e-11 2.143345e-11

which obviously hoslem.test is not adapted to.

>
> #Error in quantile.default(yhat, probs = seq(0, 1, 1/g)) :
>  # missing values and NaN's not allowed if 'na.rm' is FALSE

you can use glm without na.action and your fitted values will be without NA.

> tp1 <- glm(q131 ~ q11 + q10+q12+edcat + q08+q06+ q14, family = binomial(link 
> = "logit"), data=id3)
> fitted(tp1)
        1243         1244         1245         1246         1247         1248
2.143345e-11 2.143345e-11 2.143345e-11 2.143345e-11 2.143345e-11 2.143345e-11
        1256         1268
2.143345e-11 2.143345e-11

however
tp1$q131 does not exist

> tp1$q131
NULL
So again, test throws error.

Maybe you wanted

> hoslem.test(na.omit(id3$q131), fitted(tp1), g=10)

        Hosmer and Lemeshow goodness of fit (GOF) test

data:  na.omit(id3$q131), fitted(tp1)
X-squared = NaN, df = 8, p-value = NA

Warning message:
In Ops.factor(1, y) : ‘-’ not meaningful for factors

However q131 is factor (actually you changed it to factor)

If I change it to numeric

> id3$q131<-q131
> tp1 <- glm(q131 ~ q11 + q10+q12+edcat + q08+q06+ q14, family = binomial(link 
> = "logit"), data=id3)
> hoslem.test(na.omit(id3$q131), fitted(tp1), g=10)

        Hosmer and Lemeshow goodness of fit (GOF) test

data:  na.omit(id3$q131), fitted(tp1)
X-squared = NaN, df = 8, p-value = NA

hoslem test works - at least it does not throw errors.

So best way for you would be to understand basic differences in object types 
(numeric, factor, ....) by reading R intro and think about what hoslem test 
needs as an input.

Cheers
Petr

> -----Original Message-----
> From: Luciane Maria Pilotto [mailto:lutipilo...@yahoo.com.br]
> Sent: Monday, May 04, 2015 2:46 PM
> To: r-help@r-project.org; PIKAL Petr
> Subject: RE: [R] help - hoslem.test
>
> Hi
>
> I'm trying to make a reproducible example using the command "dput" as
> fallows.
>
> The problem occurs when running the test of Hosmer and Lemeshow
> (hoslem.test) for residuals gives error. I'm using the command
> "na.action" to exclude the NA values.
>
> Thanks,
> Luciane
>
> ###############################################
>
> load(file.choose())#dataframe:"id3.rda"
> attach(id3)
>

<snip>

>
> #create binary outcome variable (q13) (transformando q13 em binária)
> q131<-ifelse(q13==1,0,ifelse(q13==2,1,ifelse(q13==3,1,
> ifelse(q13==4,1,ifelse(q13==5,1,NA)))))

Instead of several ifelse you can use

q131 <- as.numeric(cut(id3$q13,c(0,1.5,5)))-1

> id3<-cbind(id3,q131)
> id3$q131 <- as.factor(id3$q131)
>
> str(id3)
>
> tp1 <- glm(q131 ~ q11 + q10+q12+edcat + q08+q06+ q14, family =
> binomial(link = "logit"), data=id3, na.action="na.exclude")
> tp1
>
> library(ResourceSelection)
> hoslem.test(tp1$q131, fitted(tp1), g=10)
>
>
>
>
> --------------------------------------------
> Em sex, 1/5/15, PIKAL Petr <petr.pi...@precheza.cz> escreveu:
>
>  Assunto: RE: [R] help - hoslem.test
>  Para: "Luciane Maria Pilotto" <lutipilo...@yahoo.com.br>, "r-help@r-
> project.org" <r-help@r-project.org>
>  Data: Sexta-feira, 1 de Maio de 2015, 3:59
>
>  Hi
>
>  > -----Original Message-----
>  > From: Luciane Maria Pilotto [mailto:lutipilo...@yahoo.com.br]
>  > Sent: Friday, May 01, 2015 12:49 AM
>  > To: PIKAL Petr; r-help@r-project.org;
>  John Kane
>  > Subject: Re: [R] help -
>  hoslem.test
>  >
>  > Ok, in
>  dropbox link below you can download the bank.
>  > (https://www.dropbox.com/s/9qrdf4mhd6tzypi/id3.rda?dl=0)
>
>  No. Not everybody is alowed to
>  use dropbox. Try to post result of
>
>  dput(id3)
>
>  directly to your post.
>
>  Cheers
>  Petr
>
>  >
>  > I change the script
>  following the suggestions, but the error persists.
>  > I used the the na.action command to delete
>  the lost values.
>  >
>  >
>
> #######################################################################
>  >
>  >
>  load("id3.rda")
>  >
>  attach(id3)
>  >
>  >
>  #transformando q13 em binária (o/1)
>  >
>  q131<-ifelse(q13==1,0,ifelse(q13==2,1,ifelse(q13==3,1,
>  > ifelse(q13==4,1,ifelse(q13==5,1,NA)))))
>  > id3<-cbind(id3,q131)
>  > id3$q131 <- as.factor(id3$q131)
>  > str(id3)
>  >
>  > tp1 <- glm(q131 ~ q11 + q10+q12+edcat +
>  q08+q06+ q14, family =
>  > binomial(link =
>  "logit"), data=id3,
>  na.action="na.exclude")
>  >
>  tp1
>  > hoslem.test(tp1$q131, fitted(tp1),
>  g=10)
>  >
>  >
>  >
>  >
>  --------------------------------------------
>  > Em qui, 30/4/15, John Kane <jrkrid...@inbox.com>
>  escreveu:
>  >
>  >
>  Assunto: Re: [R] help - hoslem.test
>  >
>  Para: "PIKAL Petr" <petr.pi...@precheza.cz>,
>  "Luciane Maria Pilotto"
>  >
>  <lutipilo...@yahoo.com.br>,
>  "r-help@r-project.org"
>  <r-help@r-
>  > project.org>
>  >
>  Data: Quinta-feira, 30 de Abril de 2015, 11:51
>  >
>  >  Kevin Thorpe
>  pointed out
>  >  to me that there is a
>  dropbox link at the very bottom of the
>  >  post that I missed. :(
>  >
>  >  I
>  >  just downloaded it, read it in and it
>  looks fine.
>  >
>  >  John
>  Kane
>  >  Kingston ON Canada
>  >
>  >
>  >  > -----Original
>  >  Message-----
>  >  >
>  From: petr.pi...@precheza.cz
>  >  > Sent: Thu, 30 Apr 2015 14:25:23
>  +0000
>  >  > To: lutipilo...@yahoo.com.br,
>  >  r-help@r-project.org
>  >  > Subject: Re: [R] help -
>  hoslem.test
>  >  >
>  >  > Hi
>  >  >
>  >  > I agree with John
>  >  >
>  >  > Just
>  small
>  >  refinements in lines
>  >  >
>  >  >>
>  -----Original Message-----
>  >
>  >>> -----Original Message-----
>  >  >>> From: lutipilo...@yahoo.com.br
>  >  >>> Sent: Thu, 30 Apr 2015
>  04:24:32
>  >  -0700
>  >
>  >>> To: r-help@r-project.org,
>  >  jrkrid...@inbox.com
>  >  >>> Subject: RE: [R] help -
>  >  hoslem.test
>  >
>  >>>
>  >  >>>
>  load("id3.rda")
>  >  >>
>  And what is this?
>  >  >>
>  >  >> We do not
>  >  have access to your office or computer
>  hard disc.
>  >  >>
>  >  >> Please read
>  >  http://stackoverflow.com/questions/5963269/how-to-make-a-
>  >  >> great-r-reproducible-example,
>  see
>  >  ?dput for sending data?
>  >  >>
>  >  >>
>  It is very unlikely anyone here can
>  >
>  help if we have no data.
>  >  >>
>  >  >>
>  >
>  >>>
>  >  attach(id3)
>  >  >
>  >  > Do
>  >  not use attach. It prevents from
>  modifiyng id3.
>  >  >
>  >  >>>
>  >
>  >>> #transformando q13 em binária
>  >  >>>
>  >
>  q131<-ifelse(q13==1,1,ifelse(q13==2,2,ifelse(q13==3,2,
>  >  >>>
>  >
>  ifelse(q13==4,2,ifelse(q13==5,2,NA)))))
>  >  >
>  >
>  >  > q131 <- as.numeric(cut(q13,
>  >  c(0,1.5,5)))
>  >
>  >
>  >  >>
>  >
>  x<-1:7
>  >  >> x
>  >  >
>  >  [1] 1 2 3 4
>  5 6 7
>  >  >> as.numeric(cut(x,
>  >  c(0,1.5,5)))
>  >  >
>  [1]  1  2  2  2  2 NA
>  >  NA
>  >  >
>  >
>  >>>
>  >
>  id3<-cbind(id3,q131)
>  >  >
>  >  > rather dangerous in case id3 is
>  not
>  >  data.frame but matrix
>  >  >
>  >  >>>
>  id3$q131 <-
>  >  as.factor(id3$q131)
>  >  >>>
>  >
>  >>> tp1 <- glm(q131 ~ q11 +
>  >  q10+q12+edcat + q08+q06+ q14, family
>  =
>  >  >>> binomial(link =
>  >  "logit"), data=id3)
>  >  >>>
>  >
>  tp1
>  >  >>>
>  >  >>>
>  library(ResourceSelection)
>  >
>  >>> hoslem.test(tp1$q131, fitted(tp1),
>  >  g=10)
>  >  >
>  >  > hoslem.test
>  >
>  expects x to be a numeric vector of observations, binary
>  >  > (0/1).
>  >  >
>  If I
>  >  understand correctly tp1$q131
>  have values 1, 2 or NA.
>  >  >
>  >  > Cheers
>  >  >
>  Petr
>  >  >
>  >
>  >>>
>  >  >>>
>  >  dataframe: https://www.dropbox.com/s/9qrdf4mhd6tzypi/id3.rda?dl=0
>  >  >>>
>  >
>  >>>
>  >  >>>
>  >
>  __________________________________________________
>  >  >>> Luciane Maria Pilotto
>  >  >>> Mestre e Doutoranda em
>  Saúde
>  >  Bucal Coletiva - FO/UFRGS
>  >  >>> NDE
>  >
>  Odontologia - UNIVATES
>  >
>  >>>
>  >  Telefone: (51)
>  84512344
>  >  >>>
>  >  >>>
>  >
>  --------------------------------------------
>  >  >>> Em qui, 30/4/15, John Kane
>  <jrkrid...@inbox.com>
>  >  escreveu:
>  >
>  >>>
>  >  >>>  Assunto:
>  RE: [R] help -
>  >  hoslem.test
>  >  >>>  Para:
>  >  "Luciane Maria Pilotto" <lutipilo...@yahoo.com.br>,
>  >  >>> r-help@r-project.org
>  >  >>>  Data: Quinta-feira, 30 de
>  Abril
>  >  de 2015, 7:52
>  >  >>>
>  >
>  >>>  http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-
>  >  >> reproducible-example
>  >  >>>
>  >
>  >>>
>  >  John Kane
>  >  >>>  Kingston ON
>  >  Canada
>  >
>  >>>
>  >  >>>
>  >  >>>
>  >  >
>  -----Original Message-----
>  >
>  >>>  > From: lutipilo...@yahoo.com.br
>  >  >>>  > Sent: Wed, 29 Apr
>  2015
>  >  18:45:26 -0700
>  >  >>>  > To: r-help@r-project.org
>  >  >>>  > Subject: [R] help
>  -
>  >  hoslem.test
>  >
>  >>>  >
>  >  >>>
>  > Hello,
>  >  >>>  >
>  >  >>>  > I'm working
>  with
>  >  >>>  ordinal logistic
>  regression
>  >  model (polr) and would
>  like
>  >  >>>
>  >  > to test the proportional odds
>  assumption.
>  >  >>>  For this,
>  I ran the binary
>  >  >>>  >
>  logistic
>  >  >>>  regressions
>  with varying
>  >  cutpoints on the
>  dependent
>  >  >>>
>  >  variable, as
>  >
>  >>>  > described
>  >  in the
>  following
>  >  >>>  commands.
>  >  When running the test of Hosmer and
>  >  >>>  > Lemeshow
>  (hoslem.test) for
>  >  residuals gives
>  >  >>>  error.
>  >  >>>  >
>  >  >>>  > Thanks,
>  >  >>>  > Luciane
>  >  >>>  >
>  >  >>>  >
>  >  >>>
>  >
>  ______________________________________________
>  >  >>>  > 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.
>  >  >>>
>  >
>

________________________________
Tento e-mail a jakékoliv k němu připojené dokumenty jsou důvěrné a jsou určeny 
pouze jeho adresátům.
Jestliže jste obdržel(a) tento e-mail omylem, informujte laskavě neprodleně 
jeho odesílatele. Obsah tohoto emailu i s přílohami a jeho kopie vymažte ze 
svého systému.
Nejste-li zamýšleným adresátem tohoto emailu, nejste oprávněni tento email 
jakkoliv užívat, rozšiřovat, kopírovat či zveřejňovat.
Odesílatel e-mailu neodpovídá za eventuální škodu způsobenou modifikacemi či 
zpožděním přenosu e-mailu.

V případě, že je tento e-mail součástí obchodního jednání:
- vyhrazuje si odesílatel právo ukončit kdykoliv jednání o uzavření smlouvy, a 
to z jakéhokoliv důvodu i bez uvedení důvodu.
- a obsahuje-li nabídku, je adresát oprávněn nabídku bezodkladně přijmout; 
Odesílatel tohoto e-mailu (nabídky) vylučuje přijetí nabídky ze strany příjemce 
s dodatkem či odchylkou.
- trvá odesílatel na tom, že příslušná smlouva je uzavřena teprve výslovným 
dosažením shody na všech jejích náležitostech.
- odesílatel tohoto emailu informuje, že není oprávněn uzavírat za společnost 
žádné smlouvy s výjimkou případů, kdy k tomu byl písemně zmocněn nebo písemně 
pověřen a takové pověření nebo plná moc byly adresátovi tohoto emailu případně 
osobě, kterou adresát zastupuje, předloženy nebo jejich existence je adresátovi 
či osobě jím zastoupené známá.

This e-mail and any documents attached to it may be confidential and are 
intended only for its intended recipients.
If you received this e-mail by mistake, please immediately inform its sender. 
Delete the contents of this e-mail with all attachments and its copies from 
your system.
If you are not the intended recipient of this e-mail, you are not authorized to 
use, disseminate, copy or disclose this e-mail in any manner.
The sender of this e-mail shall not be liable for any possible damage caused by 
modifications of the e-mail or by delay with transfer of the email.

In case that this e-mail forms part of business dealings:
- the sender reserves the right to end negotiations about entering into a 
contract in any time, for any reason, and without stating any reasoning.
- if the e-mail contains an offer, the recipient is entitled to immediately 
accept such offer; The sender of this e-mail (offer) excludes any acceptance of 
the offer on the part of the recipient containing any amendment or variation.
- the sender insists on that the respective contract is concluded only upon an 
express mutual agreement on all its aspects.
- the sender of this e-mail informs that he/she is not authorized to enter into 
any contracts on behalf of the company except for cases in which he/she is 
expressly authorized to do so in writing, and such authorization or power of 
attorney is submitted to the recipient or the person represented by the 
recipient, or the existence of such authorization is known to the recipient of 
the person represented by the recipient.
______________________________________________
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