Hello,
I am trying to fit distribution for data consisting of 421 readings.It is
basically no of requests arrived per minute.It contains many 0 entries as no
of requests.When i use
fd<-fitdistr(V2,"gamma")
I get following error:
Error in optim(x = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, :
initial value in 'vmmin' is not finite
What should I do ? I need this function because I want to get value of
estimated parameters.
Is there any other function to perform such calculations?
Please help me.
Thank You.
Code is as follows:
x<-data.frame()
N<-data.frame((read.table("cs2ip.txt")))
attach(N)
m<-min(V1)
k<-floor(1 + log2(length(V1)))
f<-(max(V1)-min(V1))/k
i<-1
j<-1
while(i<=(length(V1))) {
fc<-0
while(V1[i]<=(m+f)) {
fc<-fc+V2[i]
i<-i+1
if(i>length(V1))
break
}
x[j,1]<-fc
m<-m+f
j<-j+1
}
library(MASS)
fd<-fitdistr(V2,"gamma")
Input data is:
TIME NO
(SEC) OF REQUESTS
32400 0
32460 0
32520 0
32580 0
32640 0
32700 0
32760 0
32820 0
32880 0
32940 0
33000 0
33060 0
33120 0
33180 0
33240 0
33300 0
33360 0
33420 0
33480 0
33540 0
33600 0
33660 0
33720 0
33780 0
33840 0
33900 0
33960 0
34020 0
34080 0
34140 0
34200 0
34260 0
34320 0
34380 0
34440 0
34500 0
34560 0
34620 0
34680 0
34740 0
34800 0
34860 0
34920 0
34980 0
35040 0
35100 0
35160 0
35220 32
35280 0
35340 0
35400 0
35460 0
35520 0
35580 0
35640 0
35700 0
35760 0
35820 0
35880 0
35940 0
36000 0
36060 0
36120 31
36180 32
36240 0
36300 0
36360 0
36420 0
36480 0
36540 0
36600 0
36660 0
36720 0
36780 0
36840 0
36900 0
36960 0
37020 0
37080 0
37140 0
37200 0
37260 0
37320 0
37380 0
37440 0
37500 0
37560 0
37620 0
37680 0
37740 0
37800 0
37860 0
37920 32
37980 0
38040 0
38100 0
38160 0
38220 0
38280 0
38340 0
38400 0
38460 0
38520 0
38580 0
38640 0
38700 0
38760 0
38820 32
38880 32
38940 32
39000 0
39060 0
39120 0
39180 0
39240 0
39300 0
39360 0
39420 0
39480 0
39540 0
39600 0
39660 0
39720 32
39780 32
39840 77
39900 0
39960 0
40020 0
40080 0
40140 0
40200 0
40260 0
40320 0
40380 0
40440 0
40500 0
40560 0
40620 32
40680 32
40740 109
40800 67
40860 92
40920 0
40980 0
41040 0
41100 0
41160 0
41220 0
41280 0
41340 0
41400 0
41460 0
41520 112
41580 0
41640 0
41700 0
41760 0
41820 0
41880 0
41940 0
42000 0
42060 0
42120 0
42180 0
42240 0
42300 0
42360 0
42420 0
42480 0
42540 66
42600 0
42660 93
42720 0
42780 0
42840 0
42900 0
42960 0
43020 0
43080 0
43140 0
43200 0
43260 0
43320 0
43380 0
43440 0
43500 0
43560 0
43620 0
43680 138
43740 0
43800 0
43860 0
43920 0
43980 0
44040 0
44100 0
44160 0
44220 0
44280 0
44340 0
44400 0
44460 0
44520 0
44580 0
44640 0
44700 0
44760 0
44820 0
44880 0
44940 0
45000 0
45060 0
45120 69
45180 90
45240 0
45300 0
45360 112
45420 0
45480 0
45540 0
45600 87
45660 0
45720 97
45780 0
45840 0
45900 0
45960 0
46020 0
46080 0
46140 0
46200 0
46260 0
46320 92
46380 0
46440 0
46500 0
46560 0
46620 0
46680 0
46740 0
46800 0
46860 0
46920 0
46980 0
47040 0
47100 0
47160 0
47220 0
47280 0
47340 0
47400 0
47460 0
47520 0
47580 0
47640 0
47700 0
47760 0
47820 0
47880 0
47940 0
48000 0
48060 0
48120 0
48180 0
48240 0
48300 0
48360 0
48420 0
48480 0
48540 0
48600 0
48660 0
48720 0
48780 0
48840 0
48900 0
48960 0
49020 0
49080 0
49140 0
49200 0
49260 0
49320 0
49380 0
49440 0
49500 0
49560 0
49620 32
49680 32
49740 0
49800 0
49860 0
49920 0
49980 33
50040 0
50100 0
50160 0
50220 0
50280 0
50340 0
50400 0
50460 0
50520 102
50580 0
50640 0
50700 0
50760 100
50820 0
50880 0
50940 0
51000 0
51060 0
51120 0
51180 0
51240 0
51300 0
51360 0
51420 32
51480 32
51540 0
51600 0
51660 0
51720 0
51780 0
51840 0
51900 0
51960 0
52020 0
52080 0
52140 0
52200 0
52260 0
52320 0
52380 0
52440 0
52500 0
52560 0
52620 0
52680 0
52740 0
52800 0
52860 0
52920 0
52980 0
53040 0
53100 0
53160 0
53220 0
53280 0
53340 0
53400 0
53460 0
53520 0
53580 0
53640 0
53700 0
53760 0
53820 0
53880 0
53940 0
54000 0
54060 0
54120 0
54180 0
54240 0
54300 0
54360 0
54420 0
54480 0
54540 0
54600 0
54660 0
54720 0
54780 0
54840 0
54900 0
54960 0
55020 0
55080 0
55140 0
55200 0
55260 0
55320 0
55380 0
55440 0
55500 0
55560 0
55620 0
55680 0
55740 0
55800 0
55860 0
55920 0
55980 0
56040 0
56100 0
56160 0
56220 0
56280 0
56340 0
56400 0
56460 0
56520 0
56580 0
56640 0
56700 0
56760 0
56820 0
56880 0
56940 0
57000 0
57060 0
57120 0
57180 0
57240 0
57300 0
57360 0
57420 0
57480 0
57540 0
57600 0
Aswad
[[alternative HTML version deleted]]
> > Hello, > > I am trying to fit distribution for data consisting of 421 readings.It is > basically no of requests arrived per minute.It contains many 0 entries as > no of requests.When i use > fd<-fitdistr(V2,"gamma") > I get following error: > Error in optim(x = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, > : > initial value in 'vmmin' is not finite > > What should I do ? I need this function because I want to get value of > estimated parameters. > Is there any other function to perform such calculations? > Please help me. > Thank You. > > Code is as follows: > x<-data.frame() > N<-data.frame((read.table("cs2ip.txt"))) > attach(N) > library(MASS) > fd<-fitdistr(V2,"gamma") > > Input data is: > V2 contains : >(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 32,0,0,0,0,0,0,0,0,0,0,0,0,31,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,32,32,0,0,0,0,0,0,0,0,0,0,0,0,32,32,77,0,0,0,0,0,0,0,0,0,0,0,0, 32,32,109,67,92,0,0,0,0,0,0,0,0,0,0,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,0,93,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,138,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,69,90,0, 0,112,0,0,0,87,0,97,0,0,0,0,0,0,0,0,0,92,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,32,0,0,0,0,33,0,0,0,0,0,0,0, 0,102,0,0,0,100,0,0,0,0,0,0,0,0,0,0,32,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)> > Aswad >[[alternative HTML version deleted]]
Jason Q. McClintic
2008-Feb-10 15:15 UTC
[R] Error in optim while using fitdistr() function
I get the digest, so I apologize if this is a little late.
For your situation (based on the description and what I think your code
is doing, more on that below), it looks like you are modeling a Poisson
flow where the number of hits per unit time is a random integer with
some mean value.
If I understand your code correctly, you are trying to put your data
into k bins of width f<-(max(V1)-min(V1))/k. In that case I would think
something like this would work more efficiently:
m<-min(V1);
k<-floor(1 + log2(length(V1)));
f<-(max(V1)-min(V1))/k;
binCount<-NULL;
for(i in seq(length=k)){
binIndex<-which((m+(i-1)*f<V1)&(V1<m+i*f));
binCount[i]<-sum(V2[binIndex]);
};
where i becomes the index of time intervals.
Hope it helps.
Sincerely,
Jason Q. McClintic
r-help-request at r-project.org wrote:> Send R-help mailing list submissions to
> r-help at r-project.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
> https://stat.ethz.ch/mailman/listinfo/r-help
> or, via email, send a message with subject or body 'help' to
> r-help-request at r-project.org
>
> You can reach the person managing the list at
> r-help-owner at r-project.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of R-help digest..."
>
Seemingly Similar Threads
- Problem with fitdistr function
- Error in optim while using fitdistr() function for estimation of parameters
- Problem with fitdistr function while estimating parameters
- Error while using fitdistr() function or goodfit() function
- fitting distributions using fitdistr (MASS)