チュートリアル: 組立ラインの寸法誤差分析

このチュートリアルでは、グラフでパターンを探し、ANOVA と線形回帰で定量化する流れを、製造業の検査データで扱います。

自動車部品の組立工場に 3 つのライン A, B, C があり、完成品の寸法を検査しています。現場から「ライン B の寸法誤差が大きいのではないか」という報告がありますが、温度や湿度などの環境条件も日によって変わるため、ラインの違いが本当に効いているのか、環境条件の影響なのかが切り分けられていません。300 件の検査記録から、ライン間の差と環境要因の寄与を切り分けます。

データを読み込む

ランチャー画面の Sample Data セクションから Assembly Line をクリックすると、300 行 7 列のデータが読み込まれます。

この状態を MIDAS で開く

列名内容
line組立ライン(A / B / C)
shiftシフト(Day / Night)
operatorオペレータ ID(Op1 -- Op5)
temperature作業環境温度(°C)
humidity湿度(%)
cycle_timeサイクルタイム(秒)
dimension_error目標寸法からの誤差の大きさ(mm、非負)

dimension_error が応答変数です。非負の値で、小さいほど目標寸法に近く、品質が高いことを意味します。

グラフでパターンを探す

Data Table タブで dimension_error 列をクリックすると、Statistics タブにヒストグラムと統計量が表示されます。全体の平均は約 0.116 mm、標準偏差は約 0.042 mm です。

Statistics タブで dimension_error 全体の統計量を表示

Show stats by ドロップダウンから line を選択すると、ライン別の統計量に切り替わります。ライン B の平均が A や C より高いことが確認できます。

Statistics タブでライン別の dimension_error を表示

Statistics タブではライン別の統計量を1グループずつ確認しました。Graph Builder の Faceted 表示で同じ軸に並べると、分布の位置関係が一目で分かります。Analysis > Graph Builder... から Histogram を作成し、dimension_error を Column、line を Group By に設定して FacetedColumns1 にします。

Histogram の Grouping 設定:Faceted、Columns=1

スクロールするとライン A, B, C のヒストグラムが縦に並んでいます。

ライン別の dimension_error ヒストグラム(Faceted 表示、縦1列)

ライン B のヒストグラムが右にずれています。A と C は似た位置に分布しています。

次に環境条件との関係を探します。Graph Builder で Scatter Plot を作成し、X に temperature、Y に dimension_error、Color に line を設定します。

temperature × dimension_error の散布図(line で色分け)

温度が高い領域で寸法誤差が大きくなる傾向が見えます。同じ温度帯でもライン B の点が上寄りに位置しています。

ここで「ライン B の誤差が大きいのは、B だけ温度が高いからではないか」という疑問が浮かびます。散布図の色分けを見ると、どの色の点も X 軸方向(温度)の同じ範囲に広がっており、特定のラインだけ高温帯に偏っている様子は見られません。温度とライン効果を本当に切り分けられるかは、次の回帰分析で確認します。

ここまでの探索で 2 つの独立したパターンが見えました。ライン B の誤差が大きいこと、温度と誤差に正の関係がありそうなことです。これらを定量的に評価します。

ANOVA でライン間の差を推定する

グラフではライン B の寸法誤差が大きそうに見えますが、具体的に何 mm 大きいのか、その推定がどの程度確かなのかはグラフからは読み取れません。ANOVA で各ラインの平均差を信頼区間付きで推定します。

データには shiftoperator もありますが、まずはライン間の差に絞って確認します。Analysis > ANOVA... を開き、One-Way で line を Factor、dimension_error を Response に設定して実行します。

Group Statistics テーブル

群ごとの平均と 95% 信頼区間が表示されます。ライン B の平均は約 0.144 mm で、A(約 0.098 mm)や C(約 0.105 mm)より高い値です。

