怎么理解tweedie分布?
3个回答
Tweedie分布是一种泊松分布和伽马分布的复合分布。
有三个参数,一个是$p$,当$p=1$,Tweedie就是泊松分布,当$p=2$,Tweedie就是伽马分布。
第二个参数是$\mu$,是Tweedie分布的期望。
第三个参数是$\phi$,控制Tweedie分布的方差。方差$Var=\phi \mu^p$。
直白一点理解就是,Tweedie随机变量是$X$个伽马随机变量的和。其中$X$是服从期望为$\mu^{(2-p)/(\phi(2-p))}$的泊松分布,其中每个伽马随机变量是独立同分布的,服从$\Gamma((2-p)/(p-1), \phi(p-1)\mu^{p-1})$。
Tweedie分布最明显的一个特点是以一定的概率生成数值为0的样本。Tweedie分布在商业场景中有很多例子,比如人们进入某个商城后的消费额。一部分人只是进去随便逛逛(比如蹭空调),所以消费额是0,另一部分客户是有消费额的,是随机的连续数值。
直方图是如下效果
				谢谢!
				- 
             FridaWang
           
				
          
          2019-07-07 13:59
			
用python可以简单实现一下生成tweedie分布随机变量
import numpy as np
import matplotlib.pyplot as plt
def tweedie(n,p,mu,phi):
    #checking the value of variance power between 1-2
    result = np.full(n, np.nan)
    # calculating mean of poisson distribution
    lambdaa = mu ** (2 - p) / (phi * (2 - p))
    # shape parameter of gamma distribution
    alpha = (2 - p) / (1 - p)
    # scale parameter of gamma distribution
    gam = phi * (p - 1) * ( mu ** (p - 1))
    # Generating Poisson random sample
    rs = np.random.poisson(lambdaa, n)
    for i in range(n):
    # Generate single data point of gamma distribution using poisson random variable
        result[i] = np.random.gamma(rs[i] * np.abs(alpha), gam, 1)
    return result
x = tweedie(100000, 1.2, 3, 2)
plt.hist(x, bins=40)
plt.show()上面随机产生了100000个随机点,分布如下。可以看出有很多0。
				谢谢!
				- 
             FridaWang
           
				
          
          2019-07-07 13:59
			
简单来说,tweetie就是zero-inflated distribution。
有大量样本为0的非负分布,电商里常见的应用场景就是单次访问交易额,用户LTV之类
    
  相关讨论
  随便看看