考虑以下:
foo = 1:10
bar = 2 * foo
glm(bar ~ foo, family=poisson)
Run Code Online (Sandbox Code Playgroud)
我得到结果
Coefficients:
(Intercept) foo
1.1878 0.1929
Degrees of Freedom: 9 Total (i.e. Null); 8 Residual
Null Deviance: 33.29
Residual Deviance: 2.399 AIC: 47.06
Run Code Online (Sandbox Code Playgroud)
从本页的说明看,似乎foo的系数应该是log(2),但不是。
更一般而言,我认为此输出应该表示lambda = 1.187 + .1929 * foo其中lambda是泊松分布的参数,但似乎与数据不符。
我应该如何解释此回归的输出?
我被要求实现一种算法,使用指数分布的模拟来模拟泊松(lambda)分布。
\n\n我得到了以下密度:\nP(X = k) = P(X1 + \xc2\xb7 \xc2\xb7 \xc2\xb7 + Xk \xe2\x89\xa4 1 < X1 + \xc2\xb7 \xc2\ xb7 \xc2\xb7 + Xk+1),对于 k = 1, 2, . 。。.\nP(X = k) 是具有 lambda 的泊松分布,Xi 是指数分布。
\n\n我编写了代码来模拟指数分布,但不知道如何模拟泊松分布。有人可以帮我解决这个问题吗?谢谢万。
\n\n我的代码:
\n\nn<-c(1:k)\n u<-runif(k)\n x<--log(1-u)/lambda\nRun Code Online (Sandbox Code Playgroud)\n 好吧,我只是重写我的代码.现在的问题是当我编译它时,我得到"节点a的多重定义"的错误.有谁知道我的代码有什么问题.我为模型创建了变量a,b和c,没有很多常量.
model{
for(i in 1:n){
a <- (k[1] + step(s1[i]-.9)*k[2] + step(s1[i]*.5-.9)*k[3])
b <- (r[1] + step(s2[i]-.9)*r[2] + step(s2[i]*.5-.9)*r[3])
c <- (s[1] + step(s3[i]-.9)*s[2] + step(s3[i]*.5-.9)*s[3])
dummy[i] <- 0
dummy[i] ~ dloglik(logLike[i])
# This is the log transformation of the 3-variate poisson
logLike[i] <- -theta12[i] + a*log(theta12[i]) - logfact(a) -theta13[i] - b*log(theta13[i]) - logfact(b)-theta23[i] - c*log(theta23[i]) - logfact(c)-theta1[i] + (y1[i]-a-b)*log(theta1[i]) + logfact(y1[i]-a-b)-theta2[i] + (y2[i]-a-c)*log(theta2[i]) + logfact(y2[i]-a-c)-theta3[i] + (y3[i]-b-c)*log(theta3[i]) + logfact(y3[i]-b-c)
log(theta1[i]) <- alpha1 + beta1*log(L[i])
log(theta2[i]) <- alpha2 …Run Code Online (Sandbox Code Playgroud) 我可能错过了关于统计或numpy/scipy的重要观点.我想用泊松统计生成随机数,其预期值a decimal less than 1例如是lambda = 0.6.当我pythonize这个:
>>> from scipy.stats import poisson
>>> import numpy as np
>>> lambda = 0.6
>>> poisson.rvs(lambda, size=10)
>>> print r
[2 2 0 0 0 2 1 0 0 2 ]
Run Code Online (Sandbox Code Playgroud)
试
>>> r = np.real(poisson.rvs(lambda, size=10))
Run Code Online (Sandbox Code Playgroud)
给出相同的结果.
为什么0和1之间没有小数?
rpois()取两个值(n和lambda)根据泊松分布生成n个随机数。
但是,rpois()在以下情况下该怎么办?
> n = c(0,1,2,3,4,5,6,7,8,9)
> lamda = 10
> rpois(n, lamda)
[1] 13 15 10 9 10 11 10 10 11 15
>
Run Code Online (Sandbox Code Playgroud) 所以,我尝试模拟混合泊松分布:
data2 <- data.frame(x = c(rpois(n = 50, lambda = 0), rpois(n = 450, lambda = 10)))
Run Code Online (Sandbox Code Playgroud)
然后在其上绘制直方图和密度函数,对于分布函数,我使用spatstatdmixpois包中的函数。这是该图的代码:
ggplot(data2, aes(x = x)) +
geom_histogram(aes(y = ..density..), bins = 15) +
geom_line(aes(x = x, y = dmixpois(data2$x, mu = 9, sd = sqrt(41))))
Run Code Online (Sandbox Code Playgroud)
显然,密度函数是错误的。据我所知,混合泊松分布的均值是单个分布均值的线性组合,方差为 Elambda + Varlambda。在图中,我只使用了方差项,但如果添加 lambda 的期望值,密度会变得更加陡峭。计算有什么问题?