[R] Latin Hypercube with condition sum = 1
Rainer M Krug
r.m.krug at gmail.com
Mon Nov 24 09:31:53 CET 2008
On Sun, Nov 23, 2008 at 8:06 PM, Ben Bolker <bolker at ufl.edu> wrote:
> In that case won't
>
> x2 <- (x-min(x))/(max(x)-min(x)) ## establishes criterion 1
That one is not needed, as the range is automatically between 0 and 1:
min(ws)
[1] 6.925322e-05
> max(ws)
[1] 0.9999284
so that is fine.
but when I do the normalization, i.e. the sum of each row has to be 1:
wss <- ws / rowSums(ws)
the min and max change to:
> min(wss)
[1] 0.0003943225
> max(wss)
[1] 0.4834845
But there is also the possibility, that one value ws[n,1] is larger
then one (or one), and the others are zero (or sum(ws[n,-1] ==
1-ws[n,1]), e.g. (1,0,0,0,0,0,0).
In addition, I think that the resulting cube is not a Latin Hypercube any more.
> x3 <- x2/sum(x2) ## establishes criterion 2
>
> work? I haven't thought about this very carefully, but
> since transformation makes min(x)=0 and max(x)=1 (and therefore
> sum(x)>1 -- although it won't work if length(x)<2 or var(x)==0)
> transformation 2 will necessarily reduce the range and therefore
> not violate criterion 1 ... ?
>
> Ben Bolker
>
>
> Rainer M Krug wrote:
>> On Sun, Nov 23, 2008 at 7:43 PM, Ben Bolker <bolker at ufl.edu> wrote:
>>> Rainer M Krug <r.m.krug <at> gmail.com> writes:
>>>
>>>> Hi
>>>>
>>>> I want to du a sensitivity analysis using Latin Hypercubes. But my
>>>> parameters have to fulfill two conditions:
>>>>
>>>> 1) ranging from 0 to 1
>>>> 2) have to sum up to 1
>>>>
>>> Perhaps I'm missing something, but it seems that there's
>>> only one vector that satisfies these two conditions simultaneously,
>>> which is x={0,1} ... ??? (Actually, technically speaking
>>> you could have as many zeros as you wanted -- x = {0,0,0,1}
>>> would also work -- but I don't think that's going to help much.)
>>> If min(x)=0 and max(x)=1, then x must contain 0 and 1. If x
>>> contains any other non-zero values, and no negative
>>> ones, then sum(x)>1 ...
>>
>> You are absolutely right - but when you look at the example, I want
>> that the FINAL latin hypercube sets sum up to one, and the values
>> RANGING from 0 to 1, i.e. (0.5, 0.5) would also satisfy the condition.
>>
>>> You seem to have a problem either in your definitions,
>>> or in your communication of those definitions to us ...
>>
>> Probably both - but to try again:
>>
>> 1) values ranging between 0 and 1 (0 <= x <= 1)
>> 2) all elements in one set of the lLatin Hypercube should add to one.
>>
>> Assuming two dimensions, (1,0) & (0,1) & (0.3, 0.7) , ... would all
>> satisfy the condition 1 and 2;
>>
>> (0.8, 0.3) would satisfy 1, but not 2;
>> (-1, 2) would satisfy 2, but not 1
>>
>> Hope this clarifies my question,
>>
>> Rainer
>>
>>> cheers
>>> Ben Bolker
>>>
>>> ______________________________________________
>>> R-help at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>>
>>
>>
>>
>
>
> --
> Ben Bolker
> Associate professor, Biology Dep't, Univ. of Florida
> bolker at ufl.edu / www.zoology.ufl.edu/bolker
> GPG key: www.zoology.ufl.edu/bolker/benbolker-publickey.asc
>
--
Rainer M. Krug, PhD (Conservation Ecology, SUN), MSc (Conservation
Biology, UCT), Dipl. Phys. (Germany)
Centre of Excellence for Invasion Biology
Faculty of Science
Natural Sciences Building
Private Bag X1
University of Stellenbosch
Matieland 7602
South Africa
More information about the R-help
mailing list