Live data from Hacker News

Fractional Factorial Experiment Design: There Are Too Many Experiments to Do

blog.demofox.org

11–20 of 39 posts

Re: Fractional Factorial Experiment Design: There Are Too Many Experiments to Do

#11
Stat-Ease's Design-Expert is the industry standard software in this area.

Would have liked to see the author do a little more attribution. These are old ideas and techniques, and certainly not attributable to this author.

It's helpful to visualise the response surface. Diagrams are critical in learning this material.

Re: Fractional Factorial Experiment Design: There Are Too Many Experiments to Do

#12
post #10

I have studied at least a little combinatorics, and the language here is completely inpenetrable to me. Neither the question of "what property is this design supposed to have?" or "why does it have it?" are stated in plain or even mathematical english. The wiki entry is similarly unhelpful.

It's Design of Experiments language, DOE being a damned useful tiny little subset of applied statistics.

Re: Fractional Factorial Experiment Design: There Are Too Many Experiments to Do

#13
post #11

Stat-Ease's Design-Expert is the industry standard software in this area. Would have liked to see the author do a little more attribution. These are old ideas and techniques, and certainly not attributable to this author. It's helpful to visualise the response surface. Diagrams are critical in learning this material.

[deleted]

Re: Fractional Factorial Experiment Design: There Are Too Many Experiments to Do

#14
post #10

I have studied at least a little combinatorics, and the language here is completely inpenetrable to me. Neither the question of "what property is this design supposed to have?" or "why does it have it?" are stated in plain or even mathematical english. The wiki entry is similarly unhelpful.

In a full factorial design you’re able to calculate the main effects and all the interactions between everything and everything else: not just pairwise but all combinations of variables.

You may not care for that because you don’t think there are such interactions or perhaps you just don’t have the experimental budget.

In fractional designs you can chose to confound some of the interactions so that you can’t tell what’s happening beyond a certain level. Eg just main and pairwise effects, with the rest confounding those effects. You would do this because it requires fewer runs.

You can also use it as a sort of screener when you have many variables by confounding things together in such a way that you can at least tell which variables are having the effects even if you can’t calculate the individual effects.

Re: Fractional Factorial Experiment Design: There Are Too Many Experiments to Do

#15
Wow. As an experiment-design nerd, this may be one of my personal top favorite HN posts of all time.

I don't 100% get the generation part yet, but I believe that's just me needing practice.

A long time ago back in New York, Grace and Trevor from Javelin (Née Lean Startup Machine) taught me the scientific method over the course of a weekend workshop.

Still, to this day, I use their experiment design process and I am grateful for it. https://www.youtube.com/watch?v=F-5Iyj9A1MU

Thank you demofox for sharing!

Re: Fractional Factorial Experiment Design: There Are Too Many Experiments to Do

#16
post #4

Does any experimentation platform support this?

JMP is used industrially for design of experiments: https://www.jmp.com/en_us/software/capabilities/design-of-ex...

R also seems to have some libraries for things related to design of experiments.

Re: Fractional Factorial Experiment Design: There Are Too Many Experiments to Do

