snotskie / EpistemicNetworkAnalysis.jl

Native implementation of Epistemic Network Analysis written in the Julia programming language. Based on rENA 0.2.0.1.
https://snotskie.github.io/EpistemicNetworkAnalysis.jl/
GNU General Public License v3.0
6 stars 2 forks source link

lineNormalize #57

Closed snotskie closed 7 months ago

snotskie commented 7 months ago

Add an alternative to sphere normalization, which does not create an "umbrella" axis

image

One alternative is "line normalization". This normalizes units to the plane perp to 1, adjusting distances from 1 such that the new linear distance is equal to the original arc distance

As a proof of concept:

Before:

image

After: image

Above, I've forced the x-axis to align moreorless with the "umbrella" axis. Notice the drop in variance explained as well as the change in shape

image

Here I've run a stock SVD rotation, before on the left, after on the right. Notice the change in the shape. The "bend" on the left was due to the normalization technique, not a meaningful feature of the data. The image on the right removes the bend, showing more meaningful variance

snotskie commented 7 months ago

staged in https://github.com/snotskie/EpistemicNetworkAnalysis.jl/commit/048af4777e72c37d899f2b6483680a342856a3a3

snotskie commented 7 months ago

Slight tweak, staged in https://github.com/snotskie/EpistemicNetworkAnalysis.jl/commit/063f9dcff2012bcebf82c7dcb57c8d6be5e0f5d6

Using the mean vector (normalized) instead of 1. Here we see a perfectly straight line, not because this makes things straighter, but because the method I was using to "show" the "umbrella" looked for the mean line, not 1

image

The impact on SVD was minimal in this case, but the choice of the mean vector instead of 1 might be more justifiable. The mean vector tends to be important for downstream steps, and there is no guarantee that 1 will be near any data

image

The impact on non-SVD rotations is shown below

Before

image

image

After

image

image