平均寿命まで使ったら、半分以上がもう壊れていた
8個の軸受を耐久試験にかけて、全部壊れるまで回し切った。壊れた時間は480 / 700 / 950 / 1120 / 1380 / 1560 / 1920 / 2400時間。電卓で平均を取ると1,313.75時間、ワイブル分布から推定した平均寿命(MTTF)は1,332.9時間。ほぼ同じ数字が出る。
ではこの軸受の交換周期を1,300時間にしていいのか。答えは明確にノーだ。推定した分布に1,332.9時間を代入すると、その時点ですでに54.2%が壊れている。半分以上が交換日を迎える前に止まっている運用になる。
信頼性の世界で交換周期の根拠に使うのは平均ではなくB10寿命——10%が壊れる時間だ。同じ8個のデータから出したB10寿命は503.0時間で、平均寿命の2.65分の1しかない。この「平均とB10がどれだけ離れるか」を決めているのが、故障時間の散らばり方を表すたった1つの数字、形状パラメータ mである。
このツールは、故障した時間を並べるだけでその m と尺度パラメータ η を推定し、B10寿命・MTTF・故障モードの判定まで一気に出す。以下、m とは何なのか、なぜ平均では駄目なのか、そして試験を途中で打ち切った未故障のデータをどう扱うのかを順に書いていく。
「確率紙のPDFは山ほどあるのに、数字を入れる場所がなかった」
ワイブル解析は「ワイブル確率紙にプロットして定規で直線を引く」という手作業を前提に組み立てられた手法だ。だから「ワイブル確率紙」で検索すると、印刷用のPDFと、その紙の読み方を解説した資料は大量に出てくる。ところがデータを入力したら m と η が出るブラウザ完結のツールとなると、日本語圏ではほとんど見当たらない。
汎用の統計計算サイトに1機能として載っているものはある。ただし試すと3点で止まる。(a) 打切りデータを入れられない、(b) 出てきた m が何を意味するのかを言葉にしてくれない、(c) 確率紙のプロットが出ないので当てはまりの良し悪しを目で確認できない。数値だけ返ってきても、それが信用できる推定なのかどうかが分からない。
とくに引っかかったのが打切りだ。耐久試験は予算と納期の都合で「全部壊れるまで」はまず回せない。1,000時間で試験を終えれば、まだ生きている個体が必ず残る。市場データでも「まだ使われている個体」は同じ扱いになる。つまり実務のデータには必ず未故障の個体が混ざるのに、その処理方法が分からず、せっかく取った試験データが表計算ソフトの中で放置される。そういう場面を減らしたかった。
実装で最初に決めたのは、推定方法をメジアンランク回帰(MRR)1本に絞ることだった。最尤法(MLE)は統計的な性質では優れているが、反復計算が必要なうえに確率紙に手で引いた直線と数値が一致しない。紙で解いた答えと画面の数字が合わなければ、初学者は「どちらが間違っているのか」で足を止めてしまう。手計算・確率紙・QC検定の解法と揃うMRRを採用し、MLEは見送った。この判断の詳細は仕組みの節に書く。
ワイブル分布とは何か——ばらつきを2つの数字で書く
寿命はばらつく、という当たり前から始める
同じロットの部品を10個、同じ日に同じ条件で使い始めても、壊れる時間は揃わない。3日で逝くものもあれば、3年動き続けるものもある。この「揃わなさ」こそが寿命という量の本質で、平均値1つで代表させると必ずどこかで実態を見誤る。
そこで、故障時間そのものではなく故障時間の散らばり方を数式で書く。ある時間 t までに故障している確率——不信頼度 F(t) を表す式として、信頼性工学が標準的に使うのがワイブル分布だ。
ワイブル分布 とは——F(t) = 1 − exp(−(t/η)^m)
式はこれだけである。
F(t) = 1 − exp(−(t/η)^m) 不信頼度(t までに壊れている確率)
R(t) = exp(−(t/η)^m) 信頼度(t まで生き残っている確率)
λ(t) = (m/η)·(t/η)^(m−1) 瞬間故障率
パラメータは2つしかない。
- m(形状パラメータ・ワイブル係数): ばらつきの狭さと、故障率が時間とともにどう動くかを決める。瞬間故障率の式を見ると、t の指数が
m − 1になっている。つまり m < 1 なら故障率は時間とともに下がり、m = 1 なら一定、m > 1 なら上がる。この一行がこの分布の核心で、故障モードの判定はここから来ている。 - η(尺度パラメータ): 時間軸の伸び縮みを決める。t = η を式に入れると
F(η) = 1 − exp(−1) = 0.632。m の値が何であっても、必ず63.2%が壊れている時間が η になる。
たとえ話にすると分かりやすい。同じ日に入学した生徒が、いつ学校を辞めるかを考える。最初の1週間で辞める子が集中して、残った子はその後ずっと通い続けるなら m < 1。学年に関係なく毎年一定の割合が辞めていくなら m = 1。卒業間際にきつくなって辞める子が増えるなら m > 1。同じ「辞める人数」でも集まり方が全然違う。この違いを1つの数字で表しているのが m だ。
なお、故障率が時間とともに下がって→一定になって→上がる、という一生を1本の曲線で描いたものがバスタブ曲線で、m はその曲線のどこにいるかを示す座標になっている。ワイブル分布そのものの数学的な性質はWikipedia のワイブル分布に整理されている。
なぜ2回対数を取るのか——ワイブル確率紙の正体
F(t) の式を、m と η が求まる形に変形する。まず両辺を1から引く。
1 − F = exp(−(t/η)^m)
両辺の自然対数を取る。
ln(1 − F) = −(t/η)^m
−ln(1 − F) = (t/η)^m
右辺が正の値になったので、もう一度対数を取れる。
ln(−ln(1 − F)) = m·ln t − m·ln η
ここで y = ln(−ln(1 − F))、x = ln t と置くと、y = m·x − m·ln η という完全な一次関数になる。傾きがそのまま m で、切片 b から η = exp(−b/m) と逆算できる。
つまりワイブル確率紙とは、縦軸を ln(−ln(1−F)) の目盛で、横軸を ln t の目盛で刻んだ方眼紙にすぎない。歪んだ目盛の紙に点を打って直線が引ければ、その傾きが m であり、紙の上で m と η が読み取れる。コンピュータのない時代に、この「目盛を歪ませる」というアイデアで対数計算を紙に肩代わりさせたわけだ。
メジアンランク法——順位から F を見積もる
ただし問題がある。データとして手元にあるのは「何時間で壊れたか」だけで、各故障時点での F の値は分からない。8個中3番目に壊れた個体は、母集団の何%が壊れた時点なのか。それを順位から見積もるのがメジアンランク法だ。
n個中 i 番目に壊れた個体の F は、Bernard の近似で次のように置く。
F_i = (i − 0.3) / (n + 0.4)
厳密なメジアンランクはベータ分布の中央値として定義されるが、この単純な式で最大0.1ポイントしかずれない(照合の詳細は仕組みの節に書く)。分母が n + 0.4 になっているおかげで最大順位でも F < 1 が保証され、y = ln(−ln(1−F)) が発散しない、という実装上の利点もある。
n = 8 なら、F は 8.33 / 20.24 / 32.14 / 44.05 / 55.95 / 67.86 / 79.76 / 91.67% と並ぶ。この8個の (x, y) に最小二乗法で直線を当てはめれば、m と η が決まる。
B10寿命 とは——η・MTTF との3つは別物
ここで用語を整理しておく。混同されやすいが、3つは全く違う量だ。
| 指標 | 定義 | 式 |
|---|---|---|
| B10寿命 | 10%が故障する時間。交換周期の根拠に使う | η × (−ln 0.9)^(1/m) |
| B50寿命 | 半数が故障する時間(中央寿命) | η × (ln 2)^(1/m) |
| η(尺度パラメータ) | 63.2%が故障する時間 | 回帰の切片から直接 |
| MTTF | 平均寿命。分布の期待値 | η × Γ(1 + 1/m) |
MTTF(Mean Time To Failure)は修理せず使い切る前提の平均寿命で、修理して使い続ける設備のMTBFとは別物である。そしてMTTFは m が小さいほど B10 から離れていく。この記事の冒頭で見た「平均まで使うと54.2%が壊れている」という現象は、MTTF が分布の期待値であって、決して「半分が生き残っている点」ではないことから来ている。B50(中央寿命)ならちょうど半分だが、それでも交換周期には使えない。
なお信頼性のマネジメント全般についてはJIS C 5750-1 ディペンダビリティ マネジメントがシリーズの入口になっている。
m を読み違えると、交換するほど設備が止まる
形状パラメータ m を出す価値は、数字そのものより保全の方針が180度変わる点にある。
m < 1(初期故障・DFR)の部品を定期交換すると、交換するほど止まる。 故障率が時間とともに下がる領域なので、生き残っている個体はもう安定期に入っている。それをわざわざ新品に戻すと、いちばん壊れやすい時期をもう一度やり直すことになる。定期交換は逆効果で、効くのは出荷前のエージング(バーンイン)や製造工程のばらつきを詰める方向だ。
m > 1(摩耗故障・IFR)なのに壊れてから直す運用を続けると、突発停止のコストを払い続ける。 ダメージが蓄積して壊れる領域なので、壊れる前に交換する予防保全が最も効く。B10寿命やB5寿命がそのまま交換周期の根拠になる。
m ≒ 1(偶発故障・CFR)では予防交換しても故障率は下がらない。 指数分布と同じで無記憶性を持つため、新品に替えても壊れる確率は変わらない。冗長化・保護回路・環境改善といった、故障そのものを減らすか、止まらない仕組みを作る方向にコストを振るべき領域になる。
数字の感覚をつかむには、性格の違う2つのデータを並べるのが早い。使用例の節で扱う軸受のケース(m = 2.054)と電子部品のケース(m = 0.478)は、どちらも故障データ8件という同じ規模だが、結果はこうなる。
| 軸受(m = 2.054) | 電子部品(m = 0.478) | |
|---|---|---|
| B10寿命 | 503.0時間 | 5.1時間 |
| MTTF | 1,332.9時間 | 1,243.9時間 |
| MTTF / B10 | 2.65倍 | 242.1倍 |
| MTTF時点の故障率 | 54.2% | 76.6% |
MTTFはどちらも1,200〜1,300時間台でほぼ同じだ。平均寿命だけを見ていたら、この2つは同じ性格の部品に見える。 ところが電子部品側は平均寿命の240分の1の時点でもう1割が壊れており、平均に達した時点では4分の3以上が死んでいる。平均寿命をカタログに書いて交換周期の根拠にした瞬間、市場は不良の山になる。
この考え方は転がり軸受の世界では古くから標準になっていて、JIS B 1518 転がり軸受-動定格荷重及び定格寿命が定める定格寿命 L10 は「同一条件で運転した軸受群の90%が転がり疲れを起こさずに回転できる総回転数」——つまりB10寿命と全く同じ発想である。軸受だけが特別なのではなく、寿命を保証するという行為が本来そういう形をしている。
この4つの場面で、故障データが根拠に変わる
耐久試験のデータから交換周期を決める。 試験室で回し切った個体の故障時間を並べれば、B10寿命がそのまま予防交換の候補になる。摩耗故障の判定が出れば、その根拠込みで保全計画に載せられる。
市場から返ってきた故障品を初期不良と摩耗で切り分ける。 出荷日と故障日の差を時間として入力すれば、m の値が「製造上の欠陥が原因(m < 1)」なのか「使い切って寿命が来た(m > 1)」なのかを分けてくれる。クレーム対応の方向——工程を直すのか、寿命設計を見直すのか——がここで決まる。
試験を途中で止めたデータを捨てずに使う。 1,000時間で試験を打ち切って半分が生き残っていた、というデータでも、打切りにチェックを入れれば推定に組み込める。未故障の個体は「少なくともその時間は生きた」という情報を持っているので、捨てると寿命を短く見積もる方向に偏る。
QC検定や技術士一次の答え合わせに使う。 ワイブル確率紙にプロットして定規で直線を引く問題を解いた後、同じデータを入力すれば m・η・B10寿命が数値で出る。手で引いた直線と回帰直線を見比べられるので、どこで読み間違えたかまで追える。
3ステップで m と B10寿命を出す
ステップ1: 故障した個体の時間を1行ずつ入力する。 単位は時間でも回数でも距離でも構わない。データは3行以上必要で、最大30行まで追加できる。入力の順番は問わず、内部で時間の昇順に並べ替えてから計算する。ゼロから入力するのが面倒なら、プリセット4件(軸受の疲労故障 / 電子部品の初期故障 / 偶発故障 / リレー開閉試験・打切りあり)から選べば典型的なデータが一括で入る。いずれも教材用に組んだ代表データセットで、特定製品の実測値ではない。
ステップ2: まだ壊れていない個体は打切りにチェックを入れる。 試験終了時点で未故障だった個体は、その時間を入れたうえで打切りにする。チェックした行は確率紙の点にはならないが、Johnson の平均順位法を通して他の故障の順位に効いてくる。
ステップ3: 形状パラメータ m と寿命を読む。 m・η・B{x}寿命・B50寿命・MTTF・当てはまりの良さ R² が算出され、m の値から初期故障・偶発故障・摩耗故障のどれにあたるかの判定と、その意味・とるべき対策が文章で示される。求めるB寿命の%は1〜50の範囲で変更でき、B5・B10・B50を同じ画面で切り替えられる。図はワイブル確率紙・信頼度曲線・形状パラメータの帯の3つが描かれる。単位ラベルの欄は結果に添える文字列を決めるだけの表示専用で、計算には一切影響しない。
実際に計算してみた8ケース
以下の数値はすべて、実装前にpythonのリファレンス実装で検算し、テストベクトルとして固定したものをそのまま載せている。各ケースに「入力値 → 結果 → 解釈」を付けた。
ケース1: 軸受8個を寿命まで回し切った(摩耗故障)
- 入力: 480 / 700 / 950 / 1120 / 1380 / 1560 / 1920 / 2400時間、打切りなし、B10指定
- 結果: m = 2.054、η = 1,504.7時間、B10寿命 = 503.0時間、B50寿命 = 1,258.7時間、MTTF = 1,332.9時間、R² = 0.9968(当てはまり良好)、摩耗故障(IFR)判定
- 解釈: m が2を超えているので故障率は時間とともに増加している。予防交換が最も効く領域で、B10寿命の503時間が交換周期の第一候補になる。冒頭で見たMTTFとB10の2.65倍の開きはここから出た値だ。R² 0.9968は確率紙の8点がほぼ一直線に乗っている状態を意味する。
ケース2: 電子部品の初期故障(m < 1)
- 入力: 5 / 20 / 60 / 150 / 400 / 900 / 1800 / 3500時間、打切りなし、B10指定
- 結果: m = 0.478、η = 570.1時間、B10寿命 = 5.1時間、B50寿命 = 264.7時間、MTTF = 1,243.9時間、R² = 0.9895、初期故障(DFR)判定
- 解釈: 故障時間が5時間から3,500時間まで3桁近く散らばっており、m は1を大きく下回った。故障率は時間とともに下がっていくので、この部品に定期交換をかけるのは逆効果になる。効くのは出荷前のエージングと工程のばらつき低減だ。B10が5.1時間、B50が264.7時間、MTTFが1,243.9時間と、指標ごとに2桁ずつ跳ね上がっていくのが m < 1 の分布の姿である。
ケース3: 偶発故障(指数分布相当・m ≒ 1)
- 入力: 100 / 240 / 380 / 600 / 800 / 1150 / 1580 / 2500時間、打切りなし、B10指定
- 結果: m = 1.039、η = 1,005.2時間、B10寿命 = 115.2時間、B50寿命 = 706.3時間、MTTF = 989.9時間、R² = 0.9989、偶発故障(CFR)判定
- 解釈: m が偶発故障帯(0.95〜1.05)の内側に入った。故障率は時間によらず一定で、原因は異物・過負荷・誤操作といった時間に依存しない事象と考えられる。ここで注目したいのはMTTF(989.9)と η(1,005.2)がほぼ一致している点で、これは m ≒ 1 のときにだけ起こる。MTTF = η × Γ(1 + 1/m) の Γ(2) = 1 だからで、m が1から離れるほど両者は乖離する。この領域では予防交換に効果がないので、冗長化や環境改善に投資先を切り替えるべきだ。
ケース4: リレー開閉試験(10個中6個が打切り)
- 入力: 30,000(故障)/ 45,000(打切)/ 52,000(故障)/ 70,000(打切)/ 90,000(故障)/ 100,000(打切)/ 120,000(打切)/ 140,000(故障)/ 150,000(打切)/ 150,000(打切)、単位は「回」、B10指定
- 結果: 調整順位が 1 → 2.1111 → 3.3810 → 5.2857、メジアンランクが 6.73 / 17.41 / 29.62 / 47.94%。m = 1.418、η = 184,753回、B10寿命 = 37,806回、B50寿命 = 142,682回、MTTF = 168,052回、R² = 0.9890、摩耗故障(IFR)判定
- 解釈: 打切りが混ざると調整順位が1刻みでなくなるのが一目で分かるケースだ。1件目は1、2件目は2ではなく2.1111、3件目は3.3810、4件目に至っては5.2857まで飛ぶ。打切りとなった6個は「その時間までは生きていた」という情報を持っており、その分だけ後続の故障の順位が上に押し上げられている。この処理を省いて故障4件だけで計算すると、寿命を実態より短く見積もることになる。なお故障件数が4件と少ないため、m の推定値は幅を持って読む必要がある旨の注記が出る。
ケース5: 公表計算例との突合(打切りの実装検証)
- 入力: 5,100(故障)/ 9,500(打切)/ 15,000(故障)/ 22,000(打切)/ 40,000(故障)、B10指定
- 結果: 調整順位 1 / 2.25 / 4.125、メジアンランク 12.96 / 36.11 / 70.83%。m = 1.060、η = 32,550.8、B10寿命 = 3,898.8、MTTF = 31,809.6、R² = 0.9998
- 解釈: これは信頼性解析ソフトのベンダーが公表している rank adjustment の解説例と同じ入力で、公表されている調整順位(1 / 2.25 / 4.125)とメジアンランク(13 / 36 / 71%)に完全に一致した。打切りの処理が正しく実装されていることの根拠になるケースである。また m = 1.060 は摩耗故障と判定されるが偶発故障帯(0.95〜1.05)のすぐ外側にあるため、境界に近く、サンプルが増えると判定が移りうる旨の注記が付く。B10寿命の3,898.8は最初の故障(5,100)より手前で、これはデータの外側への外挿値になる。
ケース6: 同じ軸受データでB5寿命を出す
- 入力: ケース1と同じ軸受8個のデータ、求めるB寿命を**5%**に変更
- 結果: m = 2.054、η = 1,504.7時間、R² = 0.9968(ここまではケース1と完全に同じ)、B5寿命 = 354.3時間
- 解釈: m と η は入力データだけで決まるので、B寿命の%を変えても動かない。変わるのは寿命の値だけだ。%を10から5へ半分にすると、寿命は503.0 → 354.3時間で約0.70倍にしかならない。安全側に振りたいときにどれだけ寿命を諦めることになるのか、この比率が一目で分かる。B10より低い%はデータの外側への外挿になるため、注記が添えられる。
ケース7: 混合故障モード(当てはまり不良)
- 入力: 10 / 30 / 900 / 1000 / 1100 / 1200 / 1300 / 1400時間、打切りなし、B10指定
- 結果: m = 0.489、η = 1,141.9時間、B10寿命 = 11.5時間、B50寿命 = 540.0時間、MTTF = 2,377.2時間、R² = 0.7744(当てはまり不良)、初期故障(DFR)判定
- 解釈: 確率紙の点が直線に乗らないとはどういうことかを示すケース。データをよく見ると10時間・30時間で壊れた2件と、900〜1400時間に固まった6件の2つの群に分かれている。ワイブル分布1本ではこの形を説明できないので R² が0.80を割った。ここで重要なのは、当てはまりの評価と故障モードの判定は別の軸だという点だ。m = 0.489という数字だけを見れば初期故障だが、実態は「初期不良の2件」と「摩耗で寿命が来た6件」が混ざっているだけで、m の値には意味がない。この場合は故障品の分解調査で原因を分けてから、群ごとに再入力するのが筋になる。
ケース8: データが密集して形状パラメータが暴れる
- 入力: 980 / 1000 / 1010 / 1020 / 1030時間、打切りなし、B10指定
- 結果: m = 54.137、η = 1,017.0時間、B10寿命 = 975.6時間、B50寿命 = 1,010.2時間、MTTF = 1,006.5時間、R² = 0.9987
- 解釈: 故障時間が980〜1030時間の狭い範囲に固まっているため、ln t の幅が0.0498しかない。横軸の幅がほぼゼロなのに縦軸は普通に動くので、傾き=m が巨大な値になる。R² は0.9987と高いが、これは5点が偶然直線に乗っているだけで、推定が信用できることを意味しない。形状パラメータの帯の表示範囲(0〜4)を大きく超えるため、マーカーは右端に固定されて実際の数値が添えられる。データの単位が揃っているか、同じ個体を重複入力していないかを疑うべきサインになる。
実装の中身——なぜMRRを選び、打切りをどう織り込んだか
手法の選択1: メジアンランク回帰か、最尤法か
ワイブルパラメータの推定には大きく2つの流儀がある。
| メジアンランク回帰(MRR) | 最尤法(MLE) | |
|---|---|---|
| 求め方 | 順位からFを見積もり最小二乗で直線を当てる | 尤度関数を最大化する(反復計算) |
| 確率紙との関係 | 直線がそのまま答え。手で引いた線と一致する | 一致しない(紙とは別の基準で決まる) |
| 少サンプル時 | 3点あれば解ける(点が少ないほど直線に乗りやすく R² は高く出る) | 反復計算が収束しないことがある |
| 打切りの扱い | 順位の調整で織り込む | 尤度関数に打切り項を足す |
本ツールはMRRに一本化した。理由は「確率紙に手で引いた直線と数値が一致する」という一点に尽きる。ワイブル解析を学ぶ人はまず確率紙で解くので、そこで得た答えと画面の数字がずれると、どちらが正しいのかで手が止まる。MLEを併記すれば「2つの答えが並ぶ」状態になり、初学者には混乱の元でしかない。統計的性質を重視して MLE を使いたい場面は当然あるが、それは専用の解析ソフトの領分と割り切った。手法の使い分けについてはNIST/SEMATECH e-Handbook の Weibull の項が両者を並べて解説している。
手法の選択2: メジアンランクの近似式
順位から F を見積もる式にも選択肢がある。よく使われるのは平均ランク i/(n+1) と Bernard の近似 (i−0.3)/(n+0.4) の2つだ。採用したのは後者で、理由は厳密なメジアンランク——ベータ分布の中央値——への近さにある。n = 5 のとき厳密値と Bernard 近似はこう並ぶ。
| 順位 | 厳密なメジアンランク | Bernard 近似 | 差 |
|---|---|---|---|
| 1 | 12.945% | 12.963% | +0.018 |
| 2 | 31.381% | 31.481% | +0.100 |
| 3 | 50.000% | 50.000% | 0.000 |
| 4 | 68.619% | 68.519% | −0.100 |
| 5 | 87.055% | 87.037% | −0.018 |
最大でも0.1ポイントしかずれない。この照合はpythonで公表メジアンランク表と突き合わせて確認した。平均ランクを使っても発散はしないが、推定精度は落ちる。
打切りの扱い: Johnson の平均順位法
打切りがあると順位は単純な連番にならない。「1,000時間で打ち切った個体は、もし試験を続けていれば何番目に壊れたか分からない」ので、その不確かさを順位の刻み幅として配分する。使う式は次のとおり。
逆順位 rr = N − j + 1 (その位置を含めて残っている個体数)
増分 I = (N + 1 − 直前の調整順位) / (1 + rr)
調整順位 AR = 直前の調整順位 + I (初期値は 0)
この式のうまいところは、打切りが1件も無ければ I が恒等的に1になる点だ。rr = N − j + 1、直前の調整順位 = j − 1 を代入すると I = (N + 1 − j + 1) / (1 + N − j + 1) = 1 になる。つまり調整順位は 1, 2, 3, … の連番に戻る。おかげで実装を「打切りあり/なし」で分岐させる必要がなく、1本のループで両方を処理できた。分岐が無い分、打切りなしのケースが打切り処理のバグを踏むこともない。
計算フロー
1. 全データを時間の昇順に並べる(同時刻なら故障を先に置く)
N = 全件数、r = 故障件数
2. j = 1..N を走査。打切り行はスキップするが位置 j は消費する
故障行で 逆順位 rr → 増分 I → 調整順位 AR を更新
3. メジアンランク F = (AR − 0.3) / (N + 0.4)
4. 対数変換 x = ln t、y = ln(−ln(1 − F)) ※故障行のみ
5. 最小二乗回帰 m = Sxy / Sxx、b = ȳ − m·x̄
形状パラメータ = 傾き m、尺度パラメータ η = exp(−b / m)
決定係数 R² = Sxy² / (Sxx · Syy)
6. B_x寿命 = η × (−ln(1 − x/100))^(1/m)
B50寿命 = η × (ln 2)^(1/m)
MTTF = η × Γ(1 + 1/m)
7. 故障モード判定は 0.95≦m≦1.05 → 偶発、m<1 → 初期、それ以外 → 摩耗 の順
手順7の判定順序は入れ替えてはいけない。「m < 1 なら初期故障」を先に書くと、m = 0.98 が偶発故障帯に入っているのに初期故障へ落ちてしまう。偶発故障帯を最初に判定してから残りを振り分ける。
計算例: ケース5の調整順位を手で追う
打切りの処理がいちばん分かりにくいので、公表計算例と同じデータで1つずつ追ってみる。入力は5個中3個が故障、N = 5。
j=1 t=5,100(故障)
rr = 5 − 1 + 1 = 5
I = (5 + 1 − 0) / (1 + 5) = 6/6 = 1
AR = 0 + 1 = 1
F = (1 − 0.3) / (5 + 0.4) = 0.7 / 5.4 = 12.96%
j=2 t=9,500(打切り)→ スキップ。ARは進めないが位置jは消費する
j=3 t=15,000(故障)
rr = 5 − 3 + 1 = 3
I = (6 − 1) / (1 + 3) = 5/4 = 1.25
AR = 1 + 1.25 = 2.25 ← 2 ではなく 2.25 に飛ぶ
F = (2.25 − 0.3) / 5.4 = 36.11%
j=4 t=22,000(打切り)→ スキップ
j=5 t=40,000(故障)
rr = 5 − 5 + 1 = 1
I = (6 − 2.25) / (1 + 1) = 3.75/2 = 1.875
AR = 2.25 + 1.875 = 4.125 ← 3 ではなく 4.125
F = (4.125 − 0.3) / 5.4 = 70.83%
対数変換して回帰にかける。
x = ln t → 8.5370, 9.6158, 10.5966
y = ln(−ln(1−F)) → −1.9745, −0.8029, 0.2088
m = 1.060430、b = −11.018454
η = exp(11.018454 / 1.060430) = 32,550.80
R² = 0.999781
B10 = 32,550.80 × (−ln 0.9)^(1/1.060430)
= 32,550.80 × 0.105361^0.943014 = 3,898.82
検証: この調整順位(1 / 2.25 / 4.125)とメジアンランク(12.96 / 36.11 / 70.83%)は、信頼性解析ソフトのベンダーが公表している計算例の値(1 / 2.25 / 4.125、13 / 36 / 71%)と一致する。増分の式に出てくる「残っている個体数」を逆順位 N − j + 1 と解釈するのが正しいことも、この突合で確認できた。期待値だけを検算しても式の解釈違いは検出できないので、公表例との突合を実装の受け入れ条件に入れている。
Γ関数をLanczos近似で実装した理由
MTTF = η × Γ(1 + 1/m) の Γ をどう計算するかは、地味だが避けて通れない。m < 1 のとき 1 + 1/m は2を大きく超え、たとえばケース2(m = 0.478)では Γ(3.0925) を求める必要がある。引数が整数にならないので階乗では代用できず、テーブル引きでは m が連続値である以上どこかで破綻する。そこで g = 7・係数9個のLanczos近似をローカル関数として実装した。倍精度で相対誤差1e−15程度が出るので、寿命の推定値としては十分すぎる精度になる。m が0.1〜10の範囲なら引数は1.1〜11に収まり、0.5未満で必要になる反射公式の分岐は通らない。
既存のワイブル解析ツールとの違いと、隣のツールとの守備範囲
日本語で「ワイブル解析 計算」を探すと解説記事と確率紙のPDFばかりが出てくる件は前半で触れたとおり。ここでは同じ話を繰り返さず、本ツールが上乗せしている3点と、名前の似たツールとの守備範囲だけを書く。
(1) 打切りデータをそのまま入れられる 汎用計算サイトのワイブル機能は、全数が壊れきったデータしか受け取れないものが多い。本ツールは行ごとに打切りのチェックを持ち、Johnson の平均順位法で調整順位を求めてから回帰に入れる。順位表には打切り行も残すので、打切りのせいで調整順位が1刻みでなくなる様子がそのまま追える。
(2) m を言葉に翻訳する
m = 1.4 という数字だけ返されても、次に何をすればいいかは決まらない。初期故障・偶発故障・摩耗故障のどれにあたるかを判定し、故障率が時間とともに増えるのか減るのか、予防交換が効く領域なのか逆効果なのかまで本文で出す。
(3) 確率紙と信頼度曲線を描く
数値だけのツールでは、点が直線に乗っているのかが分からない。R² の数字と一緒に、確率紙の故障点と回帰直線、そして R(t) の曲線を並べる。当てはまりが悪いときに「どこが外れているか」を目で追えるかどうかが、混合故障モードに気づけるかの分かれ目になる。
同じ「寿命」「信頼性」を扱う4つのツールとの役割分担
このサイトには寿命や信頼性を扱うツールが並んでいて、名前だけ見ると似たものが揃っているように読める。入口と出口は全部違う。
システム信頼性計算は、故障率がすでに分かっている前提で直列・並列・n個中k個の構成から全体の稼働率を出す。本ツールはその入力になる故障率を実データから推定する前段で、順番としては本ツール → システム信頼性計算になる。ベアリング寿命計算は、カタログの動定格荷重から理論寿命 L10 を計算するもので、1個も壊れていなくても答えが出る。本ツールは実際に壊れた実績から推定するので、「カタログはこう言っている」と「現場ではこうだった」を突き合わせる対の関係になる。疲労寿命シミュレーターは応力から何回もつかを出すツールで、入口が時間ではなく応力。工程能力指数 Cp/Cpk 計算が見ているのは作られたモノの寸法のばらつきで、軸が時間ではなく寸法だ。片方は物差しで測るばらつき、もう片方はストップウォッチで測るばらつき、と考えると混ざらない。
読み物:ワイブルという名前と、63.2% という半端な数字
ワイブルは人の名前で、出発点は寿命ではなかった
ワイブル分布の「ワイブル」は、スウェーデンの技術者ヴァロディ・ワイブル(Waloddi Weibull)の名前だ。この分布を世に出したのは1939年、材料の破壊強度のばらつきを扱った論文の中でだった。もともとは寿命の分布ではなく、材料がどれくらいの荷重で壊れるかのばらつきを表す道具として生まれている。
背景にあるのは「鎖は最も弱い環で切れる」という最弱リンクの考え方だ。試験片の中に無数の微小欠陥があり、最も条件の悪い1つが破壊の起点になる。たくさんの値の最小値が従う極値分布として導かれたのがこの形だった。後年、「壊れるまでの時間」も同じ形でよく表せることが分かり信頼性工学の標準になる。強度でも寿命でも同じ式が効くのは、どちらも「弱いところから壊れる」現象だからだ。
参考: Waloddi Weibull - Wikipedia
なぜ η は 63.2% なのか
η は「63.2%が故障する時間」だと説明される。この半端な数字は誰かが決めた基準ではなく、式から必然的に出てくる。信頼度の式に t = η を代入すればいい。
R(η) = exp(−(η/η)^m) = exp(−1^m) = exp(−1) = 0.3679…
括弧の中が 1 になるので、m が何乗されても 1 のままだ。m がいくつであろうと η の時点では必ず 36.8% が生き残り、63.2% が故障している。0.5 でも 2 でも 54 でも変わらない。だから確率紙では、63.2% の横線と回帰直線の交点の横軸を読めばそれが η になる。本ツールが 63.2% の線にだけラベルを付けているのはこのためだ。
確率紙は「目盛が歪んだ方眼紙」だった
ワイブル確率紙は、縦軸を ln(−ln(1−F)) の刻み、横軸を対数の刻みで印刷した紙だ。この歪んだ目盛の上ではワイブル分布に従うデータが直線に並ぶ。
こんな紙が生まれたのは、計算機が無かったからにほかならない。データ1件ごとに対数を2回取る計算を手回し計算機でやるより、目盛をあらかじめ歪めた紙を刷って点を打ち、定規を当てるほうが圧倒的に速くて安かった。紙そのものが計算装置だった。面白いのは、計算が一瞬で終わる今でもこの図が残っていることだ。点が直線から外れていることを検出する装置として、人間の目より優秀なものがまだ無い。
B10 の 10 と、軸受の L10 の 10 は同じもの
転がり軸受の L10寿命(定格寿命)は「同じ条件で使った軸受の90%が転がり疲れを起こさずに回り続ける時間」と定義される。裏返せば10%が壊れる時間で、本ツールの B10寿命とまったく同じ考え方だ。L は Life の L、10 は 10% を指す。業界ごとに呼び名が違うだけで、中身は「累積故障率が10%に達する時間」という一つの指標にすぎない。平均ではなく10%点を基準にする慣行が分野を越えて共通しているのは、平均は半数近くが先に壊れた後の値だという認識が広く共有されているからだ。
相関係数が高いことと、当てはまりが良いことは同じではない
R² が 0.99 と出ると当てはまりは完璧だと思いたくなるが、この値はサンプル数に強く依存する。点が2つなら直線は必ず両方を通るので R² は 1 になる。3つでもほぼ直線に乗ってしまうことは珍しくない——使用例には載せていないが、500 / 900 / 1600 のわずか3点でも R² は 0.994141 に達する。
信頼性工学ではこれに対して CCC(Critical Correlation Coefficient)という考え方が使われる。「そのサンプル数なら、データが本当はワイブル分布でなくてもこれくらいの相関は偶然出る」という臨界値の表と比べて判定する方法だ。同じ R² = 0.95 でも、故障が20件あるときと3件しかないときでは意味の重さが違う。本ツールは CCC までは実装していないので、故障件数が少ないときの R² は割り引いて読んでほしい。故障データが5件未満のときに注記が添えられるのは、この事情による。
参考: NIST/SEMATECH e-Handbook: Probability Plot Correlation Coefficient Plot
Tips:ワイブル解析でつまずきやすい5点
- 打切りデータを捨てて計算しない: 未故障の個体を除くと母数 N が減り、残った故障の順位が繰り上がってメジアンランクが押し上げられる。結果として寿命を短く見積もる方向に必ず偏る。未故障の個体も「少なくともその時間までは生きた」という情報を持っている
- m の精度を上げたいなら、増やすべきは故障の件数: 試験の個数を増やしても大半が打切りのままなら m はあまり良くならない。回帰の点になるのは故障した個体だけだからだ。個数を増やすより試験時間を延ばすほうが効く場面が多い
- 直線に乗らないときは、まず故障品の分解調査に戻る: 点が直線から外れるのは原因の違う故障が混ざっているサインだ。使用例の混合故障モードのケースがそれで、初期の数件と後半の数件が別の集団になっている。原因ごとにデータを分けてから別々に解析するのが正攻法で、1本当てはめて平均的な m を出してもどちらの対策にもつながらない
- B10 を交換周期の根拠にできるのは摩耗故障のときだけ: 故障率が時間とともに増える領域(m > 1)なら B10 の手前で交換する意味がある。偶発故障(m ≒ 1)では新旧で故障率が変わらないので予防交換しても止まる回数は減らないし、初期故障(m < 1)では新品に戻すほど壊れやすい時期をやり直すことになる
- 単位は時間でも回数でも距離でもよく、m は単位で変わらない: 全データを一律に定数倍しても確率紙の点は横に平行移動するだけで傾きは動かない。変わるのは η と各寿命の数値だけだ。単位ラベルの欄は表示に付く名前を決めるだけで、計算には効かない
よくある質問(ワイブル解析・B10寿命の実務)
まだ壊れていない個体はどう入力すればいい?
その行の打切りにチェックを入れて、時間の欄には試験を終えた時点の時間(その個体が生きたまま観測を終えた時間)を入れる。壊れていないからといって行ごと消してはいけない。未故障の個体は「少なくともその時間までは生きた」という情報を持っており、捨てると母数が減って残りの故障の順位が繰り上がり、寿命を短く見積もる方向に偏るからだ。打切りが混ざると調整順位が 1, 2, 3 という単純な連番でなくなるので、順位表でその効果を確認できる。打切り行そのものは確率紙の点にはならず、他の故障の順位を押し上げる役割だけを果たす。
すべて打切りにするとエラーになるのはなぜ?
1件も壊れていない試験からは、分布の形を決める手がかりが得られないからだ。確率紙に打つ点がゼロでは傾きも切片も存在しない。「10個を1万時間回して全部生きていた」というデータから言えるのは信頼度の下限だけで、これは別の統計手法の領域になる。故障が3件以上必要なのも同じ理由の延長で、2点だと直線は必ず両方を通ってしまい、当てはまりの良さを評価できなくなる。ただし3件は計算が成立する下限にすぎず、実務で使うなら5件以上が目安だと考えてほしい。
B10寿命が、いちばん最初に壊れた個体の時間より短い値になった
異常ではなく、外挿値が出ている状態だ。8個や10個の試験では最初の故障がすでに累積故障率10%前後の点にあたるので、それより手前の時間を知りたければ直線を観測範囲の外へ延ばして読むしかない。B10 のように低い%を指定するときには普通に起こる現象で、観測した最小時間より手前の外挿値である旨の注記が添えられる。注意すべきなのは「実際にその時間で10%が壊れることを試験で確かめたわけではない」という点だ。指定する%を下げるほど外挿の幅は広がるので、B1 のような値を交換周期の根拠にするなら m の推定精度そのものを疑ったほうがいい。
同じデータを他のソフトに入れたら m が違う値になった
推定方法の違いによるもので、どちらかが間違っているわけではない。本ツールはメジアンランク回帰(MRR)を使っており、確率紙に定規で引いた直線と数値がぴったり一致する。一方で統計ソフトの既定は最尤法(MLE)であることが多く、こちらは尤度関数を反復計算で最大化するため確率紙の直線とは一致しない。どちらを使うかは目的次第で、確率紙・手計算・QC検定の解法と数値を揃えたいなら MRR、統計的な性質を重視するなら MLE が選ばれる。差はサンプル数が少ないほど大きくなるので、報告書に載せるときは推定方法を併記しておくと後で揉めない。
m が1をわずかに超えただけなのに「摩耗故障」と判定される
判定は m = 1 ちょうどで切っているのではなく、0.95〜1.05 の帯を偶発故障として最初に見ている。この帯を外れて m が1未満なら初期故障、それより大きければ摩耗故障になるため、1.05 をわずかに超えた値は形式的には摩耗側に入る。ただし 0.85〜1.2 の範囲にある場合は判定が境界に近いとみなし、サンプルが増えると別のモードに移る可能性がある旨の注記が添えられる。故障件数が少ないうちは m の推定は簡単に動くので、境界近くの判定を確定した事実として扱わないこと。使用例に載せた公表計算例のケースがちょうどこの境界近傍にあたる。
入力した故障データが外部に送信されることはある? 社外秘の試験データを入れても大丈夫?
計算はすべてブラウザの中だけで実行される。入力した故障時間も、打切りの区別も、算出された m や B10寿命も、サーバーに送信されることはない。データベースに保存もしないし、ページを閉じれば入力内容は消える。社外秘の耐久試験データや、客先から預かった市場故障の日付データをそのまま入れても問題ない設計だ。裏を返すと入力内容は一切保存されないので、記録を残したい場合は結果のコピー機能を使って手元に貼り付けておいてほしい。
まとめ
壊れた時間を1行ずつ並べるだけで、形状パラメータ m・尺度パラメータ η・B10寿命・B50寿命・MTTF・当てはまり R² を出し、初期故障・偶発故障・摩耗故障のどれにいるかまで判定する無料ツールだ。試験の途中で止めた未故障の個体も、Johnson の平均順位法で捨てずに織り込める。推定した故障の傾向から系全体の稼働率や冗長化の効果を見たいときは システム信頼性計算(MTBF・稼働率・冗長化)、カタログ値の理論寿命と実績を突き合わせたいときは ベアリング寿命計算、応力の側から寿命を見積もりたいときは 疲労寿命シミュレーター、作った時点の寸法ばらつきを評価したいときは 工程能力指数 Cp/Cpk 計算 を併せて使ってほしい。
本ツールへの要望や不具合の報告は お問い合わせページ から気軽に連絡してほしい。
Mahiro
Mahiro Appの開発者。軸受8個の耐久試験データを表計算ソフトで眺めながら「平均寿命の時点で半分以上が壊れている」ことに気づいた日から、故障データは平均ではなくB10で読むようにしている。打切りを捨てずに織り込むJohnsonの平均順位法は、公表計算例と一致するまで実装を直した。
運営者情報を見る