En statistik försöksplan måste innehålla åtminstone två nivåer på en
försöksvariabel (X), annars kan man inte göra en jämförelse av
variabelns inverkan på mätresultatet (Y).
Den vanligaste
försöksplanen innehåller två nivåer och en plan för tre X-variabler
innehåller då minst åtta mätvärden om huvud- och alla samspelseffekter
skall analyseras (2^3 = 8).
Men antag att man vill utvärdera t.ex.
sex variabler vilket leder till 2^6 = 64 olika inställningar vilket
alltså ger 64 mätresultat. Detta är i de flesta fall en ganska omöjlig
plan att administrera och övervaka.
Det är dock möjligt att reducera
detta utan att förlora någon större mängd information, mer om det nedan.
(Ordet ‘faktor’ används internationellt synonymt med ‘försöksvariabel’,
‘obereoende variabel’, etc.)
Något om reducering. Nedan visar försöksplanen för ett 2-faktorförsök med tre variabler (A-C) där låg- respektive hög nivå är i standardformat (-1, 1). (Bara de fyra första raderna visas):
A B C AB AC … ABC
-1 -1 -1 1 1 -1
1 -1 -1 -1 -1 1
-1 1 -1 -1 1 1
1
1 -1 1 -1 -1
. . . . . .
I försöksplanen finns det alltså en kolumn för varje X-variabel men
också en kolumn för varje samspelseffekt. Dessa kolumner visas dock
aldrig utan hanteras av datorprogrammet internt.
Men i allmänhet
anses samspelseffekter mellan tre eller fler variabler inte existera.
Eller om de existerar är effekterna så små att de inte lyser igenom i
analysen. Detta kan nu utnyttjas så att en fjärde förklaringsvariabel
(D) kan nu läggas till och då ha låg- och hög-inställningarna enligt
kolumn ABC. Alltså får man en försöksplan med fyra variabler i endast
åtta mätningar.
Denna sammanblandning mellan försöksvariabel D och
samspelet ABC kallas på engelska för ‘confounding’ eller ‘aliasing’.
Naturligtvis är man intresserad av hur denna sammanblandning ser ut i en
vald försöksplan, detta visas längre ned.
Skärmdumpen visar en försöksplan med sju faktorer (A-G) på två nivåer. Det finns 128 rutor (mätningar) men endast 64 är ifyllda. Exemplet är alltså en ‘halvfraktion’ och det syns tydligt att de mätningar som inte utförs ligger i en viss struktur (denna struktur är egentligen inte intressant, visas bara som en illustration). I denna simulering har data skapats med funktionen i överkant - endast variabel A påverkar Y.
Illustration av sammanblandning. FrF2-kommandot skapar en försöksplan med nruns = 16 rader och nfactors = 6 faktorer (A-F) i icke-slumpmässig ordning. För att visa en tabell över sammanblandningar behöver programmet en y-kolumn som indata och skapas här som 16 slumptal i intervallet [0, 1] (En dylik försöksplan används i punkt “2. Reducering av exempel 1 - 16 mätningar (1/4)” nedan):
library(FrF2) # Funktioner för att skapa försöksplaner.
minPlan <- FrF2(nruns = 16, nfactors = 6, randomize = FALSE) # Lagrar planen i 'minPlan'.
minPlan # Skriver ut försöksplanen.
## A B C D E F
## 1 -1 -1 -1 -1 -1 -1
## 2 1 -1 -1 -1 1 1
## 3 -1 1 -1 -1 1 1
## 4 1 1 -1 -1 -1 -1
## 5 -1 -1 1 -1 1 -1
## 6 1 -1 1 -1 -1 1
## 7 -1 1 1 -1 -1 1
## 8 1 1 1 -1 1 -1
## 9 -1 -1 -1 1 -1 1
## 10 1 -1 -1 1 1 -1
## 11 -1 1 -1 1 1 -1
## 12 1 1 -1 1 -1 1
## 13 -1 -1 1 1 1 1
## 14 1 -1 1 1 -1 -1
## 15 -1 1 1 1 -1 -1
## 16 1 1 1 1 1 1
## class=design, type= FrF2
y <- runif(16, 0, 1) # Skapar en slumpkolumn.
aliases(lm(y ~ (.)^4, data = minPlan)) # '4' är 'ange t.o.m. 4-faktorsamspel'.
##
## A = B:C:E = B:D:F
## B = A:D:F = A:C:E
## C = D:E:F = A:B:E
## D = C:E:F = A:B:F
## E = C:D:F = A:B:C
## F = C:D:E = A:B:D
## A:B = C:E = D:F
## A:C = A:D:E:F = B:C:D:F = B:E
## A:D = A:C:E:F = B:C:D:E = B:F
## A:E = A:C:D:F = B:D:E:F = B:C
## A:F = A:C:D:E = B:C:E:F = B:D
## C:D = A:B:C:F = A:B:D:E = E:F
## C:F = A:B:C:D = A:B:E:F = D:E
## A:C:D = A:E:F = B:C:F = B:D:E
## A:C:F = A:D:E = B:C:D = B:E:F
I ‘minPlan’ ser man att kolumnerna A-D är kodade i ‘standardordning’
medan kolumnerna E och F är i en annan ordning. Dessa 16 rader är alltså
de 16 olika inställningarna av processen men skall göras i slumpmässig
ordning (kommandot randomize = TRUE ger en slumpmässig ordning).
Kommandot ‘aliases’ ger en lista över alla sammanblandningar. Det
framgår att samtliga huvudeffekter (A-F) är ‘confounded’ med
3-faktorsamspel. (‘E = C:D:F = A:B:C’ betyder att variabel E erhålles
vid radvis multiplikation av ABC och variabel F vid radvis
multiplikation av ABD).
Man ser också att samspelet AB inte kan
skiljas från samspelet CE eller DF. Alla dessa samanblandningar är
priset då man väljer att genomföra bara 16 av 128 mätningar, dvs en
åttondel. Ett alternativ är att göra en 1/4-fraktion dvs 32 mätvärden.
Då försvinner dessa problem (visas inte här).
Två analyser:
1. Ett verkligt fall - sex förklaringsvariabler, 64 olika mätningar
2. Reducering av exempel 1 - 16 mätningar (1/4)
1. Ett verkligt fall - sex förklaringsvariabler, 64 olika mätningar
Vid tillverkning av s.k. tryckta kretsar (PCB, Printed Circuit Board)
skall mönstret skyddas av ett lackskikt - applicerat med screentryckning
- och som täcker alla ledare förutom lödpunkterna).
Problemet var
att få ett jämnt och tillräckligt tjockt skikt och tekniker och
produktionsansvariga valde ut de sex faktorerna. Skärmdumpen nedan visar
faktorerna samt de 64 mätvärdena.
Indata och analys. De 64 värdena lagras i Y som sedan läggs som en kolumn intill försöksplanen. En enkel analys sker med lm-kommandot (‘linear model’) och resultatet visas med ‘summary’-kommandot:
Y <- c(34, 32, 31, 40, 38, 35, 32, 40, 25, 23, 21, 20, 34, 21, 21, 23, 39, 34, 34, 31, 27, 41, 34, 39, 23,
19, 24, 22, 27, 18, 26, 27, 35, 36, 39, 33, 37, 29, 35, 31, 22, 22, 22, 23, 24, 25, 20, 23, 39, 37,
33, 36, 32, 37, 27, 36, 23, 26, 21, 26, 26, 22, 20, 26)
library(FrF2) # Funktioner för att skapa försöksplaner.
minPlan <- FrF2(nruns = 64, nfactors = 6, randomize = FALSE) # Lagrar planen i 'minPlan'.
allData <- data.frame(minPlan, Y)
analys <- lm(formula = Y ~ (.)^2, data = allData) # Alla variabler samt 2-faktor samspel.
summary(analys)
##
## Call:
## lm.default(formula = Y ~ (.)^2, data = allData)
##
## Residuals:
## Min 1Q Median 3Q Max
## -7.7500 -1.7969 0.0312 1.7344 6.5625
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.903e+01 4.368e-01 66.462 <2e-16 ***
## A1 1.250e-01 4.368e-01 0.286 0.7762
## B1 -4.062e-01 4.368e-01 -0.930 0.3577
## C1 1.250e-01 4.368e-01 0.286 0.7762
## D1 -5.750e+00 4.368e-01 -13.164 <2e-16 ***
## E1 9.375e-02 4.368e-01 0.215 0.8311
## F1 -1.875e-01 4.368e-01 -0.429 0.6699
## A1:B1 1.000e+00 4.368e-01 2.289 0.0272 *
## A1:C1 2.812e-01 4.368e-01 0.644 0.5232
## A1:D1 -5.312e-01 4.368e-01 -1.216 0.2307
## A1:E1 5.625e-01 4.368e-01 1.288 0.2049
## A1:F1 2.813e-01 4.368e-01 0.644 0.5232
## B1:C1 -3.621e-16 4.368e-01 0.000 1.0000
## B1:D1 -6.250e-02 4.368e-01 -0.143 0.8869
## B1:E1 1.563e-01 4.368e-01 0.358 0.7224
## B1:F1 -2.500e-01 4.368e-01 -0.572 0.5701
## C1:D1 5.313e-01 4.368e-01 1.216 0.2307
## C1:E1 -1.875e-01 4.368e-01 -0.429 0.6699
## C1:F1 -8.438e-01 4.368e-01 -1.932 0.0602 .
## D1:E1 1.250e-01 4.368e-01 0.286 0.7762
## D1:F1 9.375e-02 4.368e-01 0.215 0.8311
## E1:F1 2.500e-01 4.368e-01 0.572 0.5701
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.494 on 42 degrees of freedom
## Multiple R-squared: 0.819, Adjusted R-squared: 0.7285
## F-statistic: 9.051 on 21 and 42 DF, p-value: 1.082e-09
Kommentar. Utskriften ovan blir ganska lång även om analysen
begränsats att bara ta med tvåfaktorsamspel. Kolumnen längst till höger
pekar ut vilka faktorer (låga p-värden) som kan anses signifikanta, dvs
som bör ingå i modellen.
Det är egentligen bara interceptet och
D-faktorn som är intressanta. Samspelet A:B har ett lågt p-värden men
varken A eller B är signifikanta, därför utelämnas samspelet i nästa
analys.
Bara D-faktorn. Följande analys är samma som ovan men nu ingår bara D-faktorn:
analys <- lm(formula = Y ~ D, data = allData) # Den linjära modellen.
summary(analys)
##
## Call:
## lm.default(formula = Y ~ D, data = allData)
##
## Residuals:
## Min 1Q Median 3Q Max
## -7.7813 -2.2812 -0.2812 2.3437 10.7188
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 29.0312 0.4254 68.25 <2e-16 ***
## D1 -5.7500 0.4254 -13.52 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.403 on 62 degrees of freedom
## Multiple R-squared: 0.7467, Adjusted R-squared: 0.7426
## F-statistic: 182.7 on 1 and 62 DF, p-value: < 2.2e-16
Tolkning av resultatet. Igen är det interceptet och D-faktorn som är signifikanta. (Den erhållna modellen återges nedan.) ’R-squared’ är 0.75 och visar att cirka 75% av all variation i data består av D-faktorn, resten är mätfel och övriga faktorer - kända och okända:
2. Reducering av exempel 1 - 16 mätningar (1/4)
Det kan verka underligt att göra en reducerad analys av ovanstående 64
värden. Men anledningen till att alla 64 mätningar genomfördes var
okunskap. Vid tidpunkten för genomförandet var man okunnig om
möjligheten att genomföra en reducerad DoE.
DoE-metodik understryker
att börja enkelt med två nivåer och senare gå vidare med de faktorer som
är betydelsefulla. DoE med många variabler på två nivåer kallas ibland
för ‘screening’.
(Det finns naturligtvis situationer då detta är
mindre betydelsefullt - om man undersöker t.ex. svarstider i mjukvara är
det antagligen möjligt att ha många faktorer i mjukvaran och låta en
dator både ändra inställningar och lagra mätdata, utan att detta ökar
kostnaderna mer än marginellt.)
En reducerad försöksplan. Nedan anges en försöksplan som är 1/4 av en full plan, dvs 16 mätvärden. För varje kombination plockas motsvarande mätvärde bland de 64 ovan. Mätvärdena lagras som tidigare i en Y-kolumn och utskriften omfattar 2-faktorsamspel:
design <- FrF2(16, 6, randomize = FALSE) # En reducerad plan (1/4)
design
## A B C D E F
## 1 -1 -1 -1 -1 -1 -1
## 2 1 -1 -1 -1 1 1
## 3 -1 1 -1 -1 1 1
## 4 1 1 -1 -1 -1 -1
## 5 -1 -1 1 -1 1 -1
## 6 1 -1 1 -1 -1 1
## 7 -1 1 1 -1 -1 1
## 8 1 1 1 -1 1 -1
## 9 -1 -1 -1 1 -1 1
## 10 1 -1 -1 1 1 -1
## 11 -1 1 -1 1 1 -1
## 12 1 1 -1 1 -1 1
## 13 -1 -1 1 1 1 1
## 14 1 -1 1 1 -1 -1
## 15 -1 1 1 1 -1 -1
## 16 1 1 1 1 1 1
## class=design, type= FrF2
Y <- c(34, 37, 33, 40, 27, 29, 35, 39, 22, 19, 24, 23, 26, 21, 21, 26) # Mätdata
res <- lm(Y ~ (.)^2, data = design) # Alla faktore inkl 2-faktorsamspel.
summary(res)
##
## Call:
## lm.default(formula = Y ~ (.)^2, data = design)
##
## Residuals:
## 1 2 3 4 5 6 7 8 9 10 11
## 0.875 1.875 -1.875 -0.875 -0.875 -1.875 1.875 0.875 -0.875 -1.875 1.875
## 12 13 14 15 16
## 0.875 0.875 1.875 -1.875 -0.875
##
## Coefficients: (8 not defined because of singularities)
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.850e+01 1.035e+00 27.548 0.00132 **
## A1 7.500e-01 1.035e+00 0.725 0.54383
## B1 1.625e+00 1.035e+00 1.571 0.25684
## C1 -5.000e-01 1.035e+00 -0.483 0.67662
## D1 -5.750e+00 1.035e+00 -5.558 0.03088 *
## E1 3.750e-01 1.035e+00 0.362 0.75172
## F1 3.750e-01 1.035e+00 0.362 0.75172
## A1:B1 1.125e+00 1.035e+00 1.087 0.39044
## A1:C1 -6.457e-16 1.035e+00 0.000 1.00000
## A1:D1 -1.250e+00 1.035e+00 -1.208 0.35043
## A1:E1 6.250e-01 1.035e+00 0.604 0.60716
## A1:F1 -8.750e-01 1.035e+00 -0.846 0.48674
## B1:C1 NA NA NA NA
## B1:D1 NA NA NA NA
## B1:E1 NA NA NA NA
## B1:F1 NA NA NA NA
## C1:D1 1.250e+00 1.035e+00 1.208 0.35043
## C1:E1 NA NA NA NA
## C1:F1 6.250e-01 1.035e+00 0.604 0.60716
## D1:E1 NA NA NA NA
## D1:F1 NA NA NA NA
## E1:F1 NA NA NA NA
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 4.138 on 2 degrees of freedom
## Multiple R-squared: 0.9523, Adjusted R-squared: 0.6422
## F-statistic: 3.071 on 13 and 2 DF, p-value: 0.2722
Alla 2-faktorsamspel ovan är betydelselösa därför görs ytterligare en analys - denna gång bara med huvudeffekterna:
# Analys utan samspeleffekter
res <- lm(Y ~ (.), data = design) # Analys med bara huvudeffekter.
summary(res)
##
## Call:
## lm.default(formula = Y ~ (.), data = design)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.375 -2.812 0.375 2.375 5.375
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 28.5000 0.9474 30.082 2.42e-10 ***
## A1 0.7500 0.9474 0.792 0.448931
## B1 1.6250 0.9474 1.715 0.120445
## C1 -0.5000 0.9474 -0.528 0.610429
## D1 -5.7500 0.9474 -6.069 0.000186 ***
## E1 0.3750 0.9474 0.396 0.701457
## F1 0.3750 0.9474 0.396 0.701457
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.79 on 9 degrees of freedom
## Multiple R-squared: 0.82, Adjusted R-squared: 0.7
## F-statistic: 6.833 on 6 and 9 DF, p-value: 0.005797
Återigen är det bara interceptet och D-faktorn som är signifikanta. En sista analys med bara D-faktorn ger följande:
# Analys med bara D-faktorn
res <- lm(Y ~ D, data = design)
summary(res)
##
## Call:
## lm.default(formula = Y ~ D, data = design)
##
## Residuals:
## Min 1Q Median 3Q Max
## -7.250 -1.750 0.000 2.875 5.750
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 28.5000 0.9186 31.03 2.62e-14 ***
## D1 -5.7500 0.9186 -6.26 2.09e-05 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.674 on 14 degrees of freedom
## Multiple R-squared: 0.7368, Adjusted R-squared: 0.718
## F-statistic: 39.19 on 1 and 14 DF, p-value: 2.092e-05
För låg repektive hög nivå på faktor D erhålles då följande:
\[ \begin{align} \large Y = 29 -5.8 D =29-5.8\cdot (-1)= 34.8 & \phantom{litet tomt ut} \large Y = 29 -5.8 D =29-5.8\cdot 1= 23.2 \end{align} \]
Faktor D är (enligt skärmdumpen längre upp) screendukens täthet som anges i ‘antal maskor per tum’, 38 - 54. En lägre siffra (kodad med ‘-1’) ger större öppningar vilket ger ett tjockare skikt. Detta är egentligen ingen överraskning, snarare att det är den enda faktorns som blev signifikant. (Större öppningar i duken ger dock en något mer taggig kant t.ex. för öppningar runt lödpunkter o.d.)
OBS Viktigt! I en DoE med 16 rader och 6 faktorer blir det en
sammanblandning av 2-faktorsamspel (AB = CE = DF), se ovan. Antag att
samspelet AB blivit signifikant, men inte huvudfaktorerna A och B. Då
brukar man eliminera tvåfaktorsamspelet från modellen.
I detta
exempel är D-faktorn signifikant. Eftersom det är möjligt att det
signifikanta samspelet egentligen är DF borde man undersöka en modell
med D, F och DF. Det är alltså nödvändigt att i reducerade försök
uppmärksamma listan med sammanblandade effekter.
Avslutningsvis
En mycket stor fördel med DoE är att modeller
kan ändras, t.ex. man kan ta bort eller lägga till faktorer, utan att
den större bilden förändras nämnvärt. Om man i stället plockar både
faktorer och respons från t.ex. data som samlats i någon databas,
riskerar man en väldigt instabil analys. Några faktorer kanske blir
signifikanta men då man tar bort någon annan eller något samspel så
kanske sambandet faller ihop.
Ofta beor detta på beroende strukturer
(både kända och okända) mellan faktorerna vilket skapar osäkerhet i
matematiken. Naturligtvis finns det tillfällen då man inte kan välja och
bestämma nivåer på faktorer, utan man är hänvisad till data som samlas
in vid t.ex. forskning om sjukdomar.
Ovanstående analyser och
texter avser inte att ge en uttömmande diskussion om analys av data från
en försöksplan. Det finns många kommando som kan ge mer information och
flera sätt att automatisera en analys. Även graferna kan göras mer
utförliga med t.ex. textinformation, färger m.m. Men här har
framställningen poängterat enkelhet.
(Analyserna har gjorts med datorprogrammet ‘R’ och med det grafiska gränssnittet ‘R-studio’ och bägge är gratis tillgängliga på nätet. Se https://www.indstat.se och knappen [Statistikprogram - R] för installation.)
(Se https://www.indstat.se för många andra simuleringsövningar.)