nishiru3の日記

備忘録です。ネットのゴミ。

リダイレクトでPOSTの確認

入力値の確認

POST値の確認を別ページにせずに現在のページで処理する方法である。

ソース

入力および確認のページのソースは次のとおりである。

<?php
/**
 * POST値が記入されていない場合、このページに戻る。
 */
session_start();
if(!empty($_POST)){
    if($_POST['name'] == '') {
        $error['name']='blank';
    }
    // エラーがない場合、sessionに変数を保存して、
    // headerで次のページに飛ばす。
    if(empty($error)) {
        $_SESSION['join'] = $_POST;
        header('Location: check.php');
        exit();
    }
}
?>
<form action="" method="post" enctype="multipart/form-data">
    名前:<br />
    <input type="text" name="name" size="50" />
    <?php if($error['name']=='blank'): ?>
    <br />名前を記入してください。<br />
    <?php endif; ?>
    <input type="submit" value="送信" />
</form>

入力値を確認してOKだった場合のページの遷移先は次の「check.php」である。

<?php
session_start();
echo '無事記入されています。';
$name = $_SESSION['join']['name'];
echo '名前:'.$name;

再生性(二項分布)

二項分布の再生性

f:id:nishiru3:20180721114346p:plain

二項分布のモーメント母関数

二項分布のモーメント母関数は次の記事を参照。
nishiru3.hatenablog.com

参考文献

数理統計学 (数学シリーズ)

数理統計学 (数学シリーズ)

指数型分布族

一般的な形

指数型分布族の一般的な形を次のとおりとする。
f:id:nishiru3:20180721111316p:plain

ここで、\thetaは自然パラメータ、\psiは分散に関するパラメータである。

この確率関数もしくは密度関数をこの形にできるものは、統一的な取り扱いができるため、便利である。また指数型分布族は十分性の議論でも出てくる。

期待値

指数型分布族の期待値を求める。

f:id:nishiru3:20180721110741p:plain

f:id:nishiru3:20180721110933p:plain

分散

f:id:nishiru3:20180721111107p:plain

f:id:nishiru3:20180721111453p:plain

事例

正規分布を指数型分布族への変形は次の記事を参照。

nishiru3.hatenablog.com

参考文献

以下の参考文献では、
f:id:nishiru3:20180721110438p:plain
の式を対象として期待値と分散を導出しているが、本稿での式の形であっても導出は難しくない。

一般化線形モデル入門 原著第2版

一般化線形モデル入門 原著第2版

原著は次の本。3rdは持っているが、4thが出てる模様。地味に巻末の確率分布同士の関係の図が好き。

An Introduction to Generalized Linear Models (Chapman & Hall/CRC Texts in Statistical Science)

An Introduction to Generalized Linear Models (Chapman & Hall/CRC Texts in Statistical Science)

max,minの分布

maxの分布

f:id:nishiru3:20180716122420p:plain

minの分布

f:id:nishiru3:20180716122503p:plain

参考文献

明解演習 数理統計 (明解演習シリーズ)

明解演習 数理統計 (明解演習シリーズ)

確率と統計 (現代基礎数学)

確率と統計 (現代基礎数学)

ワイブル分布の期待値と分散

密度関数

ワイブル分布の密度関数は次のとおりである。
f(x) = \dfrac{p}{\theta}\left(\dfrac{x}{\theta}\right)^{p-1}\exp\left\{-\left(\dfrac{x}{\theta}\right)^p\right\}

n次のモーメント

期待値や分散を求める前に、n次モーメントを求めておく。定義式に従い、
\int_0^{\infty}x^n \dfrac{p}{\theta}\left(\dfrac{x}{\theta}\right)^{p-1}\exp\left\{-\left(\dfrac{x}{\theta}\right)^p\right\}dx

ここで変数の置換を行う。
t = \left(\dfrac{x}{\theta}\right)^p
x = \theta t^{1/p}
dt = \dfrac{p}{\theta}\left(\dfrac{x}{\theta}\right)^{p-1}dx
dx= \left(\dfrac{p}{\theta}\right)^{-1}\left(\dfrac{x}{\theta}\right)^{1-p}dt

積分範囲は変わらないため、まずdtを置換すると、
 = \int_0^{\infty} x^n \left(\dfrac{x}{\theta}\right) \left(\dfrac{x}{\theta}\right)^{p-1} e^{-t} \left(\dfrac{x}{\theta}\right)^{-1} \left(\dfrac{x}{\theta}\right)^{1-p}dt
=\int_0^{\infty} x^n e^{-t} dt
=\int_0^{\infty} \theta^n t^{n/p} e^{-t} dt
=\theta^n \int_0^{\infty} t^{n/p+1-1} e^{-t}dt
=\theta^n \Gamma\left(\dfrac{n}{p}+1\right)

期待値

期待値は、n次モーメントのn=1の時であるので、
E[X]=\theta^1 \Gamma\left(\dfrac{1}{p}+1\right) = \theta \Gamma\left(\dfrac{1}{p}+1\right)

分散

分散は
V(X)=E(X^2)-{ E(X)}^2
により求める。

V(X) = \theta^2 \Gamma\left(\dfrac{2}{p}+1\right) - \theta^2 \Gamma^2\left(\dfrac{1}{p}+1\right)

参考文献

明解演習 数理統計 (明解演習シリーズ)

明解演習 数理統計 (明解演習シリーズ)

文字エンコーディングの変換

文字エンコーディングの変換

WinとかLinuxとか混在していると、文字化けが起こりやすいので変換は重要。

http://php.net/manual/ja/function.mb-convert-encoding.php

ソース

たぶん基本はUTF8で操作して必要に応じて変換するのが良さそう。

<?php
$str = 'ねむい' // UTF8
$str = mb_convert_encoding($str, "cp932",'UTF8');//UTF8からcp932への変換
echo $str.'<br />';