当前位置: 首页 > 面试题库 >

进行2个样本t检验

施永贞
2023-03-14
问题内容

我有一个平均值,分别是样本1和样本2的标准差和n-样本是从样本总体中提取的,但是是由不同的实验室进行测量的。

样本1和样本2的n不同。我想进行加权(考虑n)两尾t检验。

我尝试通过创建带有scipy.stat的模块来使用scipy.stat模块np.random.normal,因为该模块仅获取数据,而不获取诸如mean和std
dev之类的stat值(可以直接使用这些值)。但这没有用,因为数据数组必须大小相等。

对于如何获得p值的任何帮助将不胜感激。


问题答案:

如果您将原始数据作为数组ab,则可以使用scipy.stats.ttest_ind参数equal_var=False

t, p = ttest_ind(a, b, equal_var=False)

如果只有两个数据集的摘要统计信息,则可以使用scipy.stats.ttest_ind_from_stats(在0.16版中添加到scipy中)或通过公式(http://en.wikipedia.org/wiki/Welch%27s_t_test)计算t值。

以下脚本显示了可能性。

from __future__ import print_function

import numpy as np
from scipy.stats import ttest_ind, ttest_ind_from_stats
from scipy.special import stdtr

np.random.seed(1)

# Create sample data.
a = np.random.randn(40)
b = 4*np.random.randn(50)

# Use scipy.stats.ttest_ind.
t, p = ttest_ind(a, b, equal_var=False)
print("ttest_ind:            t = %g  p = %g" % (t, p))

# Compute the descriptive statistics of a and b.
abar = a.mean()
avar = a.var(ddof=1)
na = a.size
adof = na - 1

bbar = b.mean()
bvar = b.var(ddof=1)
nb = b.size
bdof = nb - 1

# Use scipy.stats.ttest_ind_from_stats.
t2, p2 = ttest_ind_from_stats(abar, np.sqrt(avar), na,
                              bbar, np.sqrt(bvar), nb,
                              equal_var=False)
print("ttest_ind_from_stats: t = %g  p = %g" % (t2, p2))

# Use the formulas directly.
tf = (abar - bbar) / np.sqrt(avar/na + bvar/nb)
dof = (avar/na + bvar/nb)**2 / (avar**2/(na**2*adof) + bvar**2/(nb**2*bdof))
pf = 2*stdtr(dof, -np.abs(tf))

print("formula:              t = %g  p = %g" % (tf, pf))

输出:

ttest_ind:            t = -1.5827  p = 0.118873
ttest_ind_from_stats: t = -1.5827  p = 0.118873
formula:              t = -1.5827  p = 0.118873


 类似资料:
  • 我有两个cardlets Java卡,在同一个智能卡上,我想进行通信。 我可以选择一个小程序,然后发送相应的APDU,然后取消选择它并选择另一个等等...我想知道是否可以使用逻辑通道更正确地完成它?我的意思是使用一种可以允许我不为每个APDU命令选择/取消选择每个小程序的方法? 提前感谢:)

  • 我有一个“线程组”,其中有10个“HTTP请求”。我想在每个线程中随机执行其中的任何一个, 我有这10个请求,每一个都包含不同的图像标签在正文。 由于我希望随机地向图像添加不同的标记,所以我希望我的JMeter脚本在每个线程中一次性运行这些请求中的任何一个。用JMeter可以吗?怎么做?

  • 对不起,我知道以前有人问过这个问题,但其他答案对我没有任何帮助。 PhpStorm一直使用4个空格来缩进,这让我抓狂。该文件是一个. php文件,我所知道的所有设置都设置正确。我已经检查了这些东西: 1.)编辑器|代码样式|“检测并使用现有文件缩进”未选中(文件仍使用2个空格) 2.)编辑器|代码样式|PHP|“选项卡大小” 3.)我已重新启动PhpStorm 4.)我已经关闭并重新打开了文件。

  • 问题内容: 我有一个简单的表,其中包含一些虚拟数据设置: 我可以通过执行以下sql(MSSQL 2008)语句来选择运行总计: 这将给我如下结果: 现在可以只为每个用户检索最新的行吗?因此结果将是: 我要这样做正确吗?任何建议或遵循的新路径都将是很棒的! 问题答案: 试试这个: SQL小提琴演示

  • lipse插件尝试“本地”运行一个新的Web应用程序(从Eclipse内部,使用内置的Jetty容器)。我正在遵循本GWT教程中的说明,并遇到了一些问题,大概是因为我如何定义模块。 我有一个具有以下目录结构的Web应用程序项目: 我希望我的应用程序有两个模块:,即“公共网站”,以及当用户进入时加载的模块,然后还有,仅在用户登录后下载,并包含站点的“私有应用程序”功能。 : : : -ddatast

  • 嗨,使用angular 2作为密码字段,我必须设置“密码应该至少有1个大写字母,1个小写字母,1个数字,1个特殊字符,最少8个字符,最多16个字符” 因为我已经完成了“最少8个字符,最多16个字符”。 但我无法为其余的东西设置至少1个大写字母,1个小写字母,1个数字,1个特殊字符。 请帮我一下 预先感谢