#17
I studied Design of Experiments (DOE) in college -- it was part of the core curriculum in my major. The content feels like it ought to be very useful (it's basically techniques on how to conduct experiments efficiently and reducing the number of runs, thus reducing overall cost).... yet I've never had occasion to ever apply it.

One area where I feel it might be relevant to my work is in hyperparameter tuning, especially when function evals are expensive. Instead of doing grid search (which is a brute-force exhaustive search), fractional factorial designs can search the multidimensional space with way less function evals. Yet I don't do it because it's easier to write code to do brute force and let the computer chug away over night.

In the world of web analytics, fractional factorial lets you run multivariate experiments efficiently rather than a combinatorial combination of A/B tests. From online articles, I'm guessing people do use it there, but A/B tests still dominate.

Fractional factorial is also most effective when the covariates are orthogonal and independent, which is rarely the case. We can get around this by projecting high dimensional covariates into lower dimensional space using PCA, which guarantees orthogonality, but this also seems to not be done so much.

Just wondering if anyone is using fractional factorial designs in real life? (or optimal designs like D-optimal designs)

Re: Fractional Factorial Experiment Design: There Are Too Many Experiments to Do

#18
The operator defined is associative and commutative and doing it twice gives you the identity. So to me, it seems a strange choice to notate this as some kind of word algebra; it feels much more natural to use binary vector notation.

In a later example, the post says ABD*BCE = ACDE. Let's translate this to binary vectors by putting a 1 when the letter is present, 0 when absent, and changing * to +. Then it becomes 11010 + 01101 = 10111. Clearly the * operator being discussed is XOR of binary vectors, which is why I choose to use + instead.

Now I'll attempt to translate the post into more standard linear algebra terminology. If you write the table rows as binary vectors, "setting up A and B and leaving C blank" is essentially setting up a 2x3 matrix (in general MxN) and leaving the third column blank, filling in the leftmost 2x2 (MxM) square with an identity matrix. Regardless of how you fill in C, this gives you a rank M matrix in reduced row echelon form.

Then "decide on a formula for how to set C’s value" is basically setting the remaining column(s) as some linear function of the original columns.

The alias is solving for the nullspace, the large example gives:

    [1 0 0 1 0][x0]   [0]
    [0 1 0 1 1][x1]   [0]
    [0 0 1 0 1][x2] = [0]
               [x3]   [0]
               [x4]   [0]
So you get the system of equations:

    x0 + x3 = 0
    x1 + x3 + x4 = 0
    x2 + x4 = 0
You can find all solutions by setting x3, x4 as free variables, and x0, x1, x2 are completely determined:

    x0 = x3
    x1 = x3 + x4
    x2 = x4
(This looks like a sign mistake, but because + represents XOR, we can freely switch between negative and positive, as addition and subtraction are the same modulo 2.) You proceed by assigning all possible values to x3 and x4, obtaining a nullspace of {00000, 01101, 11010, 10111}, which matches the first row of the table (I, BCE, ABD and ACDE). The remaining rows of the table are obtained by adding that nullspace to every element of the span of the original matrix. (Of course this hits all 32 possible combinations, there is a fairly easy-to-prove linear algebra theorem guaranteeing this.)

These are some abstract computations on binary vectors, why are they relevant to the real world? It mystified me for a bit, but I think the answer is that if two vectors x, y are aliases, we've set things up so that y = x+z for some z in the nullspace of our matrix M, which represents some linear function f(). Then f(y) = f(x+z) = f(x)+f(z) = f(x). The function f() should be related to our experiment and the fact f(y) = f(x) should be related to the idea "our setup can't distinguish between x and y" but it's not 100% clear to me how this conclusion follows. Any stats experts care to chime in?

It didn't discuss at all how to pick generators, but I would guess (1) you want all variables to be varied at least once, and (2) you want alias classes to contain preferably at most one "low-entropy" entry (where "low-entropy" means combinatorially a low popcount, because a priori a simpler explanation is likelier than a complex one (Occam's Razor), and possibly some application-specific context.)

Re: Fractional Factorial Experiment Design: There Are Too Many Experiments to Do

#19
Is it just me or does this require background knowledge that isn't widely available? I couldn't get through it as it never seemed to really explain what Aliases or Alias structures are, how determining those aliasing structures works (why multiply by C?), how this primary effect thing works and how any of this actually relates to the experiments in any way. As in, like, ok I do tests 1-4, now how do I turn that into insight with this algebra?

If someone could elaborate how this all fits together that would be great, because it does seem like there's some nuggets of insight to be found here

Re: Fractional Factorial Experiment Design: There Are Too Many Experiments to Do

#20
post #4

Does any experimentation platform support this?

For biology, Synthace supports designing experimental protocols using DOE, executing them on robotically automated lab equipment, then performing analysis on the results: https://www.synthace.com/
Post reply on HN