Clash Royale CLAN TAG#URR8PPP
5
down vote
favorite
Writing:
expectedresults = {4, 8, 5, 1, 4, 6, 4, 1, 9, 3};
achievedresults = {3, 6, 4, 2, 10, 7, 2, 4, 8, 4};
p1 = BarChart[expectedresults, ChartStyle > Directive[Opacity[0.1], Blue]];
p2 = BarChart[achievedresults, ChartStyle > Directive[Opacity[0.1], Red]];
Show[p1, p2]
I get:
On the other hand, if I write:
k = 0.83;
expectedresults = {4, 8, 5, 1, 4, 6, 4, 1, 9, 3};
achievedresults = {3, 6, 4, 2, 10, 7, 2, 4, 8, 4} k;
p1 = BarChart[expectedresults, ChartStyle > Directive[Opacity[0.1], Blue]];
p2 = BarChart[achievedresults, ChartStyle > Directive[Opacity[0.1], Red]];
Show[p1, p2]
I get:
where it is clear that, compared to the previous case, in some bars the gap has decreased and in others it has increased.
Question: How can I determine the best value of k
to get the smallest possible gap?
Writing:
h = 0.35;
k = 0.83;
expectedresults = {4, 8, 5, 1, 4, 6, 4, 1, 9, 3};
achievedresults = h + k {3, 6, 4, 2, 10, 7, 2, 4, 8, 4};
p1 = BarChart[expectedresults, ChartStyle > Directive[Opacity[0.1], Blue]];
p2 = BarChart[achievedresults, ChartStyle > Directive[Opacity[0.1], Red]];
Show[p1, p2]
I get:
Question 2: is it possible to determine the pair of values h
, k
that minimize the gap?
add a comment 
5
down vote
favorite
Writing:
expectedresults = {4, 8, 5, 1, 4, 6, 4, 1, 9, 3};
achievedresults = {3, 6, 4, 2, 10, 7, 2, 4, 8, 4};
p1 = BarChart[expectedresults, ChartStyle > Directive[Opacity[0.1], Blue]];
p2 = BarChart[achievedresults, ChartStyle > Directive[Opacity[0.1], Red]];
Show[p1, p2]
I get:
On the other hand, if I write:
k = 0.83;
expectedresults = {4, 8, 5, 1, 4, 6, 4, 1, 9, 3};
achievedresults = {3, 6, 4, 2, 10, 7, 2, 4, 8, 4} k;
p1 = BarChart[expectedresults, ChartStyle > Directive[Opacity[0.1], Blue]];
p2 = BarChart[achievedresults, ChartStyle > Directive[Opacity[0.1], Red]];
Show[p1, p2]
I get:
where it is clear that, compared to the previous case, in some bars the gap has decreased and in others it has increased.
Question: How can I determine the best value of k
to get the smallest possible gap?
Writing:
h = 0.35;
k = 0.83;
expectedresults = {4, 8, 5, 1, 4, 6, 4, 1, 9, 3};
achievedresults = h + k {3, 6, 4, 2, 10, 7, 2, 4, 8, 4};
p1 = BarChart[expectedresults, ChartStyle > Directive[Opacity[0.1], Blue]];
p2 = BarChart[achievedresults, ChartStyle > Directive[Opacity[0.1], Red]];
Show[p1, p2]
I get:
Question 2: is it possible to determine the pair of values h
, k
that minimize the gap?

