簡體   English   中英

R:在數據直方圖上疊加泊松分布

[英]R: Overlaying Poisson Distribution over a Histogram of Data

我有一個數據集,其中觀察范圍很廣(10,000 到 21,000,000 左右)。 我試圖在這些數據上覆蓋泊松分布,但分布輸出不正確。 到目前為止,我已嘗試使用此代碼:

dat <- read.csv('data.csv', TRUE, ',')

hist(dat,
     main = 'Global Sales of Games in 2010',
     xlab = 'Amount of Copies Sold',
     ylab = 'Counts',
     col = 'palegreen1',
     breaks = 100
)

lam = mean(dat)
t = seq(min(dat), max(dat), length.out = 10000)
lines(t, dpois(t, lambda = lam), col='red', lwd=3)

我也嘗試過使用 rpois 從泊松分布生成數據,但仍然遇到同樣的問題。

simulated = rpois(length(dat), lam)
simulated_lam = mean(simulated)
a = seq(min(simulated), max(simulated), length.out = 10000)
hist(simulated)
lines(a, dpois(a, lambda = simulated_lam), col='red', lwd=3)

我在這里引用了這個問題,但不能產生相同的結果。 R:數據直方圖上的疊加泊松分布

我有生成的 output 的圖像,但由於這是一個新帳戶,因此無法發布。 如果有人知道發布圖片的另一種方式,我很樂意跟進。

提前致謝。

您的代碼會引發一些警告,因為您使用dpois(t, lambda = lam)t不是 integer (您可以通過在控制台中輸入warnings()來查看這些警告)。 通過將length.out = 10000更改為by = 1 ,您可以強制t僅包含整數,假設您的dat僅包含整數。

下面,我做了一個有效的例子(其中dat是我隨機生成的)。 請注意,我將dpois()調用乘以從密度到計數的 go 的數據集大小。

dataset_size <- 100
dat <- rpois(dataset_size, lambda = 10)

hist(dat,
     main = 'Global Sales of Games in 2010',
     xlab = 'Amount of Copies Sold',
     ylab = 'Counts',
     col = 'palegreen1',
     breaks = 100
)

lam = mean(dat)
t = seq(min(dat), max(dat), by = 1)
lines(t, dpois(t, lambda = lam)*dataset_size, col='red', lwd=3)

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM