Free Statistics

of Irreproducible Research!

Author's title

Author*Unverified author*
R Software Modulerwasp_boxcoxlin.wasp
Title produced by softwareBox-Cox Linearity Plot
Date of computationTue, 11 Nov 2008 04:10:52 -0700
Cite this page as followsStatistical Computations at FreeStatistics.org, Office for Research Development and Education, URL https://freestatistics.org/blog/index.php?v=date/2008/Nov/11/t1226401975x0afhhys1wxudzw.htm/, Retrieved Tue, 28 May 2024 07:01:16 +0000
Statistical Computations at FreeStatistics.org, Office for Research Development and Education, URL https://freestatistics.org/blog/index.php?pk=23318, Retrieved Tue, 28 May 2024 07:01:16 +0000
QR Codes:

Original text written by user:
IsPrivate?No (this computation is public)
User-defined keywords
Estimated Impact132
Family? (F = Feedback message, R = changed R code, M = changed R Module, P = changed Parameters, D = changed Data)
F       [Box-Cox Linearity Plot] [Box-Cox linearity...] [2008-11-11 11:10:52] [3b916296c2d2371d528ff188880e3d2b] [Current]
F    D    [Box-Cox Linearity Plot] [box-cox linearity...] [2008-11-12 19:11:02] [0e5eff269cdcaf8789c45b6ee36b0c3d]
Feedback Forum
2008-11-22 13:58:03 [An Knapen] [reply
Box-Cox linearity plot wordt gebruikt om twee variabelen met elkaar in verband te brengen. We laten lambda hierbij schommelen tussen bepaalde waarden. In dit voorbeeld schommelt lambda tussen -2 en 2. De correlatie wordt afgelezen op de y-as.
Om te weten waar de waarde de regressielijn het dichtst benadert,moet je op zoek gaan naar het maximum. Dit maximum bevindt zich in het punt (2;8.27)
(dit is een zeer hoge correlatie)

Nadien gaat er een transformatie plaatsvinden om zo een beter verband te krijgen tussen de variabelen(=sterker lineair verband)We kunne opmerken dat in dit voorbeeld er niet veel veranderd is door het toepassen van de transformatie. De correlatie is hierdoor niet verbeterd.
2008-11-23 13:59:57 [Nathalie Daneels] [reply
Evaluatie opdracht 3 - Blok 8 (Q3)

De conclusie zou kunnen aangevuld worden met het volgende:

Tijdens het uitvoeren van een lineaire verband van Y ten opzichte van X, kan een aangewezen/gepaste transformatie van X het verband vaak beduidend verbeteren.
De transformatie box-Cox (Box en Cox, 1964) is een bijzonder nuttige familie van transformaties. Het wordt gedefinieerd als:

T(X) = (X^lambda - 1) / Lambda
waarbij X de variabele is die wordt omgezet/getransformeerd en lambda de transformatieparameter is.
Als lambda = 0, dan wordt de transformatie ‘log’ genomen van de gegevens en wordt de bovengenoemde formule niet gebruikt.
De box-Cox linearity plot is een plot van de correlatie tussen Y en de getransformeerde X voor bepaalde waarden van lambda . Namelijk: lambda is de coördinaat voor de variabele van de horizontale, en de waarde van de correlatie tussen Y en de getransformeerde X is de coördinaat voor de verticaal as van de plot.
De optimale waarde van lambda is dan die waarde die overeenstemt met de maximum correlatie (of het minimum voor een negatieve correlatie) op de plot. We kunnen hieruit concluderen dat het omzetten/transformeren van X wordt gebruikt om het verband (tussen Y en X) te verbeteren.
Definitie van de Box-Cox linearity plots: Deze plots worden gevormd door :
- Op de verticale (y-) as: De coëfficiënt van de correlatie van de Y en de getransformeerde X.
- Op de horizontale (x-) as: De waarde die lambda aanneemt.

Hierboven heb ik de theorie uit EDA van de Box-Cox Linearity Plot gezet. Dit zou ook nog bij de conclusie moeten staan:

De Box-Cox Linearity Plot brengt 2 variabelen met elkaar in verband. Er wordt geprobeerd om daar een rechte door te trekken om eventueel wetmatigheid te construeren en voorspellingen te maken. Nu moeten we ons de volgende vraag stellen: Is het mogelijk om een variabele te transformeren zodat de scatterplot wordt gelinealiseerd (lineairder wordt gemaakt), zodat we nog een betere rechte (een rechte die dichter bij de aanduiding van het lineair verband ligt) erdoor kunnen trekken? Om deze vraag op te lossen moeten we gaan kijken naar de R-code. Daarin kan je zien dat x getransformeerd wordt naar x1.
Box Cox Linearity Plot gaat lambda (= parameter) laten variëren van -2 tot 2 (zie horizontale as van de grafiek) en al deze transformaties toepassen op de variabele x. Voor elke waarde van lambda gaat men de (gewijzigde) correlatie tussen de getransformeerde x en variabele y berekenen en deze correlatie wordt getoond op de verticale as. Vervolgens moeten we op de grafiek gaan kijken of er zich ergens een maximum voordoet en voor welke waarde van lambda dit is. Voor die waarde van lambda gaat de scatterplot een betere lineaire vorm bereiken, gaat er een hogere correlatie bestaan tussen de variabelen x en y (na transformatie van x). In dit geval kunnen we stellen dat lambda een maximum bereikt in de waarde 2. We zouden ons kunnen afvragen of dit werkelijk het maximum is, maar we hebben een sterk vermoeden dat dit zo is. De curve gaat heel waarschijnlijk dalen na de waarde 2 voor lambda. Als deze curve geen maximum moest bereiken, dan zouden we eventueel de het interval op de x-as kunnen opschuiven naar links of rechts (hangt er vanaf hoe de rechte loopt), maar dit gaan we dan niet doen. Als er geen maximum zou bereikt worden, dan mogen we concluderen dat er geen zinvolle transformatie bestaat die de correlatie tussen de 2 variabelen zou verbeteren.
Als we wel een maximum kunnen aanduiden, dan moeten we nog nagaan of deze transformatie ook echt de correlatie tussen de 2 variabelen voldoende verbetert. Dit kunnen we zien aan de schaal van de y-as. In dit geval is er een verbetering van slechts 0,01 (ongeveer). We kunnen dus stellen dat de transformatie verloren moeite is geweest: We hebben er moeite ingestopt voor maar weinig effect. Ook als we naar de 2 scatterplots (Lineair fit of original data en Lineair fit of transformed data) kijken, kunnen we vaststellen dat de transformatie weinig effect heeft gehad. De 2 scatterplots lijken nog sterk op elkaar en de punten liggen niet dichter of op de getrokken rechte, na transformatie van de variabele x.
We kunnen er eveneens bij vermelden dat als lambda een waarde nul aanneemt in het maximum van de grafiek, dat de transformatie dan uit een 'log' bestaat, maar dit is eerder bijkomende informatie.

Post a new message
Dataseries X:
97,3
101
113,2
101
105,7
113,9
86,4
96,5
103,3
114,9
105,8
94,2
98,4
99,4
108,8
112,6
104,4
112,2
81,1
97,1
112,6
113,8
107,8
103,2
103,3
101,2
107,7
110,4
101,9
115,9
89,9
88,6
117,2
123,9
100
103,6
94,1
98,7
119,5
112,7
104,4
124,7
89,1
97
121,6
118,8
114
111,5
97,2
102,5
113,4
109,8
104,9
126,1
80
96,8
117,2
112,3
117,3
111,1
102,2
104,3
122,9
107,6
121,3
131,5
89
104,4
128,9
135,9
133,3
121,3
120,5
120,4
137,9
126,1
133,2
151,1
105
119
140,4
156,6
137,1
122,7
Dataseries Y:
93,5
94,7
112,9
99,2
105,6
113
83,1
81,1
96,9
104,3
97,7
102,6
89,9
96
112,7
107,1
106,2
121
101,2
83,2
105,1
113,3
99,1
100,3
93,5
98,8
106,2
98,3
102,1
117,1
101,5
80,5
105,9
109,5
97,2
114,5
93,5
100,9
121,1
116,5
109,3
118,1
108,3
105,4
116,2
111,2
105,8
122,7
99,5
107,9
124,6
115
110,3
132,7
99,7
96,5
118,7
112,9
130,5
137,9
115
116,8
140,9
120,7
134,2
147,3
112,4
107,1
128,4
137,7
135
151
137,4
132,4
161,3
139,8
146
166,5
143,3
121
152,6
154,4
154,6
158




Summary of computational transaction
Raw Inputview raw input (R code)
Raw Outputview raw output of R engine
Computing time8 seconds
R Server'George Udny Yule' @ 72.249.76.132

\begin{tabular}{lllllllll}
\hline
Summary of computational transaction \tabularnewline
Raw Input & view raw input (R code)  \tabularnewline
Raw Output & view raw output of R engine  \tabularnewline
Computing time & 8 seconds \tabularnewline
R Server & 'George Udny Yule' @ 72.249.76.132 \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=23318&T=0

[TABLE]
[ROW][C]Summary of computational transaction[/C][/ROW]
[ROW][C]Raw Input[/C][C]view raw input (R code) [/C][/ROW]
[ROW][C]Raw Output[/C][C]view raw output of R engine [/C][/ROW]
[ROW][C]Computing time[/C][C]8 seconds[/C][/ROW]
[ROW][C]R Server[/C][C]'George Udny Yule' @ 72.249.76.132[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=23318&T=0

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=23318&T=0

As an alternative you can also use a QR Code:  

The GUIDs for individual cells are displayed in the table below:

Summary of computational transaction
Raw Inputview raw input (R code)
Raw Outputview raw output of R engine
Computing time8 seconds
R Server'George Udny Yule' @ 72.249.76.132







Box-Cox Linearity Plot
# observations x84
maximum correlation0.827240003327431
optimal lambda(x)2
Residual SD (orginial)11.2586465804959
Residual SD (transformed)11.0957109523920

\begin{tabular}{lllllllll}
\hline
Box-Cox Linearity Plot \tabularnewline
# observations x & 84 \tabularnewline
maximum correlation & 0.827240003327431 \tabularnewline
optimal lambda(x) & 2 \tabularnewline
Residual SD (orginial) & 11.2586465804959 \tabularnewline
Residual SD (transformed) & 11.0957109523920 \tabularnewline
\hline
\end{tabular}
%Source: https://freestatistics.org/blog/index.php?pk=23318&T=1

[TABLE]
[ROW][C]Box-Cox Linearity Plot[/C][/ROW]
[ROW][C]# observations x[/C][C]84[/C][/ROW]
[ROW][C]maximum correlation[/C][C]0.827240003327431[/C][/ROW]
[ROW][C]optimal lambda(x)[/C][C]2[/C][/ROW]
[ROW][C]Residual SD (orginial)[/C][C]11.2586465804959[/C][/ROW]
[ROW][C]Residual SD (transformed)[/C][C]11.0957109523920[/C][/ROW]
[/TABLE]
Source: https://freestatistics.org/blog/index.php?pk=23318&T=1

Globally Unique Identifier (entire table): ba.freestatistics.org/blog/index.php?pk=23318&T=1

As an alternative you can also use a QR Code:  

The GUIDs for individual cells are displayed in the table below:

Box-Cox Linearity Plot
# observations x84
maximum correlation0.827240003327431
optimal lambda(x)2
Residual SD (orginial)11.2586465804959
Residual SD (transformed)11.0957109523920



Parameters (Session):
Parameters (R input):
R code (references can be found in the software module):
n <- length(x)
c <- array(NA,dim=c(401))
l <- array(NA,dim=c(401))
mx <- 0
mxli <- -999
for (i in 1:401)
{
l[i] <- (i-201)/100
if (l[i] != 0)
{
x1 <- (x^l[i] - 1) / l[i]
} else {
x1 <- log(x)
}
c[i] <- cor(x1,y)
if (mx < abs(c[i]))
{
mx <- abs(c[i])
mxli <- l[i]
}
}
c
mx
mxli
if (mxli != 0)
{
x1 <- (x^mxli - 1) / mxli
} else {
x1 <- log(x)
}
r<-lm(y~x)
se <- sqrt(var(r$residuals))
r1 <- lm(y~x1)
se1 <- sqrt(var(r1$residuals))
bitmap(file='test1.png')
plot(l,c,main='Box-Cox Linearity Plot',xlab='Lambda',ylab='correlation')
grid()
dev.off()
bitmap(file='test2.png')
plot(x,y,main='Linear Fit of Original Data',xlab='x',ylab='y')
abline(r)
grid()
mtext(paste('Residual Standard Deviation = ',se))
dev.off()
bitmap(file='test3.png')
plot(x1,y,main='Linear Fit of Transformed Data',xlab='x',ylab='y')
abline(r1)
grid()
mtext(paste('Residual Standard Deviation = ',se1))
dev.off()
load(file='createtable')
a<-table.start()
a<-table.row.start(a)
a<-table.element(a,'Box-Cox Linearity Plot',2,TRUE)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a,'# observations x',header=TRUE)
a<-table.element(a,n)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a,'maximum correlation',header=TRUE)
a<-table.element(a,mx)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a,'optimal lambda(x)',header=TRUE)
a<-table.element(a,mxli)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a,'Residual SD (orginial)',header=TRUE)
a<-table.element(a,se)
a<-table.row.end(a)
a<-table.row.start(a)
a<-table.element(a,'Residual SD (transformed)',header=TRUE)
a<-table.element(a,se1)
a<-table.row.end(a)
a<-table.end(a)
table.save(a,file='mytable.tab')