This is a related question: How to find the distance of two lists?
– Artes
Nov 29 at 16:03
add a comment 
5
down vote
favorite
5
down vote
favorite
Writing:
expectedresults = {4, 8, 5, 1, 4, 6, 4, 1, 9, 3};
achievedresults = {3, 6, 4, 2, 10, 7, 2, 4, 8, 4};
p1 = BarChart[expectedresults, ChartStyle > Directive[Opacity[0.1], Blue]];
p2 = BarChart[achievedresults, ChartStyle > Directive[Opacity[0.1], Red]];
Show[p1, p2]
I get:
On the other hand, if I write:
k = 0.83;
expectedresults = {4, 8, 5, 1, 4, 6, 4, 1, 9, 3};
achievedresults = {3, 6, 4, 2, 10, 7, 2, 4, 8, 4} k;
p1 = BarChart[expectedresults, ChartStyle > Directive[Opacity[0.1], Blue]];
p2 = BarChart[achievedresults, ChartStyle > Directive[Opacity[0.1], Red]];
Show[p1, p2]
I get:
where it is clear that, compared to the previous case, in some bars the gap has decreased and in others it has increased.
Question: How can I determine the best value of k
to get the smallest possible gap?
Writing:
h = 0.35;
k = 0.83;
expectedresults = {4, 8, 5, 1, 4, 6, 4, 1, 9, 3};
achievedresults = h + k {3, 6, 4, 2, 10, 7, 2, 4, 8, 4};
p1 = BarChart[expectedresults, ChartStyle > Directive[Opacity[0.1], Blue]];
p2 = BarChart[achievedresults, ChartStyle > Directive[Opacity[0.1], Red]];
Show[p1, p2]
I get:
Question 2: is it possible to determine the pair of values h
, k
that minimize the gap?
Writing:
expectedresults = {4, 8, 5, 1, 4, 6, 4, 1, 9, 3};
achievedresults = {3, 6, 4, 2, 10, 7, 2, 4, 8, 4};
p1 = BarChart[expectedresults, ChartStyle > Directive[Opacity[0.1], Blue]];
p2 = BarChart[achievedresults, ChartStyle > Directive[Opacity[0.1], Red]];
Show[p1, p2]
I get:
On the other hand, if I write:
k = 0.83;
expectedresults = {4, 8, 5, 1, 4, 6, 4, 1, 9, 3};
achievedresults = {3, 6, 4, 2, 10, 7, 2, 4, 8, 4} k;
p1 = BarChart[expectedresults, ChartStyle > Directive[Opacity[0.1], Blue]];
p2 = BarChart[achievedresults, ChartStyle > Directive[Opacity[0.1], Red]];
Show[p1, p2]
I get:
where it is clear that, compared to the previous case, in some bars the gap has decreased and in others it has increased.
Question: How can I determine the best value of k
to get the smallest possible gap?
Writing:
h = 0.35;
k = 0.83;
expectedresults = {4, 8, 5, 1, 4, 6, 4, 1, 9, 3};
achievedresults = h + k {3, 6, 4, 2, 10, 7, 2, 4, 8, 4};
p1 = BarChart[expectedresults, ChartStyle > Directive[Opacity[0.1], Blue]];
p2 = BarChart[achievedresults, ChartStyle > Directive[Opacity[0.1], Red]];
Show[p1, p2]
I get:
Question 2: is it possible to determine the pair of values h
, k
that minimize the gap?

This is a related question: How to find the distance of two lists?
– Artes
Nov 29 at 16:03
add a comment 

This is a related question: How to find the distance of two lists?
– Artes
Nov 29 at 16:03
– Artes
Nov 29 at 16:03
– Artes
Nov 29 at 16:03
add a comment 
2 Answers
2
active
oldest
votes
4
down vote
accepted
Update: Using two parameters:
lmf2 = LinearModelFit[data, t, t];
Normal@lmf2
1.76563 + 0.546875 t
lmf2["BestFitParameters"]
{1.76563, 0.546875}
Fit[data, {1, t}, t]
1.76563 + 0.546875 t
ClearAll[h, k]
NMinimize[Total[Subtract[expectedresults, h + k achievedresults]^2], {h, k}]
{43.3594, {h > 1.76562, k > 0.546875}}
N @ LeastSquares[Thread[{1, achievedresults}], expectedresults]
{1.76563, 0.546875}
Original answer:
expectedresults = {4, 8, 5, 1, 4, 6, 4, 1, 9, 3};
achievedresults = {3, 6, 4, 2, 10, 7, 2, 4, 8, 4};
data = Transpose[{ achievedresults,expectedresults}];
You can use LinearModelFit
or Fit
or NMinimize
or LeastSquares
to get the value of k
that minimizes the sum of squared distances between expectedresults
and k achievedresults
:
lmf = LinearModelFit[data, t, t, IncludeConstantBasis > False]
Normal@lmf
0.828025 t
Normal @ LinearModelFit[{Transpose[{achievedresults}], expectedresults}]
0.828025 #1
Fit[data, {t}, t]
0.828025 t
ClearAll[k]
NMinimize[Total[Subtract[expectedresults, k achievedresults]^2], k]
{49.7134, {k > 0.828025}}
N@LeastSquares[Thread[{achievedresults}], expectedresults]
{0.828025}
k = lmf["BestFitParameters"][[1]]
0.828025
p1 = BarChart[expectedresults, ChartStyle > Directive[Opacity[0.1], Blue]];
p2 = BarChart[k achievedresults, ChartStyle > Directive[Opacity[0.1], Red]];
Show[p1, p2]
BarChart[Transpose@{expectedresults, achievedresults, k achievedresults},
ChartStyle > {Blue, Red, Green}, ChartLayout > "Grouped",
ChartLegends > {"expectedresults", "achievedresults", "k achievedresults"}]

