scipy.stats.lognorm使用心得

1.定义

若logx服从正态分布,则x服从对数正态分布

2.参数设置

lognorm.rvs(s, loc=0, scale=1, size=1)中的参数s,loc,scale, 要记住:loc和scale并不是我们通常理解的对数变化后数据的均值mu和标准差sigma

lognorm.pdf(x, s)
1 / (s*x*sqrt(2*pi)) * exp(-1/2*(log(x)/s)**2) for x > 0, s > 0.
m1=lognorm.pdf(x, s=estimated_sigma,scale=exp(estimated_mu))
m2=1 / (s*x*sqrt(2*pi)) * exp(-1/2*((log(x)-estimated_mu)/s)**2)
(以上两种计算最后差异可以忽略不计)
lognorm takes s as a shape parameter.
The probability density above is defined in the “standardized” form. To shift and/or scale the distribution use the loc and scale parameters. Specifically, lognorm.pdf(x, s, loc, scale) is identically equivalent to lognorm.pdf(y, s) / scale with y = (x - loc) / scale.

logX服从n(mu,sigma^2),需要令lognorm中的参数s=sigma,loc=0,scale=exp(mu)

lognorm.pdf(x, 0.55, 0, numpy.exp(4.29)) where the arguments are (x, shape, loc, scale)

3.使用.fit进行参数估计

import numpy as np

from scipy import stats

x = 2 * np.random.randn(10000) + 7.0 # normally  distributed values

y = np.exp(x) # these values have lognormal distribution

s, loc, scale = stats.lognorm.fit(y, floc=0)

estimated_mu = np.log(scale)

estimated_sigma = s

s, loc, scale = lognorm.fit([k if k>0 else k+1 for k in train_Ds[i]],floc=0)# floc=-0.00000001)

estimated_mu = np.log(scale)
estimated_sigma = s        
mu_sig[i].extend([estimated_mu,estimated_sigma])

或者

stats.lognorm匹配的另一种方法是匹配log(data) 使用stats.norm.fit

logdata = np.log(data)
estimated_mu, estimated_sigma = stats.norm.fit(logdata)

python中的对数正态分布 - 问答 - Python中文网https://stackoverflow.com/questions/18534562/scipy-lognormal-fittinghttps://stackoverflow.com/questions/18534562/scipy-lognormal-fittingFitting Lognormal Data

4.其他方法

scipy.stats.lognorm — SciPy v1.7.1 Manual

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: scipy.stats.ttest_ind 是用来做独立样本 t 检验的函数。使用方法为:scipy.stats.ttest_ind(a, b, equal_var=True/False)。a, b 分别为两组独立样本的数据。equal_var 参数表示是否假设两组样本的方差相等,默认为 True。如果结果的 p 值小于 0.05,则可以拒绝原假设,即两组样本的均值有显著差异。 ### 回答2: scipy.stats.ttest_ind 是一个用于执行独立两样本 t 检验的函数。该函数用于比较两个独立样本的均值是否具有统计学上的显著差异。 使用 scipy.stats.ttest_ind 函数的一般步骤如下: 1. 导入所需的库和模块:首先,需要导入 scipy 和 numpy 库,以及从 scipy.stats 模块中导入 ttest_ind 函数。 2. 准备数据:准备两个独立样本的数据。可以使用 numpy 数组、Pandas 的数据框或其他数据结构来存储数据。 3. 执行 t 检验:使用 ttest_ind 函数执行独立两样本 t 检验。该函数的语法为: `scipy.stats.ttest_ind(a, b, equal_var=True)` 其中,a 和 b 是两个要比较的独立样本,equal_var 参数表示是否假设两个样本具有相同的方差。如果为 True,则假设方差相等;如果为 False,则假设方差不等。 4. 解释结果:根据 t 检验的结果,判断两个样本均值是否存在显著差异。通常需要检查返回的 p 值,如果 p 值小于预设的显著性水平(通常为 0.05),则可以拒绝原假设,即认为两个样本的均值存在显著差异。 值得注意的是,ttest_ind 函数还返回一个 t 值,表示两个样本均值之间的差异程度,以及一个表示自由度的值。 综上所述,使用 scipy.stats.ttest_ind 函数可以比较两个独立样本的均值是否存在显著差异。正确地应用该函数可以帮助我们进行统计学上的推断和决策。 ### 回答3: scipy.stats.ttest_ind是scipy库中的一个函数,用于进行两组独立样本的t检验。下面是如何使用该函数的基本步骤: 1. 导入scipy.stats模块:首先需要导入scipy库中的stats模块,该模块包含了很多统计分析的函数。 2. 创建两组样本数据:根据需要,可以创建两个长度相同的NumPy数组或Python列表,表示两组样本数据。 3. 进行t检验:使用ttest_ind函数进行t检验,该函数接受两组样本数据作为参数,并返回一个包含t统计量和p-value的元组。 示例代码如下: ```python import scipy.stats as stats import numpy as np # 创建两组样本数据 sample1 = np.array([1, 2, 3, 4, 5]) sample2 = np.array([2, 4, 6, 8, 10]) # 进行t检验 t_statistic, p_value = stats.ttest_ind(sample1, sample2) # 打印结果 print("t统计量:", t_statistic) print("p-value:", p_value) ``` 在这个示例中,我们创建了两组样本数据sample1和sample2,然后使用ttest_ind函数进行t检验,并将返回的t统计量和p-value赋给变量t_statistic和p_value。最后将结果打印出来。 需要注意的是,该函数假设两组样本数据的方差相等。如果两组样本数据的方差不相等,可以使用scipy.stats.ttest_ind函数的equal_var参数设置为False,进行Welch's t检验。修改示例代码如下: ```python # 进行Welch's t检验 t_statistic, p_value = stats.ttest_ind(sample1, sample2, equal_var=False) ``` 这样就可以使用scipy.stats.ttest_ind函数进行两组独立样本的t检验了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值