---
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}
```