For general data you can always find several values of $k$ that eliminate the difference between whichever bars you like.
– David G. Stork
Nov 28 at 20:42 
@TeM, please see the update.
– kglr
Nov 28 at 21:47 
Perfect, mathematically it is clear to me! But I wonder if so “improve” the minimization or less than before!
– TeM
Nov 28 at 21:48 
1@TeM, If you compare the
NMinimize
result adding the intercept parameter improves the squared loss from49.7134
to43.3594
.
– kglr
Nov 28 at 21:54
add a comment 
7
down vote
{k, h} = PseudoInverse[{#, 1} & /@ achievedresults].expectedresults
{35/64, 113/64}

2Why do you add a zero column? I think
PseudoInverse[Transpose[{achievedresults}]].expectedresults
will do
– MeMyselfI
Nov 28 at 20:56 
1@MeMyselfI Nice! Even better
– Chris
Nov 28 at 21:05 
Really great!!!
– TeM
Nov 28 at 21:50
add a comment 
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
4
down vote
accepted
Update: Using two parameters:
lmf2 = LinearModelFit[data, t, t];
Normal@lmf2
1.76563 + 0.546875 t
lmf2["BestFitParameters"]
{1.76563, 0.546875}
Fit[data, {1, t}, t]
1.76563 + 0.546875 t
ClearAll[h, k]
NMinimize[Total[Subtract[expectedresults, h + k achievedresults]^2], {h, k}]
{43.3594, {h > 1.76562, k > 0.546875}}
N @ LeastSquares[Thread[{1, achievedresults}], expectedresults]
{1.76563, 0.546875}
Original answer:
expectedresults = {4, 8, 5, 1, 4, 6, 4, 1, 9, 3};
achievedresults = {3, 6, 4, 2, 10, 7, 2, 4, 8, 4};
data = Transpose[{ achievedresults,expectedresults}];
You can use LinearModelFit
or Fit
or NMinimize
or LeastSquares
to get the value of k
that minimizes the sum of squared distances between expectedresults
and k achievedresults
:
lmf = LinearModelFit[data, t, t, IncludeConstantBasis > False]
Normal@lmf
0.828025 t
Normal @ LinearModelFit[{Transpose[{achievedresults}], expectedresults}]
0.828025 #1
Fit[data, {t}, t]
0.828025 t
ClearAll[k]
NMinimize[Total[Subtract[expectedresults, k achievedresults]^2], k]
{49.7134, {k > 0.828025}}
N@LeastSquares[Thread[{achievedresults}], expectedresults]
{0.828025}
k = lmf["BestFitParameters"][[1]]
0.828025
p1 = BarChart[expectedresults, ChartStyle > Directive[Opacity[0.1], Blue]];
p2 = BarChart[k achievedresults, ChartStyle > Directive[Opacity[0.1], Red]];
Show[p1, p2]
BarChart[Transpose@{expectedresults, achievedresults, k achievedresults},
ChartStyle > {Blue, Red, Green}, ChartLayout > "Grouped",
ChartLegends > {"expectedresults", "achievedresults", "k achievedresults"}]

For general data you can always find several values of $k$ that eliminate the difference between whichever bars you like.
– David G. Stork
Nov 28 at 20:42 
@TeM, please see the update.
– kglr
Nov 28 at 21:47 
Perfect, mathematically it is clear to me! But I wonder if so “improve” the minimization or less than before!
– TeM
Nov 28 at 21:48 
1@TeM, If you compare the
NMinimize
result adding the intercept parameter improves the squared loss from49.7134
to43.3594
.
– kglr
Nov 28 at 21:54
add a comment 
4
down vote
accepted
Update: Using two parameters:
lmf2 = LinearModelFit[data, t, t];
Normal@lmf2
1.76563 + 0.546875 t
lmf2["BestFitParameters"]
{1.76563, 0.546875}
Fit[data, {1, t}, t]
1.76563 + 0.546875 t
ClearAll[h, k]
NMinimize[Total[Subtract[expectedresults, h + k achievedresults]^2], {h, k}]
{43.3594, {h > 1.76562, k > 0.546875}}
N @ LeastSquares[Thread[{1, achievedresults}], expectedresults]
{1.76563, 0.546875}
Original answer:
expectedresults = {4, 8, 5, 1, 4, 6, 4, 1, 9, 3};
achievedresults = {3, 6, 4, 2, 10, 7, 2, 4, 8, 4};
data = Transpose[{ achievedresults,expectedresults}];
You can use LinearModelFit
or Fit
or NMinimize
or LeastSquares
to get the value of k
that minimizes the sum of squared distances between expectedresults
and k achievedresults
:
lmf = LinearModelFit[data, t, t, IncludeConstantBasis > False]
Normal@lmf
0.828025 t
Normal @ LinearModelFit[{Transpose[{achievedresults}], expectedresults}]
0.828025 #1
Fit[data, {t}, t]
0.828025 t
ClearAll[k]
NMinimize[Total[Subtract[expectedresults, k achievedresults]^2], k]
{49.7134, {k > 0.828025}}
N@LeastSquares[Thread[{achievedresults}], expectedresults]
{0.828025}
k = lmf["BestFitParameters"][[1]]
0.828025
p1 = BarChart[expectedresults, ChartStyle > Directive[Opacity[0.1], Blue]];
p2 = BarChart[k achievedresults, ChartStyle > Directive[Opacity[0.1], Red]];
Show[p1, p2]
BarChart[Transpose@{expectedresults, achievedresults, k achievedresults},
ChartStyle > {Blue, Red, Green}, ChartLayout > "Grouped",
ChartLegends > {"expectedresults", "achievedresults", "k achievedresults"}]

For general data you can always find several values of $k$ that eliminate the difference between whichever bars you like.
– David G. Stork
Nov 28 at 20:42 
@TeM, please see the update.
– kglr
Nov 28 at 21:47 
Perfect, mathematically it is clear to me! But I wonder if so “improve” the minimization or less than before!
– TeM
Nov 28 at 21:48 
1@TeM, If you compare the
NMinimize
result adding the intercept parameter improves the squared loss from49.7134
to43.3594
.
– kglr
Nov 28 at 21:54
add a comment 
4
down vote
accepted
4
down vote
accepted
Update: Using two parameters:
lmf2 = LinearModelFit[data, t, t];
Normal@lmf2
1.76563 + 0.546875 t
lmf2["BestFitParameters"]
{1.76563, 0.546875}
Fit[data, {1, t}, t]
1.76563 + 0.546875 t
ClearAll[h, k]
NMinimize[Total[Subtract[expectedresults, h + k achievedresults]^2], {h, k}]
{43.3594, {h > 1.76562, k > 0.546875}}
N @ LeastSquares[Thread[{1, achievedresults}], expectedresults]
{1.76563, 0.546875}
Original answer:
expectedresults = {4, 8, 5, 1, 4, 6, 4, 1, 9, 3};
achievedresults = {3, 6, 4, 2, 10, 7, 2, 4, 8, 4};
data = Transpose[{ achievedresults,expectedresults}];
You can use LinearModelFit
or Fit
or NMinimize
or LeastSquares
to get the value of k
that minimizes the sum of squared distances between expectedresults
and k achievedresults
:
lmf = LinearModelFit[data, t, t, IncludeConstantBasis > False]
Normal@lmf
0.828025 t
Normal @ LinearModelFit[{Transpose[{achievedresults}], expectedresults}]
0.828025 #1
Fit[data, {t}, t]
0.828025 t
ClearAll[k]
NMinimize[Total[Subtract[expectedresults, k achievedresults]^2], k]
{49.7134, {k > 0.828025}}
N@LeastSquares[Thread[{achievedresults}], expectedresults]
{0.828025}
k = lmf["BestFitParameters"][[1]]
0.828025
p1 = BarChart[expectedresults, ChartStyle > Directive[Opacity[0.1], Blue]];
p2 = BarChart[k achievedresults, ChartStyle > Directive[Opacity[0.1], Red]];
Show[p1, p2]
BarChart[Transpose@{expectedresults, achievedresults, k achievedresults},
ChartStyle > {Blue, Red, Green}, ChartLayout > "Grouped",
ChartLegends > {"expectedresults", "achievedresults", "k achievedresults"}]
Update: Using two parameters:
lmf2 = LinearModelFit[data, t, t];
Normal@lmf2
1.76563 + 0.546875 t
lmf2["BestFitParameters"]
{1.76563, 0.546875}
Fit[data, {1, t}, t]
1.76563 + 0.546875 t
ClearAll[h, k]
NMinimize[Total[Subtract[expectedresults, h + k achievedresults]^2], {h, k}]
{43.3594, {h > 1.76562, k > 0.546875}}
N @ LeastSquares[Thread[{1, achievedresults}], expectedresults]
{1.76563, 0.546875}
Original answer:
expectedresults = {4, 8, 5, 1, 4, 6, 4, 1, 9, 3};
achievedresults = {3, 6, 4, 2, 10, 7, 2, 4, 8, 4};
data = Transpose[{ achievedresults,expectedresults}];
You can use LinearModelFit
or Fit
or NMinimize
or LeastSquares
to get the value of k
that minimizes the sum of squared distances between expectedresults
and k achievedresults
:
lmf = LinearModelFit[data, t, t, IncludeConstantBasis > False]
Normal@lmf
0.828025 t
Normal @ LinearModelFit[{Transpose[{achievedresults}], expectedresults}]
0.828025 #1
Fit[data, {t}, t]
0.828025 t
ClearAll[k]
NMinimize[Total[Subtract[expectedresults, k achievedresults]^2], k]
{49.7134, {k > 0.828025}}
N@LeastSquares[Thread[{achievedresults}], expectedresults]
{0.828025}
k = lmf["BestFitParameters"][[1]]
0.828025
p1 = BarChart[expectedresults, ChartStyle > Directive[Opacity[0.1], Blue]];
p2 = BarChart[k achievedresults, ChartStyle > Directive[Opacity[0.1], Red]];
Show[p1, p2]
BarChart[Transpose@{expectedresults, achievedresults, k achievedresults},
ChartStyle > {Blue, Red, Green}, ChartLayout > "Grouped",
ChartLegends > {"expectedresults", "achievedresults", "k achievedresults"}]

For general data you can always find several values of $k$ that eliminate the difference between whichever bars you like.
– David G. Stork
Nov 28 at 20:42 
@TeM, please see the update.
– kglr
Nov 28 at 21:47 
Perfect, mathematically it is clear to me! But I wonder if so “improve” the minimization or less than before!
– TeM
Nov 28 at 21:48 
1@TeM, If you compare the
NMinimize
result adding the intercept parameter improves the squared loss from49.7134
to43.3594
.
– kglr
Nov 28 at 21:54
add a comment 

For general data you can always find several values of $k$ that eliminate the difference between whichever bars you like.
– David G. Stork
Nov 28 at 20:42 
@TeM, please see the update.
– kglr
Nov 28 at 21:47 
Perfect, mathematically it is clear to me! But I wonder if so “improve” the minimization or less than before!
– TeM
Nov 28 at 21:48 
1@TeM, If you compare the
NMinimize
result adding the intercept parameter improves the squared loss from49.7134
to43.3594
.
– kglr
Nov 28 at 21:54
– David G. Stork
Nov 28 at 20:42
– David G. Stork
Nov 28 at 20:42
– kglr
Nov 28 at 21:47
– kglr
Nov 28 at 21:47
– TeM
Nov 28 at 21:48
– TeM
Nov 28 at 21:48
NMinimize
result adding the intercept parameter improves the squared loss from 49.7134
to 43.3594
.– kglr
Nov 28 at 21:54
NMinimize
result adding the intercept parameter improves the squared loss from 49.7134
to 43.3594
.– kglr
Nov 28 at 21:54
add a comment 
7
down vote
{k, h} = PseudoInverse[{#, 1} & /@ achievedresults].expectedresults
{35/64, 113/64}

2Why do you add a zero column? I think
PseudoInverse[Transpose[{achievedresults}]].expectedresults
will do
– MeMyselfI
Nov 28 at 20:56 
1@MeMyselfI Nice! Even better
– Chris
Nov 28 at 21:05 
Really great!!!
– TeM
Nov 28 at 21:50
add a comment 
7
down vote
{k, h} = PseudoInverse[{#, 1} & /@ achievedresults].expectedresults
{35/64, 113/64}

2Why do you add a zero column? I think
PseudoInverse[Transpose[{achievedresults}]].expectedresults
will do
– MeMyselfI
Nov 28 at 20:56 
1@MeMyselfI Nice! Even better
– Chris
Nov 28 at 21:05 
Really great!!!
– TeM
Nov 28 at 21:50
add a comment 
7
down vote
7
down vote
{k, h} = PseudoInverse[{#, 1} & /@ achievedresults].expectedresults
{35/64, 113/64}
{k, h} = PseudoInverse[{#, 1} & /@ achievedresults].expectedresults
{35/64, 113/64}

2Why do you add a zero column? I think
PseudoInverse[Transpose[{achievedresults}]].expectedresults
will do
– MeMyselfI
Nov 28 at 20:56 
1@MeMyselfI Nice! Even better
– Chris
Nov 28 at 21:05 
Really great!!!
– TeM
Nov 28 at 21:50
add a comment 

2Why do you add a zero column? I think
PseudoInverse[Transpose[{achievedresults}]].expectedresults
will do
– MeMyselfI
Nov 28 at 20:56 
1@MeMyselfI Nice! Even better
– Chris
Nov 28 at 21:05 
Really great!!!
– TeM
Nov 28 at 21:50
PseudoInverse[Transpose[{achievedresults}]].expectedresults
will do– MeMyselfI
Nov 28 at 20:56
PseudoInverse[Transpose[{achievedresults}]].expectedresults
will do– MeMyselfI
Nov 28 at 20:56
– Chris
Nov 28 at 21:05
– Chris
Nov 28 at 21:05
– TeM
Nov 28 at 21:50
– TeM
Nov 28 at 21:50
add a comment 
Thanks for contributing an answer to Mathematica Stack Exchange!
 Please be sure to answer the question. Provide details and share your research!
But avoid …
 Asking for help, clarification, or responding to other answers.
 Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Some of your past answers have not been wellreceived, and you’re in danger of being blocked from answering.
Please pay close attention to the following guidance:
 Please be sure to answer the question. Provide details and share your research!
But avoid …
 Asking for help, clarification, or responding to other answers.
 Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave(‘#loginlink’);
});
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin(‘.newpostlogin’, ‘https%3a%2f%2fmathematica.stackexchange.com%2fquestions%2f186910%2fminimizedistancebetweentwolists%23newanswer’, ‘question_page’);
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave(‘#loginlink’);
});
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave(‘#loginlink’);
});
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave(‘#loginlink’);
});
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
– Artes
Nov 29 at 16:03