Ero sivun ”Koronavirus” versioiden välillä

Opasnet Suomista
Siirry navigaatioon Siirry hakuun
Rivi 71: Rivi 71:
Jos argumentti C on relevanssityyppiä, se vaikuttaa argumentin B relevanssiin muuttamalla tekijää se = P(B|A) epäsuorasti seprimen kautta
Jos argumentti C on relevanssityyppiä, se vaikuttaa argumentin B relevanssiin muuttamalla tekijää se = P(B|A) epäsuorasti seprimen kautta


<rcode>
<rcode graphics=1>
# This code is Op_fi5925/koronakide on page [[Koronavirus]]
# This code is Op_fi5925/koronakide on page [[Koronavirus]]


library(OpasnetUtils)
library(OpasnetUtils)
library(gsheet)
library(tidyverse)
library(tidyverse)
# First version of data https://docs.google.com/spreadsheets/d/1Wzj_VqubkV6uomQS-St5UxzS5k25dDBs15DQFEsroOg/edit#gid=0


objects.latest("Op_en3861", code_name="makeGraph2") # [[Insight network]] makeGraph
objects.latest("Op_en3861", code_name="makeGraph2") # [[Insight network]] makeGraph
Rivi 124: Rivi 125:


preprocess_arguments <- function(FILE_PATH, file_list, n) {
preprocess_arguments <- function(FILE_PATH, file_list, n) {
   dfl <- read_lines(paste0(FILE_PATH,file_list[n]))
   dfl <- opasnet.data(FILE_PATH, "opasnet_fi", unzip=file_list[n])
  dfl <- strsplit(dfl, "\n")[[1]]
   df_title <- gsub("Discussion Title: ", "", dfl[1])
   df_title <- gsub("Discussion Title: ", "", dfl[1])
   dfl <- dfl[-(1:2)]
   dfl <- dfl[-(1:2)]
Rivi 154: Rivi 156:
TRUTH_LIMIT <- 0.05
TRUTH_LIMIT <- 0.05
RELEVANCE_LIMIT <- 0.2
RELEVANCE_LIMIT <- 0.2
FILE_PATH <- "~/discussion/corona/"
FILE_PATH <- "e/eb/Covid-19_dicussions.zip" # "~/discussion/corona/"
 
df <- gsheet2tbl("https://docs.google.com/spreadsheets/d/1Wzj_VqubkV6uomQS-St5UxzS5k25dDBs15DQFEsroOg/edit#gid=0")
df <- read.csv(text=gsheet2text("https://docs.google.com/spreadsheets/d/1Wzj_VqubkV6uomQS-St5UxzS5k25dDBs15DQFEsroOg/edit#gid=2050636969",
                                format='csv'),skip=1)


file_list <- c(
file_list <- c(
Rivi 181: Rivi 179:
gr <- makeGraph(
gr <- makeGraph(
   ova=prepare_graph(
   ova=prepare_graph(
     df=infer_tree(df[[2]], SENSITIVITY_PRIME, TRUTH_PRIOR),
     df=infer_tree(df[[2]]),
     drop_gray = TRUE, drop_higher_levels = 3, TRUTH_LIMIT = 0.1, RELEVANCE_LIMIT = 0.2, verbose=FALSE),
     drop_gray = TRUE, drop_higher_levels = 0, TRUTH_LIMIT = 0.2, RELEVANCE_LIMIT = 0.2, verbose=FALSE),
   formatted=formatted)
   formatted=formatted)
render_graph(gr, title=df[[1]])
render_graph(gr, title=df[[1]])
#export_graph(gr, "~/home/jouni/Documents/Koronakide.svg")
#export_graph(gr, "~/home/jouni/Documents/Koronakide.svg")


out <- prepare_graph(
#out <- prepare_graph(
  df=infer_tree(df[[2]], SENSITIVITY_PRIME, TRUTH_PRIOR),
df=infer_tree(df[[2]]),
  drop_gray = TRUE, drop_higher_levels = 3, TRUTH_LIMIT = 0.1, RELEVANCE_LIMIT = 0.2, verbose=FALSE)
drop_gray = TRUE, drop_higher_levels = 3, TRUTH_LIMIT = 0.1, RELEVANCE_LIMIT = 0.2, verbose=FALSE)
 


df_default <- infer_tree(df, SENSITIVITY_PRIME, TRUTH_PRIOR)
#df_default <- infer_tree(df)
df_no_relevance <- infer_tree(df %>% mutate(class="truth"), SENSITIVITY_PRIME, TRUTH_PRIOR)
#df_no_relevance <- infer_tree(df %>% mutate(class="truth"), SENSITIVITY_PRIME, TRUTH_PRIOR)
plot(df_default$truth, df_no_relevance$truth)
#plot(df_default$truth, df_no_relevance$truth)
# The correlation between inference with truth/relevance classification and that without is not great.
# The correlation between inference with truth/relevance classification and that without is not great.
# However, it is reasonable for very high and very low values.
# However, it is reasonable for very high and very low values.

Versio 3. elokuuta 2021 kello 09.58




Koronavirus käsittelee SARS-COV-2-viruksen ja sen aiheuttaman COVID-19-taudin olennaisia piirteitä.

Perustelut

Data

Keskusteluja koronaviruksesta ja kovidista Kialo-alustalla, esim. Onko kovidipandemialla pysyviä vaikutuksia yhteiskuntaan?. Alla olevassa tiedostossa on 15 keskustelua aihepiiristä.

Covid-19_dicussions

Laskenta

Piirrä näkemysverkko Kialon koronakeskustelusta

Argumentaatio koskien koronarokotusten pakollisuutta.

Koronakide-hankkeeseen liittyen tehdään näkemysverkkoja koronarokotusten argumentaatiosta.

Laskennan logiikka on seuraava. Alkuperäiseen väitteeseen A kohdistuu argumentti B ja tähän kohdistuu argumentti C eli C → B → A. Prioritodennäköisyys, että A on totta on P(A), kun meillä ei ole muuta tietoa. Kun lisätään argumentti B, saadaan Bayesin kaavalla

P(A|B) = P(B|A)P(A)/P(B).

Sensitiivisyys (se) on testin (B) herkkyys eli todennäköisyys saada positiivinen tulos jos asia (A) on totta: se = P(B|A) = a/(a+c). Mitä parempi herkkyys, sitä vähemmän vääriä negatiivisia.

Spesifisyys (sp) on testin (B) tarkkuus eli todennäköisyys saada negatiivinen tulos jos asia (A) ei ole totta: sp = 1-P(B|¬A-) = 1 - b/(b+d). Mitä parempi tarkkuus, sitä vähemmän vääriä positiivisia. Herkkyys ja tarkkuus ovat tärkeitä mittareita, koska ne eivät riipu itse asian todennäköisyydestä.

Esimerkkinä laskennasta on oheinen taulukko.

A+ A- Sum
B+ 0.29 (a) 0.60 (b) 0.89
B- 0.01 (c) 0.10 (d) 0.11
Sum 0.30 0.70 1.00
se = a/(a+c) = 0.29/0.30 = 29/30

sp = b/(b+d) = 0.10/0.70 = 1/7

Mitä tietoja tarvitaan, jotta nelikenttä saadaan yksikäsitteisesti muodostettua? Jos tiedetään poikkisummat P(A) ja P(B), saadaan laskettua myös P(¬A) = 1-P(A) ja P(¬B) = 1-P(B). Yksiselitteisyyden saavuttamiseksi on tiedettävä vielä kolmas asia eli esimerkiksi P(B|A) eli herkkyys, joka kuvaa myös argumentin B relevanssia A:n suhteen eli kykyä muuttaa A:n posterioritodennäköisyyttä.

P(A) = a+c
P(B) = a+b
se = P(B|A) = a/(a+c) <=> a = se P(A), joten b = P(B) -se P(A)

Koska P(A|B) saadaan laskettua a/(a+b), matemaattinen määrittelyjoukko on 0 < P(A), P(B), se, a, b < 1 eli erityisesti 0 < P(B)-se P(A) < 1 eli (P(B)-1)/P(A) < se < P(B)/P(A). Koska P(B)<=1, alarajaehto ei tule koskaan vastaan vaan riittää, että se>0. Sen sijaan ylärajaehto voi hyvinkin olla <1 eli tulee joskus rajoittavaksi tekijäksi.

Argumentti on epärelevantti, jos P(A) = P(A|B) = a/(a+b) = se P(A)/P(B) eli se = P(B).

Jotta käyttäjän antamat parametrit olisivat aina määriteltyjä ja helppo ymmärtää, voitaisiin ottaa käyttöön seprime-parametri, joka saa arvoja välillä ]-1,1[, joka kattaa koko sensitiivisyyden määrittelyjoukon ja joka saa epärelevantin argumentin kohdalla arvon 0. Niinpä

se = P(B|A) = P(B) + seprime(min(1,P(B)/P(A)) - P(B)), jos 0 <= seprime < 1
se = P(B|A) = P(B) + seprimeP(B), jos -1 < seprime < 0.

Kuitenkin meitä kiinnostaa relevanssiargumentin C vaikutus A:han B:n kautta. Koska P(B|A) riippuu A:sta, relevanssivaikutusta ei voida suoraan laskea C:n ja B:n tietojen avulla. Sen sijaan voidaan laskea seprime(B), jos ajatellaan seprime(C):n voimistavan tai heikentävän vaikutusta tietyn osuuden verran. C-argumentin todennäköisyys vaikuttaa siihen voimakkuuteen, jolla C muuttaa seprime(B):tä.

seprime(B|C) = seprime(B) + seprime(C) P(C)(1-seprime(B)), jos seprime(C)>=0
seprime(B|C) = seprime(B) + seprime(C) P(C) seprime(B), jos seprime(C)<0

Edellä sanottu pätee, jos seprime(B) >= 0, muussa tapauksessa pitää ensin laskea yhtälöt seprime(B):n itseisarvolla ja palauttaa negatiivinen etumerkki jälkikäteen. Tämä johtuu siitä, että argumenttiin B kohdistuvat argumentit voivat lisätä tai vähentää sen relevanssia, mutta ne eivät voi vaihtaa hyökkäävää argumenttia puolustavaksi eikä päinvastoin.

Argumentin vaikutus keskusteluun lasketaan käyttäen esimerkiksi seuraavia oletusarvoja (näiden toimivuutta on testattava käytännössä):

  • Argumentin herkkyys P(B|A) lasketaan relevanssitekijän (seprime) avulla: oletuksena 0.3 jos argumentti puolustaa ja -0.3 jos hyökkää
  • Argumenttien totuuden prioritodennäköisyys P(A) = 0.7 jos on uskottava viite, 0.3 jos viite puuttuu

Näiden avulla lasketaan argumentin posterioritodennäköisyys:

P(A|B) = P(B|A)P(A)/P(B) = se P(A)/P(B)

Jos argumentti C on relevanssityyppiä, se vaikuttaa argumentin B relevanssiin muuttamalla tekijää se = P(B|A) epäsuorasti seprimen kautta

+ Näytä koodi

  • Arkistoitu aiempi pohdinta perustuen mm. vedonlyöntisuhteisiin sekä totuus- ja relevanssifaktoreihin. Lisäksi käytettiin termistä P(B|A) nimeä sensitiivisyys, mikä on sinänsä oikein mutta ei ehkä hyödyllistä.

Hae kirjanmerkit Firefoxista

+ Näytä koodi

Katso myös