help - hoslem.test
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:lutipilotto at yahoo.com.br] 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 Para: "Luciane Maria Pilotto" <lutipilotto at yahoo.com.br>, "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----- > From: Luciane Maria Pilotto [mailto:lutipilotto at yahoo.com.br] > 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.
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"
>
<lutipilotto at yahoo.com.br>, "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
> > To: lutipilotto at yahoo.com.br,
> 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-----
> >>> From: lutipilotto at yahoo.com.br > >>> 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
> >> 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
> >
>
>>>
> >>>
> >>>
>
>>>
> >>>
>
__________________________________________________ > >>> 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: > "Luciane Maria Pilotto" <lutipilotto at yahoo.com.br>, > >>> 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----- > >>> > From: lutipilotto at yahoo.com.br > >>> > 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.