Hi
Thanks for the help!
I used the following commands to run the test hoslem:
rl<-id3[,c("q06", "q08", "q10",
"q11", "q12", "q13", "q14",
"sexo", "edcat", "rendacat", "cpod",
"getario", "bwgr_et")]#select only variables of
interest
dim(rl)#[1] 22843 12
attach(rl)
q131 <- as.numeric(cut(rl$q13,c(0,1.5,5)))-1
rl<-cbind(rl,q131)
rlna<-rl[complete.cases(rl),]#exclude NA
tpna <- glm(q131 ~ q11 + q10+rendacat+q12 + q08+q06 + q14,
family = binomial(link = "logit"), data=rlna)
hoslem.test(rlna$q131, fitted(tpna), g=10)
Thanks
Luciane
--------------------------------------------
Em seg, 4/5/15, PIKAL Petr <petr.pikal at precheza.cz> escreveu:
Assunto: RE: [R] help - hoslem.test
t.org" <r-help at r-project.org>
Data: Segunda-feira, 4 de Maio de 2015, 10:24
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-----
> Sent: Monday, May 04, 2015 2:46 PM
> To: r-help at 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.pikal at precheza.cz>
escreveu:
>
>? Assunto: RE: [R] help - hoslem.test
"r-help at r-
> project.org" <r-help at r-project.org>
>? Data: Sexta-feira, 1 de Maio de 2015, 3:59
>
>? Hi
>
>? > -----Original Message-----
>? > Sent: Friday, May 01, 2015 12:49 AM
>? > To: PIKAL Petr; r-help at 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 <jrkrideau at inbox.com>
>? escreveu:
>? >
>? >
>? Assunto: Re: [R] help - hoslem.test
>? >
>? Para: "PIKAL Petr" <petr.pikal at precheza.cz>,
>? "Luciane Maria Pilotto"
>? >
>? "r-help at r-project.org"
>? <r-help at 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.pikal at precheza.cz
>? >? > Sent: Thu, 30 Apr 2015 14:25:23
>? +0000
>? >? r-help at r-project.org
>? >? > Subject: Re: [R] help -
>? hoslem.test
>? >? >
>? >? > Hi
>? >? >
>? >? > I agree with John
>? >? >
>? >? > Just
>? small
>? >? refinements in lines
>? >? >
>? >? >>
>? -----Original Message-----
>? >
>? >>> -----Original Message-----
>? >? >>> Sent: Thu, 30 Apr 2015
>? 04:24:32
>? >? -0700
>? >
>? >>> To: r-help at r-project.org,
>? >? jrkrideau at 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
>? <jrkrideau at inbox.com>
>? >? escreveu:
>? >
>? >>>
>? >? >>>? Assunto:
>? RE: [R] help -
>? >? hoslem.test
>? >? >>>? Para:
>? >? >>> r-help at 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-----
>? >
>? >? >>>? > Sent: Wed, 29
Apr
>? 2015
>? >? 18:45:26 -0700
>? >? >>>? > To: r-help at 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 at 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.