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)
我在这里引用了这个问题,但无法产生相同的结果。
我有结果输出的图片,但不能 post 因为这是一个新帐户。如果有人知道 post 图像的替代方法,我很乐意跟进。
提前致谢。
您的代码会抛出一些警告,因为您使用 dpois(t, lambda = lam)
时 t
不是整数(您可以通过在控制台中键入 warnings()
来查看这些警告)。通过将 length.out = 10000
更改为 by = 1
,您强制 t
仅包含整数,假设您的 dat
仅包含整数。
下面,我做了一个有效的例子(其中 dat
是我随机生成的)。请注意,我将 dpois()
调用乘以数据集大小以从密度变为计数。
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)
我有一个数据集,其中的观测值范围很广(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)
我在这里引用了这个问题,但无法产生相同的结果。
我有结果输出的图片,但不能 post 因为这是一个新帐户。如果有人知道 post 图像的替代方法,我很乐意跟进。
提前致谢。
您的代码会抛出一些警告,因为您使用 dpois(t, lambda = lam)
时 t
不是整数(您可以通过在控制台中键入 warnings()
来查看这些警告)。通过将 length.out = 10000
更改为 by = 1
,您强制 t
仅包含整数,假设您的 dat
仅包含整数。
下面,我做了一个有效的例子(其中 dat
是我随机生成的)。请注意,我将 dpois()
调用乘以数据集大小以从密度变为计数。
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)