ttfreitas
(Thadeu Freitas Filho)
1
Hello, Community
I have built the following matrix (10,10) of data
xdata = Table[RandomVariate[NormalDistribution[], n], 10];
\[Epsilon]data = Table[RandomVariate[NormalDistribution[0, RandomChoice[{1/3, 1, 3}]], n], 10];
\[Beta]data = Table[RandomChoice[{1/3, 1, 3}, n], 10];
ydata = xdata \[Beta]data + \[Epsilon]data;
I rearranged the data according to
data = Table[Transpose[{ydata[[k]], xdata[[k]]}], {k, 10}];
But when I map LinearModelFit to estimate 10 equations like below,
lsFunc = LinearModelFit[#, x, x] & /@ data
It doesn’t work {:^(
Can someone please let me know my mistake and how to fix it?
Also, how can I Map properties to the LinearModelFit results? For example, I want to extract the list of “BestFitParameters”.
ttfreitas
(Thadeu Freitas Filho)
2
OK, it wasn’t working then but it’s working now…Go figure!
I still need help with Mapping the properties of LinearModelFit to the results. The following, for example, doesn’t work:
parametersLs = Map[lsFunc["BestFitParameters"], lsFunc]
I would appreciate any help. Thanks in advance,
Thad
ttfreitas
(Thadeu Freitas Filho)
3
OK, this worked like a charm:
Table[lsFunc[[j]]["BestFitParameters"], {j, 10}]
Cheers,
Thad
mroge02
(Michael Rogers)
4
You can also get the parameters with this:
Through[lsFunc["BestFitParameters"]]
It is equivalent to Table[[lsFunc[[k]]["BestFitParameters"], {k, 10}].
By the way, you can also construct data like this:
data = Transpose[{ydata, xdata}, {3, 1, 2}];
ttfreitas
(Thadeu Freitas Filho)
5
Michael, how do I apply the Through function if my LinearModelFit results have two levels, like the following, for example?
ols = LinearModelFit[#, v, v] & @@@ # & /@ data
I have tried combinations of Through with Map and others without success.
Thank you
ttfreitas
(Thadeu Freitas Filho)
6
I have found the following way:
#["BestFitParameters"] & /@ # & /@ ols
But I still can’t make it work with Through.
Cheers