开发者

R question about plotting probability/density histogram the right way

I have a following matrix [500,2], so we have 500 rows and 2 columns, the left one gives us the index of X observations, and the right one gives the probability with which this X comes true, so - a typical probability density relationship.

So, my question is, how to plot the histogram the right way, so that the x-axis is the x-index, and the y-axis is the density(0.01-1.00). The bandwidth of the estimator is 0.33.

Thanks in advance!

the end of the whole data looks like this: just for a little orientation

[490,]  2.338260830 0.04858685
[491,]  2.347839477 0.04797310
[492,]  2.357418125 0.04736149
[493,]  2.366996772 0.04675206
[494,]  2.376575419 0.04614482
[495,]  2.386154067 0.04553980
[496,]  2.395732714 0.04493702
[497,]  2.405311361 0.04433653
[498,]  2.414890008 0.04373835
[499,]  2.424468656 0.04314252
[500,]  2.434047303 0.04254907

@everyone, yes, I have made the estimation before, so.. the bandwith is what I mentioned, the data is ordered from low to high values, so respecively the probability at the beginning is 0,2开发者_开发问答2, at the peak about 0,48, at the end 0,15.

The line with the density is plotted like a charm but I have to do in addition is to plot a histogram! So, how I can do this, ordering the blocks properly(ho the data to be splitted in boxes etc..)

Any suggestions?

Here is a part of the data AFTER the estimation, all values are discrete, so I assume histogram can be created.., hopefully.

[491,] 4.956164 0.2618131
[492,] 4.963014 0.2608723
[493,] 4.969863 0.2599309
[494,] 4.976712 0.2589889
[495,] 4.983562 0.2580464
[496,] 4.990411 0.2571034
[497,] 4.997260 0.2561599
[498,] 5.004110 0.2552159
[499,] 5.010959 0.2542716
[500,] 5.017808 0.2533268
[501,] 5.024658 0.2523817

Best regards, appreciate the fast responses!(bow)

What will do the job is to create a histogram just for the indexes, grouping them in a way x25/x50 each, for instance...and compute the average probability for each 25 or 50/100/150/200/250 etc as boxes..?


Assuming the rows are in order from lowest to highest value of x, as they appear to be, you can use the default plot command, the only change you need is the type:

plot(your.data, type = 'l')

EDIT:

Ok, I'm not sure this is better than the density plot, but it can be done:

x = dnorm(seq(-1, 1, length = 500))
x.bins = rep(1:50, each = 10)
bars = aggregate(x, by = list(x.bins), FUN = sum)[,2]
barplot(bars)

In your case, replace x with the probabilities from the second column of your matrix.

EDIT2:

On second thought, this only makes sense if your 500 rows represent discrete events. If they are instead points along a continuous distribution function adding them together as I have done is incorrect. Mathematically I don't think you can produce the binned probability for a range using only a few points from within that range.


Assuming M is the matrix. wouldn't this just be :

plot(x=M[ , 1], y = M[ , 2] )

You have already done the density estimation since this is not the original data.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