--- title: "peakomponendid" output: html_document --- ```{r} library(tidyverse) andmed=read_csv("http://www.tlu.ee/~jaagup/andmed/keel/korpus/doksonaliigid.txt") head(andmed) andmed <- andmed %>% filter(S>0) koodid <- andmed$kood arvud <- andmed %>% select(A:Z) ``` ```{r} k <- prcomp(arvud) k summary(k) ``` ```{r} k <- prcomp(scale(arvud)) summary(k) k$rotation ``` ```{r} f=factanal(arvud, factors=2) f f=factanal(arvud, factors=3) f ``` ```{r} f=factanal(scale(arvud), factors=2) f f=factanal(scale(arvud), factors=3) f f=factanal(scale(arvud), factors=4) f f=factanal(scale(arvud), factors=2, rotation="promax") f ``` ```{r} names(f) ``` ```{r} plot(loadings(f), type="n") text(loadings(f), rownames(loadings(f))) ``` Peakomponentide analüüsil tekstide parameetrid esimese kahe komponendi järgi ```{r} sum(arvud[1, ] * k$rotation[, 1]) sum(arvud[1, ] * k$rotation[, 2]) #esimese viie teksti esimese peakomponendi väärtused sapply(1:5, function(nr){sum(arvud[nr, ]*k$rotation[, 1])}) esimesed=sapply(1:5, function(nr){sum(arvud[nr, ]*k$rotation[, 1])}) teised=sapply(1:5, function(nr){sum(arvud[nr, ]*k$rotation[, 2])}) plot(esimesed, teised) ``` Harjutus Koostage peakomponentide analüüs doksonaliigid teksti põhjal(tehtud) Kuvage vene emakeelega inimeste tekstid joonisel kahe peakomponendi järgi Kuvage teise värviga soome emakeelega inimeste tekstid samade komponentide järgi Keeleandmed failis dokmeta, teksti koodi järgi saab kokku ühendada ```{r} doksonaliigid=read_csv("http://www.tlu.ee/~jaagup/andmed/keel/korpus/doksonaliigid.txt") dokmeta=read_csv("http://www.tlu.ee/~jaagup/andmed/keel/korpus/dokmeta.txt") arvud <- andmed %>% select(A:Z) f=factanal(arvud, factors=2, rotation="promax") f f$loadings[, 1:2] ``` ```{r} uuritavad <- dokmeta %>% filter(emakeel %in% c("vene", "soome")) %>% filter(tekstikeel=="eesti") %>% inner_join(doksonaliigid, by="kood") uarvud <- uuritavad %>% select(A:Z) muudliigid=sapply(1:nrow(uuritavad), function(nr){sum(uarvud[nr, ]*f$loadings[, 1])}) nimetajad=sapply(1:nrow(uuritavad), function(nr){sum(uarvud[nr, ]*f$loadings[, 2])}) andmestik=tibble(emakeel=uuritavad$emakeel, muudliigid, nimetajad) andmestik %>% ggplot(aes(nimetajad, muudliigid, color=emakeel)) + geom_point() ``` ```{r} ```