Skip to content

Commit

Permalink
korr. Beziehungsgewicht & korr. Dichte=mittlerer Degree Table 1 und CSV
Browse files Browse the repository at this point in the history
  • Loading branch information
alex-rind committed Nov 2, 2022
1 parent d3e176a commit 5b438d2
Show file tree
Hide file tree
Showing 3 changed files with 86 additions and 0 deletions.
37 changes: 37 additions & 0 deletions src/components/StatisticsTable.vue
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,21 @@
</th>
<td>{{ naehenSum }}</td>
</tr>
<tr>
<th
title="Durchschnittliche Nähe bzw. Distanz der Kontakte zur Ankerperson. Je höher die Kennzahl, umso näher stehen die Personen der Ankerperson."
>
korrigiertes Beziehungsgewicht
</th>
<td>
{{
(naehenSum / networkSize).toLocaleString(undefined, {
minimumFractionDigits: 3,
maximumFractionDigits: 3,
})
}}
</td>
</tr>
<tr>
<th
title="Verhältnis der tatsächlich vorhandenen zu den theoretisch möglichen Verbindungen (exklusive der Verbindungen zwischen Anker- und Kontaktpersonen, inklusive Personen ohne Kante zur Ankerperson). Optional: Maßzahl liegt zwischen 0 (nur isolierte Kontakte) und 1 (jede Person im Netzwerk ist mit jeder anderen verbunden)."
Expand All @@ -42,6 +57,21 @@
}}
</td>
</tr>
<tr>
<th
title="Mittelwert der Verbindungen pro Kontakt (exklusive der Verbindungen zwischen Anker- und Kontaktpersonen, inklusive Personen ohne Kante zur Ankerperson). Optional: Maßzahl liegt zwischen 0 (nur isolierte Kontakte) und der Anzahl der Kontakte minus 1 (jede Person im Netzwerk ist mit jeder anderen verbunden)."
>
Durchschnittlicher Degree
</th>
<td>
{{
averageDegree.toLocaleString(undefined, {
minimumFractionDigits: 3,
maximumFractionDigits: 3,
})
}}
</td>
</tr>
<tr>
<th
title="Kontakt(e) mit den meisten Verbindungen im Netzwerk (neben der Ankerperson)"
Expand Down Expand Up @@ -107,6 +137,7 @@ import { computed, defineComponent } from "vue";
import { useStore } from "@/store";
import {
analyseNWKbyCategory,
calculateAverageDegree,
calculateDensity,
getOrInit,
NetworkAnalysis,
Expand All @@ -128,6 +159,11 @@ export default defineComponent({
return calculateDensity(alterConnectable, intConnCount);
});
const averageDegree = computed((): number => {
const { alterConnectable, intConnCount } = networkAnalysis.value;
return calculateAverageDegree(alterConnectable, intConnCount);
});
const stars = computed(() => {
const alteri = networkAnalysis.value.stars;
if (alteri.length > 0 && networkAnalysis.value.maxDegree > 0) {
Expand Down Expand Up @@ -176,6 +212,7 @@ export default defineComponent({
networkSize: computed(() => networkAnalysis.value.alterConnected),
naehenSum: computed(() => networkAnalysis.value.naehenSum),
density,
averageDegree,
stars,
isolated: makeComputedAlterGroup("isolated"),
alterZeroEdge: makeComputedAlterGroup("alterZeroEdge"),
Expand Down
18 changes: 18 additions & 0 deletions src/data/NetworkAnalysis.ts
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,24 @@ export function calculateDensity(
}
}

/**
*
* Based on formula by Joseph Richter Mackensteiner (20-Mar-2022)
* @param alterCount
* @param connectionsCount
* @returns
*/
export function calculateAverageDegree(
alterCount: number,
connectionsCount: number
): number {
if (alterCount < 2) {
return 0.0;
} else {
return (2.0 * connectionsCount) / alterCount;
}
}

// export function calculateExternalDensity(
// alterCount: number,
// externalAlterCount: number,
Expand Down
31 changes: 31 additions & 0 deletions src/data/statisticsCSV.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {
} from "@/data/AlterCategories";
import {
analyseNWKbyCategory,
calculateAverageDegree,
calculateDensity,
getOrInit,
NetworkAnalysis,
Expand Down Expand Up @@ -42,6 +43,19 @@ export function statisticsCSV(
output += SEP + getOrInit(networkAnalysis, label).naehenSum.toFixed(0);
}

output += "\nkorrigiertes Beziehungsgewicht";
for (const label of categorization.categories) {
output +=
SEP +
(
getOrInit(networkAnalysis, label).naehenSum /
getOrInit(networkAnalysis, label).alterConnected
).toLocaleString(undefined, {
minimumFractionDigits: 3,
maximumFractionDigits: 3,
});
}

output += "\nDichte der Kategorie";
for (const label of categorization.categories) {
const { alterConnectable, intConnCount } = getOrInit(
Expand All @@ -59,6 +73,23 @@ export function statisticsCSV(
);
}

output += "\nDurchschnittlicher Degree";
for (const label of categorization.categories) {
const { alterConnectable, intConnCount } = getOrInit(
networkAnalysis,
label
);
output +=
SEP +
calculateAverageDegree(alterConnectable, intConnCount).toLocaleString(
undefined,
{
minimumFractionDigits: 3,
maximumFractionDigits: 3,
}
);
}

output += "\nStar(s)";
output += categorization.categories
.map((label) => {
Expand Down

0 comments on commit 5b438d2

Please sign in to comment.