具体的に何 mm の差があるかを見ます。Tukey HSD は全ペアの平均差を同時信頼区間で推定します。同時信頼区間は、複数のペアをまとめて見たときに区間全体で指定した信頼度を保つよう、個々の区間を通常より広くとります。

Tukey HSD の結果

ペア差(mm)方向
A -- B約 -0.046B が大きい
A -- C約 -0.007ほぼ同じ
B -- C約 +0.039B が大きい

差は表頭のペアの順序で「左のライン − 右のライン」として計算します。負の値は右のラインの方が大きいことを示します。

A -- B と B -- C の信頼区間は 0 をまたがず、ライン B と他ラインの差は推定精度の範囲で安定しています。A -- C の信頼区間は 0 をまたいでおり、差の方向すら確定できません。

ただしライン間の差がすべてではありません。ANOVA Table を見ると、η² は約 0.24 で、このデータでは寸法誤差の全分散のうち約 24% がライン間の違いで説明されます。残りの約 76% は同じライン内のばらつき——環境条件の違いや測定のばらつきなど——に帰属します。η² は標本での記述統計です。母集団での分散割合に関心がある場合は、その推定量である ω² を扱う ANOVA テーブル を参照してください。

ANOVA テーブル

残りの 76% には温度や湿度などの環境条件が含まれている可能性があり、次のセクションで回帰分析を使ってライン効果と環境要因を同時に評価します。その前に、ANOVA の仮定から大きく逸脱していないかを確認します。Assumption Diagnostics セクションには、残差全体の Q-Q プロットと群ごとの Q-Q プロットがあります。ANOVA は群ごとの正規性を仮定するため、群ごとの Q-Q プロットで各ラインの残差が対角線にほぼ沿っていれば、正規性からの明らかな逸脱はありません。各ラインの SD もほぼ同程度(0.035 -- 0.038、最大と最小の比は約 1.1)で、等分散性からの大きな逸脱は見られません。MIDAS では等分散性を群ごとの SD を見比べて確認します。前提の詳細は ANOVA の仮定 を参照してください。

ANOVA の Q-Q プロット

回帰分析でライン効果と環境要因をまとめて評価する

ANOVA ではラインの違いだけを見ましたが、環境変数の寄与はまだ分かりません。回帰分析で、ライン効果と環境要因を 1 つのモデルに入れて同時に推定します。

OLS の Predictor は数値列しか受け付けないため、line(A/B/C)を 0/1 の列に変換します。Data > Dummy Coding... を開き、line の Action を Dummy code に設定します。Reference は既定でアルファベット順の先頭である A が選ばれます。A を基準に「B かどうか」(line_B)と「C かどうか」(line_C)の 2 列が生成されます。A の列は不要です — 両方とも 0 なら A だと分かるためです。基準をどのラインにしても各ペアの差そのものは変わらず、各係数が「どのラインとの差か」の解釈だけが変わります。

Dummy Coding の設定

変換後のデータセットで Analysis > Linear Regression (OLS)... を開き、dimension_error を Response、line_Bline_Ctemperaturehumiditycycle_time を Predictor に設定します。

OLS の設定:Dummy Coded データセット、5 変数を Predictor に選択

Run Analysis で実行します。

Model Summary

R-squared は約 0.71 で、ライン効果と環境変数を合わせて dimension_error の分散の約 71% を説明できます。ライン単独の η²(約 24%)から R-squared が約 71% に上がりますが、この増分を各予測子の寄与へ一意に分けることはできません。説明変数どうしに相関があると、寄与の分解は順序に依存します。

係数の解釈

係数テーブル

ここで読み取る係数は、データを見てから着目点を決めた探索段階の推定です。また、観測データから推定した関連であり、各変数を操作したときに誤差がどう変わるかという因果効果ではありません。

