[R] nls and rbinom function: step factor 0.000488281 reduced below 'minFactor' of 0.000976562

1,579 views
Skip to first unread message

G Vishwanath

unread,
Jan 2, 2012, 11:25:18 PM1/2/12
to r-h...@r-project.org
I  am trying to learn nls using a simple simulation. I assumed that the binomial prob varies linearly as 0.2 + 0.3*x in  x {0,1},
and the objective is to recover the known parameters a=0.2, b=0.3

..data frame d has 1000 rows...

d$x<-runif(0,1)              

d$y<-rbinom(1000,1,0.2+0.3*d$x) 

table(d$y,cut(d$x,breaks=5));

  (-0.000585,0.199] (0.199,0.399] (0.399,0.599] (0.599,0.799] (0.799,0.999]
  0               154           149           130           122           114
  1                34            48            71            76           102

 z <- nls(y ~ rbinom(1000,1,a+b*x),data=d,start= list(a =0.1,b=0.2),trace=T);

374 :  0.1 0.2 
361 :  0.1 0.2 
350 :  0.1 0.2 
Error in nls(y ~ rbinom(1000, 1, a + b * x), data = d, start = list(a = 0.1,  : 
  step factor 0.000488281 reduced below 'minFactor' of 0.000976562

I have tried plinear, got the same....

Additionaly- why does the parameters not change with the iteration ?
[[alternative HTML version deleted]]

peter dalgaard

unread,
Jan 3, 2012, 3:11:31 AM1/3/12
to G Vishwanath, r-h...@r-project.org

On Jan 3, 2012, at 05:25 , G Vishwanath wrote:

> I am trying to learn nls using a simple simulation. I assumed that the binomial prob varies linearly as 0.2 + 0.3*x in x {0,1},
> and the objective is to recover the known parameters a=0.2, b=0.3
>
> ..data frame d has 1000 rows...
>
> d$x<-runif(0,1)

...(1000,0,1), I presume.

>
>
> d$y<-rbinom(1000,1,0.2+0.3*d$x)
>
> table(d$y,cut(d$x,breaks=5));
>
> (-0.000585,0.199] (0.199,0.399] (0.399,0.599] (0.599,0.799] (0.799,0.999]
> 0 154 149 130 122 114
> 1 34 48 71 76 102
>
> z <- nls(y ~ rbinom(1000,1,a+b*x),data=d,start= list(a =0.1,b=0.2),trace=T);
>

This makes no sense. Random numbers in a model specification????

y~a+b*x might give a result, but you're fitting a model which assumes Gaussian errors with constant variance to data that are nothing of the sort.


--
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd....@cbs.dk Priv: PDa...@gmail.com

______________________________________________
R-h...@r-project.org mailing list
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.

G Vishwanath

unread,
Jan 3, 2012, 10:31:56 AM1/3/12
to peter dalgaard, r-h...@r-project.org
>...(1000,0,1), I presume.


Yes thank you.


 ...z <- nls(y ~ rbinom(1000,1,a+b*x),data=d,start= list(a =0.1,b=0.2),trace=T);


>This makes no sense. Random numbers in a model specification???? 

And maybe that  model spec is nonsense, although it seems to me that it correctly incorporates the idea of a linear density function.     But any ideas on how you might correctly specify such a model?

Thanks,
GR


________________________________
From: peter dalgaard <pda...@gmail.com>

Cc: "r-h...@r-project.org" <r-h...@r-project.org>
Sent: Tuesday, January 3, 2012 3:11 AM
Subject: Re: [R] nls and rbinom function: step factor 0.000488281 reduced below 'minFactor' of 0.000976562


On Jan 3, 2012, at 05:25 , G Vishwanath wrote:

> I  am trying to learn nls using a simple simulation. I assumed that the binomial prob varies linearly as 0.2 + 0.3*x in  x {0,1},
> and the objective is to recover the known parameters a=0.2, b=0.3
>
> ..data frame d has 1000 rows...
>
> d$x<-runif(0,1) 

...(1000,0,1), I presume.

>           
>
> d$y<-rbinom(1000,1,0.2+0.3*d$x)
>
> table(d$y,cut(d$x,breaks=5));
>
>  (-0.000585,0.199] (0.199,0.399] (0.399,0.599] (0.599,0.799] (0.799,0.999]
>  0              154          149          130          122          114
>  1                34            48            71            76          102
>
>  z <- nls(y ~ rbinom(1000,1,a+b*x),data=d,start= list(a =0.1,b=0.2),trace=T);
>

This makes no sense. Random numbers in a model specification????

y~a+b*x might give a result, but you're fitting a model which assumes Gaussian errors with constant variance to data that are nothing of the sort.


--
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd....@cbs.dk  Priv: PDa...@gmail.com

[[alternative HTML version deleted]]

Reply all
Reply to author
Forward
0 new messages