Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何确定shell中的统计显著性_Shell_Unix_Awk_Statistics_Gnuplot - Fatal编程技术网

如何确定shell中的统计显著性

如何确定shell中的统计显著性,shell,unix,awk,statistics,gnuplot,Shell,Unix,Awk,Statistics,Gnuplot,我想使用shell脚本确定我的结果的统计意义。我的输入文件显示了10000次观察中每次试验的错误数。部分内容如下:(使用至少有1个错误的阈值) 然后我计算了每个编号错误的概率,我计算为: awk '{ count[$0]++; total++ } END { for(i in count) printf("%d %.3f\n", i, count[i]/total) }' ifile.txt | sort -n > ofile.txt 其中,ofile.txt中的第一列显示错误数,第二

我想使用shell脚本确定我的结果的统计意义。我的输入文件显示了10000次观察中每次试验的错误数。部分内容如下:(使用至少有1个错误的阈值)

然后我计算了每个编号错误的概率,我计算为:

awk '{ count[$0]++; total++ } 
END { for(i in count) printf("%d %.3f\n", i, count[i]/total) }' ifile.txt | sort -n > ofile.txt
其中,ofile.txt中的第一列显示错误数,第二列显示其概率

ofile.txt
1 0.133
2 0.400
3 0.200
4 0.200
6 0.067
现在,我需要确定该结果的统计显著性,例如,突出显示在1%水平上不具有统计显著性的结果。i、 e.我们将接受p值小于0.005的错误,如果错误的p值大于0.005,我们将拒绝该错误

在shell中,我想不出任何方法来实现这一点。有人能帮我/给我提些建议吗

欲望输出类似于:

outfile.txt
1 99999  
2 0.400
3 0.200
4 0.200
6 99999

在这里,我假设在1%的水平上显示1个错误的概率在统计上不显著,但显示2个错误的概率在统计上显著,以此类推。

没有统计教育或gnuplot经验,要准确地解释解决方案所需的方法有点困难。这个问题可能描述得不够好,或者我的知识不足以应付

不管是哪种方式,在查看了显示的数据和所需输出之间的关系后,我提出了以下Awk脚本来实现它:

$ cat script.awk
function abs(v) { return v < 0 ? -v : v }
{ a[$0]++ }
END {
    obs = 10000
    sig = 1
    for (i in a) {
        r = a[i]/NR
        if (abs(r-sig/10) <= sig/20)
            print i, obs-sig
        else
            printf "%d %.3f\n", i, r
    }
}
$ awk -f script.awk ifile.txt | sort > outfile.txt
$ cat outfile.txt 
1 9999
2 0.400
3 0.200
4 0.200
6 9999
$cat script.awk
函数abs(v){返回v<0?-v:v}
{a[$0]+}
结束{
obs=10000
sig=1
为了(我在a){
r=a[i]/NR
if(abs(r-sig/10)outfile.txt
$cat outfile.txt
1 9999
2 0.400
3 0.200
4 0.200
6 9999
这假设
9999
(10000(观察次数)-1(错误))是指预期输出中第1行和第5行中的第二个字段,而不是
99999


此外,如果使用GNU Awk,使用
asorti

可以消除对
排序管道的需求,因为没有统计教育或gnuplot经验,要准确地解释解决方案所需的方法有点困难。问题可能描述得不够好,或者我的知识不足

不管是哪种方式,在查看了显示的数据和所需输出之间的关系后,我提出了以下Awk脚本来实现它:

$ cat script.awk
function abs(v) { return v < 0 ? -v : v }
{ a[$0]++ }
END {
    obs = 10000
    sig = 1
    for (i in a) {
        r = a[i]/NR
        if (abs(r-sig/10) <= sig/20)
            print i, obs-sig
        else
            printf "%d %.3f\n", i, r
    }
}
$ awk -f script.awk ifile.txt | sort > outfile.txt
$ cat outfile.txt 
1 9999
2 0.400
3 0.200
4 0.200
6 9999
$cat script.awk
函数abs(v){返回v<0?-v:v}
{a[$0]+}
结束{
obs=10000
sig=1
为了(我在a){
r=a[i]/NR
if(abs(r-sig/10)outfile.txt
$cat outfile.txt
1 9999
2 0.400
3 0.200
4 0.200
6 9999
这假设
9999
(10000(观察次数)-1(错误))是指预期输出中第1行和第5行中的第二个字段,而不是
99999


此外,如果使用GNU Awk,则可以通过使用
asorti

来消除对管道进行
排序的需要。您如何定义“统计显著性”?这是高于给定阈值的值吗?请提供一些解释,以及给定输入的预期输出。@fedorqui非常感谢您的回答。我想将其定义为接受p值<0.005的错误。因此,如果错误的p值>0.005,则会被拒绝。是的,我使用了threshold至少有1个错误。没有错误的试验被排除在分析之外。很抱歉,我无法理解预期结果。我的意思是,你应该提问,并展示你希望输出的结果。@fedorqui。。正如建议的那样,我修改了问题并等待一些帮助/建议。。谢谢。你愿意吗在所需输出中表示
9999
,而不是
99999
,还是表示
100000
观察值而不是
10000
?如何定义“统计显著性”?这是高于给定阈值的值吗?请提供一些解释,以及给定输入的预期输出。@fedorqui非常感谢您的回答。我想将其定义为接受p值<0.005的错误。因此,如果错误的p值>0.005,则会被拒绝。是的,我使用了threshold至少有1个错误。没有错误的试验被排除在分析之外。很抱歉,我无法理解预期结果。我的意思是,你应该提问,并展示你希望输出的结果。@fedorqui。。正如建议的那样,我修改了问题并等待一些帮助/建议。。谢谢。你愿意吗在所需输出中表示
9999
,而不是
99999
,或者您的意思是
100000
观察值而不是
10000