line_B の係数は約 +0.046 mm です。温度・湿度・サイクルタイムを同じモデルに入れて一定に保ったとき、ライン A と比べて B の寸法誤差が平均 0.046 mm 大きいという推定です。回帰でこのように他の変数を一定に保つことを「制御する」と言います。意味は 偏回帰係数の解釈 を参照してください。Tukey HSD の A -- B 差とほぼ同じ値です。line_C の係数は約 +0.006 mm で信頼区間が 0 付近をまたいでおり、A との差は小さいと推定されます。

temperature の係数は約 +0.013 mm/°C で、温度が 1°C 高い観測ほど寸法誤差が平均 0.013 mm 大きいという推定です。単位の異なる変数の影響の大きさを比べるには、係数を標準化した Std. Coef. を使います。環境変数の中では温度の Std. Coef. が最も大きい値です。ただし標準化係数の大小がそのまま変数の重要度を表すとは限りません。背景は 係数の解釈 を参照してください。

cycle_time の係数は約 -0.003 mm/秒で、サイクルタイムが長い観測ほど誤差が小さい傾向です。

humidity の係数は 0.001 と小さく、寄与はわずかです。

予測子どうしに強い相関があると係数の推定が不安定になります。今回の VIF はいずれも小さく、その兆候は見られません。どの程度の VIF で多重共線性を疑うかの目安もリンク先で説明しています。

診断プロットの確認

これらの係数と信頼区間は、残差の正規性・等分散性・線形性が成り立つことを前提としています。モデルに名前を付けて Save ModelView Diagnostics で診断プロットを確認します。

診断プロット

Residuals vs Fitted で残差がゼロ付近にランダムに散らばっていれば、線形性からの明らかな逸脱はありません。漏斗状のパターンがあれば不等分散を疑います。Normal Q-Q で標準化残差が対角線にほぼ沿っていれば、正規性からの大きな逸脱はありません。Scale-Location で ri\sqrt{|r_i^*|} に系統的な傾向がなければ、分散の不均一性は目立ちません。Residuals vs Leverage で Cook's Distance の等高線(0.5 と 1.0)の外側に点がなければ、推定を大きく歪める外れ値はありません。各プロットの読み方と問題時の対処は Linear Regression の診断プロットを参照してください。

まとめ

当初の問い「ライン B の寸法誤差は本当に大きいのか」に対して、分かったことを整理します。いずれもデータを見てから着目点を決めた探索段階の推定で、確認の進め方は この分析の注意点 を参照してください。

  • ライン B の寸法誤差はライン A より平均 0.046 mm 大きく、環境変数を制御しても推定が安定している(回帰の line_B 係数と Tukey HSD がほぼ一致)。A と C の間に明確な差はない
  • ただしライン間の差は全分散の約 24% にとどまる。寸法誤差のばらつきはライン以外の要因に大きく依存している
  • ライン B の誤差が大きい原因は環境条件の偏り(B だけ温度が高い等)ではない。回帰モデルで環境変数を制御しても line_B の係数が残っており、ライン固有の要因が存在する
  • 環境要因のうち温度との関連が最も強く(1°C あたり約 0.013 mm)、サイクルタイムとも負の関連がある。温度管理やサイクルタイムの見直しが誤差低減につながるかは、因子を意図的に振って効果を確かめる DoE Analysis タブ で確認する

この分析の注意点

この分析はデータを見てから着目点を決めた探索的分析です。グラフで「ライン B が大きそうだ」と気づいてから ANOVA で推定し、散布図で「温度と関係がありそうだ」と気づいてから回帰を当てはめました。手元のデータでたまたま目立ったパターンを追いかけているため、別のデータを取ったら今度は湿度が効いている、といった結果になる可能性があります。ここで得られた知見に信憑性を持たせるには、推定する効果(line_B の差、温度の寄与など)を事前に決めた上で新たにデータを収集し、推定が再現されるかを確認してください。

レポートの紹介

グラフや分析結果は Add to Report で Report タブにまとめられます。この分析の結果をレポートにまとめるとこのような形になります。

実際の画面を見る

クリックしてMIDASアプリケーションを起動