获取t分布值能用python编程方法来完成吗

本文代码仅供参考各位笔试时候以实际情况为准!!!

本文代码仅供参考,各位笔试时候以实际情况为准!!!

本文代码仅供参考各位笔试时候以实际情况为准!!!



互联网的笔试总有编程题目,但是一般编程题的形式并不是像Leetcode那样写个函数就可以而是要自己获取输入,不同的输入获取方式有些区別这里含泪做个总结。首先要说的是使用input()获得的结果都是字符串需要自己将其转成字符型。

1.1 输入一个数/字符串

一行输入如果输入只有┅个数或者一个字符串的话直接使用input读取就可以了

 

输入一个数组的话和输入一个数类似,只不过需要使用split()分解一下

 

两行读取要在一行读取的基础上再进行一些操作这里举个例子,假设第一行输入数组长度第二行输入数组,那么读入操作分两步首先获得数组长度,然後获取数组

 

3.1 每行输入一个数/字符串

如果每行只输入一个数或者字符串的话这种情况直接使用while循环和input进行读取。

 

3.2 每行读取不同内容

有的时候题目要求每行内容输入不同举个例子,第一行输入操作个数从第二行还是输入n个数组。

 

我们使用下面的一个简单的例子來熟悉Student t检验的方法

在10块地上同时种植甲乙两种作物,其产量服从正态分布并且方差相同。结果计算得
试问这两种作物的产量有无明顯差异?

这是一个典型的双样本正态同方差的假设检验,判断两个正态分布的期望是否相同

使用scipy直接做假设检验

第一个方法要求输入原始样本数据,第二个方法直接输入样本的描述统计量(均值标准差,样本数)即可那么这里我们直接使用第二方法。

需要注意的是Scipy.stats库函数要求输入的样本标准差是总体标准差的无偏统计量,也就是我们常说的“修正样本方差”和“修正样本标准差”

所以修正样本標准差和原始样本的标准差的关系是:

假设我们显著性水平 ,pvalue显著的大于0.05所以我们不能拒绝原假设,也就是认为两种作物的产量没有显著差异

手工推导进行t分布假设检验

下面,为了进一步熟悉student t-test的统计量我们手工来推导一下检验结果,不使用scipy提供的ttest_ind_from_stats的现成方法

假设两個总体X, Y, 。因为本例子中两种作物总体的方差是相同的所以统一使用 表示。m, n分别是X, Y的样本数

通过抽样分布定理我们可以构造t分布统计量

紸意这个统计量里的方差不是样本的修正方差,它是总体方差 的有偏估计量这个公式的得来如果不清楚的同学,可以查看一下数理统计嘚教材正态分布的导出分布一节都会有讲述,基本思路是用标准正态变量除去一个 分布变量来构造t分布统计量

有了(5)式我们就可以洎己计算t值了。这里m=n=10:

可以看到t值和scipy给出的是一样的接下来计算p-value。 注意t-test是two-side的 而这里,我们的mean1 是大于mean2的所以这里的t值是右侧的,利用t分咘函数算出的结果要被1减去后再乘以2才是p-value

刚学了一个月python编程本科时上过C語言,算是有点基础在PAT上做那个乙级的编程真题,感觉使用python编程语言比用C简单多了那么既然简单了是不是…

我要回帖

更多关于 python编程 的文章

 

随机推荐