読者です 読者をやめる 読者になる 読者になる

Kyoto.pmに参加して、LTしました

Kyoto.pm 05 Tech Talk on Zusaar に参加しました。
nekokakさんのClutchの話や、songmuさんのTeng::Plugin::SearchJoinedの話など、色々聞けて面白かったです。


LTはABテストを少しやって感じたことがあったので、ABテストの有意差検定の話をした。

有意差測るときに95%は厳しすぎるかもしれないということと、Statistics::PointEstimationを使えば、簡単に有意差検定できるよという話です。

use v5.14;
use strict;
use warnings;
use Statistics::PointEstimation;

my $data = [ [300, 1000], [350, 1000] ];
my $significance = $ARGV[0] // 95;

my $a_stats = stats($data->[0]);
my $b_stats = stats($data->[1]);

printf("%2.4f%%\t%2.4f%%\t%2.4f%%\n", $a_stats->lower_clm * 100, $a_stats->mean * 100, $a_stats->upper_clm * 100);
printf("%2.4f%%\t%2.4f%%\t%2.4f%%\n", $b_stats->lower_clm * 100, $b_stats->mean * 100, $b_stats->upper_clm * 100);

say $b_stats->lower_clm > $a_stats->upper_clm ? 'significant' : 'not significant';

sub stats {
    my $data = shift;

    my $mean     = $data->[0] / $data->[1];
    my $variance = $mean * ( 1 - $mean );

    my $stats = Statistics::PointEstimation::Sufficient->new;
    $stats->set_significance($significance);
    $stats->load_data($data->[1], $mean, $variance);
    return $stats;
}

# perl interval_estimation.pl 95
# 27.1564%        30.0000%        32.8436%
# 32.0402%        35.0000%        37.9598%
# not significant

# perl interval_estimation.pl 90
# 27.6141%        30.0000%        32.3859%
# 32.5167%        35.0000%        37.4833%
# significant

LT始める前にIRC切ろうかと思ったけど、大丈夫だろうと思ってLTしてたら、IRCで名前呼ばれてIRC光ってしまった。今後は気をつけよう。


何はともあれ、Kyoto.pm楽しかったです。shiba_yu36さん、お疲れさまでした