myNICERindex <- function(){
# 各指標のベクトルを作っておいて、できたものをデータフレームにまとめる
# ベクトルの初期化
typeV <- c()
tokenV <- c()
ttrV <- c()
giV <- c()
awlV <- c()
aslV <- c()
nosV <- c()
mattrV <- c() # MATTR追加 以下同じ
scoreV <- c()
idV <- c()
topicV <- c()
files <- list.files()
for (i in files) {
lines.tmp <- scan(i, what="char", sep="\n")
body.tmp <- grep("^\\*\\w+:\t", lines.tmp, value=T)
data.tmp <- gsub("^\\*\\w+:\t", "", body.tmp)
data.tmp <- data.tmp[data.tmp != ""]
tmp4 <- gsub("[[:punct:]]", " ", data.tmp)
tmp5 <- gsub(" +", " ", tmp4)
tmp6 <- tolower(tmp5)
tmp7 <- strsplit(tmp6, " ")
tmp8 <- unlist(tmp7)
token <- sort(tmp8)
type <- unique(token)
ttr <- length(type)/length(token)
gi <- length(type)/sqrt(length(token))
tmp <- paste(token, collapse = "")
awl <- nchar(tmp)/length(token)
asl <- length(token)/length(data.tmp)
nos <- length(body.tmp) # Number of Sentences
#MATTR 追加
numwords <- length(token)
token <- c(token,token)
ttrsum <- 0 # ttrsum の初期化
mattr <- 0 # mattr の初期化
for(i in 1:numwords){
mado <- token[i:(99+i)]
wttr <- length(unique(sort(mado)))/100
ttrsum <- ttrsum + wttr
}
mattr <- ttrsum/numwords # mattrに代入
mattrV <- c(mattrV, mattr) # ベクトルデータとして保存
#スコア 追加
criterion.tmp <- grep("@Criterion", lines.tmp, value = T) # @Criterionの行を検索
score <- gsub("@Criterion:\t", "", criterion.tmp) # スコアのみに
scoreV <- c(scoreV , score) # ベクトルデータとして保存
#ID 追加
id.tmp <- grep("@Participants:", lines.tmp, value = T) # @Participantsの行を検索
id <- gsub("@Participants:\t", "", id.tmp) # IDのみに
idV <- c(idV , id) # ベクトルデータとして保存
#Topic 追加
topic.tmp <- grep("@Topic:", lines.tmp, value = T) # @Participantsの行を検索
topic <- gsub("@Topic:\t", "", topic.tmp) # IDのみに
topicV <- c(topicV , topic) # ベクトルデータとして保存
# 各数値をベクトルに入れる
typeV <- c(typeV, length(type))
tokenV <- c(tokenV, length(token))
ttrV <- c(ttrV, ttr)
giV <- c(giV, gi)
awlV <- c(awlV, awl)
aslV <- c(aslV, asl)
nosV <- c(nosV, nos)
}
# 最後に全部をデータフレームにまとめる
data.frame(idV, topicV, scoreV, typeV, tokenV, ttrV, giV, mattrV, awlV, aslV, nosV)
}
setwd("NICER1_3_2/NICER_NS")
ns_indexes.df <- myNICERindex()
head(ns_indexes.df )
names(ns_indexes.df ) <- c("ID", "Topic", "Score", "Type", "Token", "TTR", "GI", "MATTR", "AWL","ASL", "NoS")
head(ns_indexes.df )
setwd("NICER1_3_2/NICER_NNS") # ディレクトリーを変える NNS
jp_indexes.df <- myNICERindex()
names(jp_indexes.df ) <- c("ID", "Topic", "Score", "Type", "Token", "TTR", "GI", "MATTR", "AWL","ASL", "NoS")
head(jp_indexes.df )
統合した後、カテゴリーでデータを分けることができるように
新しいカラムを追加:使ってない見出しを設定し、そこに入れたいものを代入
jp_indexes.df$Lang <- 2
head(jp_indexes.df)
ns_indexes.df$Lang <- 1
head(ns_indexes.df)
all_indexes.df <- rbind(jp_indexes.df, ns_indexes.df)
head(all_indexes.df)
tail(all_indexes.df)
write.table(all_indexes.df, "all_indexes.df.txt")
all_indexes.df <- read.table("all_indexes.df.txt")
head(all_indexes.df)
str(all_indexes.df)
## 'data.frame': 452 obs. of 12 variables:
## $ ID : chr "JPN501" "JPN502" "JPN503" "JPN504" ...
## $ Topic: chr "sports" "education" "education" "sports" ...
## $ Score: chr "4" "4" "3" "4" ...
## $ Type : int 134 160 121 139 175 124 151 98 104 99 ...
## $ Token: int 638 712 402 520 840 522 724 396 526 366 ...
## $ TTR : num 0.42 0.449 0.602 0.535 0.417 ...
## $ GI : num 7.5 8.48 8.53 8.62 8.54 ...
## $ MATTR: num 0.426 0.455 0.606 0.539 0.423 ...
## $ AWL : num 4.3 4.23 4.75 4.77 4 ...
## $ ASL : num 10.63 12.28 15.46 9.63 16.8 ...
## $ NoS : int 30 29 13 27 25 20 26 20 19 14 ...
## $ Lang : num 2 2 2 2 2 2 2 2 2 2 ...
all_indexes.df$Lang <- as.factor(all_indexes.df$Lang)
str(all_indexes.df)
## 'data.frame': 452 obs. of 12 variables:
## $ ID : chr "JPN501" "JPN502" "JPN503" "JPN504" ...
## $ Topic: chr "sports" "education" "education" "sports" ...
## $ Score: chr "4" "4" "3" "4" ...
## $ Type : int 134 160 121 139 175 124 151 98 104 99 ...
## $ Token: int 638 712 402 520 840 522 724 396 526 366 ...
## $ TTR : num 0.42 0.449 0.602 0.535 0.417 ...
## $ GI : num 7.5 8.48 8.53 8.62 8.54 ...
## $ MATTR: num 0.426 0.455 0.606 0.539 0.423 ...
## $ AWL : num 4.3 4.23 4.75 4.77 4 ...
## $ ASL : num 10.63 12.28 15.46 9.63 16.8 ...
## $ NoS : int 30 29 13 27 25 20 26 20 19 14 ...
## $ Lang : Factor w/ 2 levels "1","2": 2 2 2 2 2 2 2 2 2 2 ...
library(MASS)
DA.result <- lda(Lang ~ Type + Token + MATTR + AWL + ASL + NoS, data=all_indexes.df, CV=T)
DA.result$class
## [1] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [38] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [75] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [112] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [149] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [186] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [223] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [260] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [297] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [334] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
## [371] 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1
## [408] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1
## [445] 1 1 1 1 1 1 1 1
## Levels: 1 2
anyNA(all_indexes.df)
## [1] FALSE
subset(all_indexes.df, is.na(Token))
DA.model <- lda(Lang ~ Type + Token + MATTR + AWL + ASL + NoS, data=all_indexes.df)
DA.model
## Call:
## lda(Lang ~ Type + Token + MATTR + AWL + ASL + NoS, data = all_indexes.df)
##
## Prior probabilities of groups:
## 1 2
## 0.1570796 0.8429204
##
## Group means:
## Type Token MATTR AWL ASL NoS
## 1 387.2676 1973.0986 0.4103297 4.751333 22.59186 45.66197
## 2 126.2073 558.2415 0.4712071 4.361718 12.87662 22.06824
##
## Coefficients of linear discriminants:
## LD1
## Type -0.030430371
## Token 0.001101204
## MATTR 2.009154987
## AWL -0.449549288
## ASL -0.019658983
## NoS 0.028913641
hyou <- table(all_indexes.df$Lang, predict(DA.model)$class)
hyou
##
## 1 2
## 1 67 4
## 2 0 381
正しく判別できたもの: 67 + 381 = 448
全体の数 : 67 + 4 + 0 + 381 = 452
correct <- (hyou[1,1]+hyou[2,2])/sum(hyou)
correct
## [1] 0.9911504
plot(DA.model)
DA.model2 <- lda(Lang ~ MATTR + AWL , data=all_indexes.df)
DA.model2
## Call:
## lda(Lang ~ MATTR + AWL, data = all_indexes.df)
##
## Prior probabilities of groups:
## 1 2
## 0.1570796 0.8429204
##
## Group means:
## MATTR AWL
## 1 0.4103297 4.751333
## 2 0.4712071 4.361718
##
## Coefficients of linear discriminants:
## LD1
## MATTR 12.394623
## AWL -2.588162
hyou <- table(all_indexes.df$Lang, predict(DA.model2)$class)
hyou
##
## 1 2
## 1 33 38
## 2 24 357
correct <- (hyou[1,1]+hyou[2,2])/sum(hyou)
correct
## [1] 0.8628319
DA.model3 <- lda(Lang ~ Type + Token , data=all_indexes.df)
DA.model3
## Call:
## lda(Lang ~ Type + Token, data = all_indexes.df)
##
## Prior probabilities of groups:
## 1 2
## 0.1570796 0.8429204
##
## Group means:
## Type Token
## 1 387.2676 1973.0986
## 2 126.2073 558.2415
##
## Coefficients of linear discriminants:
## LD1
## Type -0.030407690
## Token 0.001464086
hyou <- table(all_indexes.df$Lang, predict(DA.model3)$class)
hyou
##
## 1 2
## 1 67 4
## 2 0 381
correct <- (hyou[1,1]+hyou[2,2])/sum(hyou)
correct
## [1] 0.9911504
DA.model4 <- lda(Lang ~ Type + NoS , data=all_indexes.df)
DA.model4
## Call:
## lda(Lang ~ Type + NoS, data = all_indexes.df)
##
## Prior probabilities of groups:
## 1 2
## 0.1570796 0.8429204
##
## Group means:
## Type NoS
## 1 387.2676 45.66197
## 2 126.2073 22.06824
##
## Coefficients of linear discriminants:
## LD1
## Type -0.02731629
## NoS 0.04378828
hyou <- table(all_indexes.df$Lang, predict(DA.model4)$class)
hyou
##
## 1 2
## 1 66 5
## 2 0 381
correct <- (hyou[1,1]+hyou[2,2])/sum(hyou)
correct
## [1] 0.9889381
teisu <- apply(DA.model2$means %*% DA.model2$scaling, 2, mean) # 定数項の計算
plot(all_indexes.df$MATTR, all_indexes.df$AWL, col=c("blue", "red")[all_indexes.df$Lang], cex=1)
xmin <- min(all_indexes.df$MATTR) # x軸のMATTRの最小値
xmax <- max(all_indexes.df$MATTR) # x軸のMATTRの最大値
ymin <- teisu/DA.model2$scaling[2] - (DA.model2$scaling[1]*xmin)/DA.model2$scaling[2] # xminの時のyの値の計算
ymax <- teisu/DA.model2$scaling[2] - (DA.model2$scaling[1]*xmax)/DA.model2$scaling[2] # xmaxの時のyの値の計算
lines(c(xmin,xmax),c(ymin,ymax), type="l", col="green", lwd=2) # 最小値の(x, y)座標と最大値の(x, y)座標を結ぶ直線
teisu <- apply(DA.model3$means %*% DA.model3$scaling, 2, mean) # 定数項の計算
plot(all_indexes.df$Type, all_indexes.df$Token, col=c("blue", "red")[all_indexes.df$Lang], cex=1)
xmin <- min(all_indexes.df$Type) # x軸の最小値
xmax <- max(all_indexes.df$Type) # x軸の最大値
ymin <- teisu/DA.model3$scaling[2] - (DA.model3$scaling[1]*xmin)/DA.model3$scaling[2] # xminの時のyの値の計算
ymax <- teisu/DA.model3$scaling[2] - (DA.model3$scaling[1]*xmax)/DA.model3$scaling[2] # xmaxの時のyの値の計算
lines(c(xmin,xmax),c(ymin,ymax), type="l", col="green", lwd=2) # 最小値の(x, y)座標と最大値の(x, y)座標を結ぶ直線
teisu <- apply(DA.model4$means %*% DA.model4$scaling, 2, mean) # 定数項の計算
plot(all_indexes.df$Type, all_indexes.df$NoS, col=c("blue", "red")[all_indexes.df$Lang], cex=1)
xmin <- min(all_indexes.df$Type) # x軸の最小値
xmax <- max(all_indexes.df$Type) # x軸の最大値
ymin <- teisu/DA.model4$scaling[2] - (DA.model4$scaling[1]*xmin)/DA.model4$scaling[2] # xminの時のyの値の計算
ymax <- teisu/DA.model4$scaling[2] - (DA.model4$scaling[1]*xmax)/DA.model4$scaling[2] # xmaxの時のyの値の計算
lines(c(xmin,xmax),c(ymin,ymax), type="l", col="green", lwd=2) # 最小値の(x, y)座標と最大値の(x, y)座標を結ぶ直線
DA.model0 <- lda(Lang ~ AWL + ASL , data=all_indexes.df)
teisu <- apply(DA.model0$means %*% DA.model0$scaling, 2, mean) # 定数項の計算
plot(all_indexes.df$AWL, all_indexes.df$ASL, col=c("blue", "red")[all_indexes.df$Lang], cex=1)
xmin <- min(all_indexes.df$AWL) # x軸の最小値
xmax <- max(all_indexes.df$AWL) # x軸の最大値
ymin <- teisu/DA.model0$scaling[2] - (DA.model0$scaling[1]*xmin)/DA.model0$scaling[2] # xminの時のyの値の計算
ymax <- teisu/DA.model0$scaling[2] - (DA.model0$scaling[1]*xmax)/DA.model0$scaling[2] # xmaxの時のyの値の計算
lines(c(xmin,xmax),c(ymin,ymax), type="l", col="green", lwd=2) # 最小値の(x, y)座標と最大値の(x, y)座標を結ぶ直線
source("http://aoki2.si.gunma-u.ac.jp/R/src/sdis.R", encoding="euc-jp")
str(all_indexes.df)
## 'data.frame': 452 obs. of 12 variables:
## $ ID : chr "JPN501" "JPN502" "JPN503" "JPN504" ...
## $ Topic: chr "sports" "education" "education" "sports" ...
## $ Score: chr "4" "4" "3" "4" ...
## $ Type : int 134 160 121 139 175 124 151 98 104 99 ...
## $ Token: int 638 712 402 520 840 522 724 396 526 366 ...
## $ TTR : num 0.42 0.449 0.602 0.535 0.417 ...
## $ GI : num 7.5 8.48 8.53 8.62 8.54 ...
## $ MATTR: num 0.426 0.455 0.606 0.539 0.423 ...
## $ AWL : num 4.3 4.23 4.75 4.77 4 ...
## $ ASL : num 10.63 12.28 15.46 9.63 16.8 ...
## $ NoS : int 30 29 13 27 25 20 26 20 19 14 ...
## $ Lang : Factor w/ 2 levels "1","2": 2 2 2 2 2 2 2 2 2 2 ...
sdis.result <- sdis(all_indexes.df[4:11], all_indexes.df[12])
## 有効ケース数: 452
## 群を表す変数: Lang
##
## ***** 平均値 *****
## 1 2 全体
## Type 387.2676056 126.2073491 167.2146018
## Token 1973.0985915 558.2414698 780.4867257
## TTR 0.4043734 0.4660248 0.4563406
## GI 12.3755946 7.5715687 8.3261834
## MATTR 0.4103297 0.4712071 0.4616445
## AWL 4.7513327 4.3617179 4.4229184
## ASL 22.5918585 12.8766212 14.4026873
## NoS 45.6619718 22.0682415 25.7743363
##
## ***** プールされた群内相関係数行列 *****
##
## Type Token TTR GI MATTR AWL
## Type 1.00000000 0.9038982 -0.2653464 0.7685720 -0.2623123 -0.04618413
## Token 0.90389816 1.0000000 -0.5369960 0.4498941 -0.5353729 -0.14042196
## TTR -0.26534644 -0.5369960 1.0000000 0.2762727 0.9990017 0.26567511
## GI 0.76857203 0.4498941 0.2762727 1.0000000 0.2815950 0.13298483
## MATTR -0.26231234 -0.5353729 0.9990017 0.2815950 1.0000000 0.27001137
## AWL -0.04618413 -0.1404220 0.2656751 0.1329848 0.2700114 1.00000000
## ASL 0.25575020 0.2515538 -0.1885313 0.1729259 -0.1853512 0.20856585
## NoS 0.66663032 0.7400935 -0.4415735 0.3457875 -0.4403156 -0.25905336
## ASL NoS
## Type 0.2557502 0.6666303
## Token 0.2515538 0.7400935
## TTR -0.1885313 -0.4415735
## GI 0.1729259 0.3457875
## MATTR -0.1853512 -0.4403156
## AWL 0.2085658 -0.2590534
## ASL 1.0000000 -0.3541723
## NoS -0.3541723 1.0000000
##
## 変数編入基準 Pin: 0.05
## 変数除去基準 Pout: 0.05
## 編入候補変数: Type P : <0.001 ***** 編入されました
##
## ***** ステップ 1 ***** 編入変数: Type
##
## ***** 分類関数 *****
##
## 1 2 偏F値 P値
## Type -0.3775 -0.12302 1987.9 <0.001
## 定数項 73.0960 7.76320
## ウィルクスのΛ: 0.18458
## 等価なF値: 1987.9
## 自由度: (1, 450.00)
## P値: <0.001
##
## 除去候補変数: Type P : <0.001 ***** 除去されませんでした
## 編入候補変数: NoS P : <0.001 ***** 編入されました
##
## ***** ステップ 2 ***** 編入変数: NoS
##
## ***** 分類関数 *****
##
## 1 2 偏F値 P値
## Type -0.43779 -0.10464 1086.333 <0.001
## NoS 0.40925 -0.12480 43.759 <0.001
## 定数項 75.42732 7.98000
## ウィルクスのΛ: 0.16819
## 等価なF値: 1110.3
## 自由度: (2, 449.00)
## P値: <0.001
##
## 除去候補変数: NoS P : <0.001 ***** 除去されませんでした
## 編入候補変数: AWL P : 0.00684 ***** 編入されました
##
## ***** ステップ 3 ***** 編入変数: AWL
##
## ***** 分類関数 *****
##
## 1 2 偏F値 P値
## Type -0.28127 0.042803 790.7280 < 0.001
## NoS -0.86859 -1.328545 27.9443 < 0.001
## AWL -92.71076 -87.335003 7.3827 0.00684
## 定数項 294.54496 202.423625
## ウィルクスのΛ: 0.16547
## 等価なF値: 753.17
## 自由度: (3, 448.00)
## P値: <0.001
##
## 除去候補変数: AWL P : 0.00684 ***** 除去されませんでした
## 編入候補変数: GI P : 0.196 ***** 編入されませんでした
##
## ===================== 結果 =====================
##
## ***** 分類関数 *****
##
## 1 2 偏F値 P値
## Type -0.28127 0.042803 790.7280 < 0.001
## NoS -0.86859 -1.328545 27.9443 < 0.001
## AWL -92.71076 -87.335003 7.3827 0.00684
## 定数項 294.54496 202.423625
##
## ***** 判別関数 *****
##
## 1 と 2 の判別
## マハラノビスの汎距離: 6.15818
## 理論的誤判別率: 0.00104
##
## 判別係数 標準化判別係数
## Type 0.16204 17.04605
## NoS -0.22998 -3.02903
## AWL 2.68788 0.97799
## 定数項 -46.06067
##
## ***** 判別結果集計表 ****
##
## 判別された群
## 実際の群 1 2
## 1 69 2
## 2 0 381
DA.model5 <- lda(Lang ~ Type + NoS + AWL, data=all_indexes.df)
DA.model5
## Call:
## lda(Lang ~ Type + NoS + AWL, data = all_indexes.df)
##
## Prior probabilities of groups:
## 1 2
## 0.1570796 0.8429204
##
## Group means:
## Type NoS AWL
## 1 387.2676 45.66197 4.751333
## 2 126.2073 22.06824 4.361718
##
## Coefficients of linear discriminants:
## LD1
## Type -0.02631280
## NoS 0.03734493
## AWL -0.43647342
hyou <- table(all_indexes.df$Lang, predict(DA.model5)$class)
hyou
##
## 1 2
## 1 67 4
## 2 0 381
correct <- (hyou[1,1]+hyou[2,2])/sum(hyou)
correct
## [1] 0.9911504
DA.model6 <- lda(Lang ~ Type + NoS, data=all_indexes.df)
DA.model6
## Call:
## lda(Lang ~ Type + NoS, data = all_indexes.df)
##
## Prior probabilities of groups:
## 1 2
## 0.1570796 0.8429204
##
## Group means:
## Type NoS
## 1 387.2676 45.66197
## 2 126.2073 22.06824
##
## Coefficients of linear discriminants:
## LD1
## Type -0.02731629
## NoS 0.04378828
hyou <- table(all_indexes.df$Lang, predict(DA.model6)$class)
hyou
##
## 1 2
## 1 66 5
## 2 0 381
correct <- (hyou[1,1]+hyou[2,2])/sum(hyou)
correct
## [1] 0.9889381
DA.model6 <- lda(Lang ~ Type + NoS , data=all_indexes.df)
teisu <- apply(DA.model6$means %*% DA.model6$scaling, 2, mean) # 定数項の計算
plot(all_indexes.df$Type, all_indexes.df$NoS, col=c("blue", "red")[all_indexes.df$Lang], cex=1)
xmin <- min(all_indexes.df$Type) # x軸の最小値
xmax <- max(all_indexes.df$Type) # x軸の最大値
ymin <- teisu/DA.model6$scaling[2] - (DA.model6$scaling[1]*xmin)/DA.model6$scaling[2] # xminの時のyの値の計算
ymax <- teisu/DA.model6$scaling[2] - (DA.model6$scaling[1]*xmax)/DA.model6$scaling[2] # xmaxの時のyの値の計算
lines(c(xmin,xmax),c(ymin,ymax), type="l", col="green", lwd=2) # 最小値の(x, y)座標と最大値の(x, y)座標を結ぶ直線
DA.model7 <- lda(Lang ~ NoS + AWL, data=all_indexes.df)
DA.model7
## Call:
## lda(Lang ~ NoS + AWL, data = all_indexes.df)
##
## Prior probabilities of groups:
## 1 2
## 0.1570796 0.8429204
##
## Group means:
## NoS AWL
## 1 45.66197 4.751333
## 2 22.06824 4.361718
##
## Coefficients of linear discriminants:
## LD1
## NoS -0.09529848
## AWL -1.89276930
hyou <- table(all_indexes.df$Lang, predict(DA.model7)$class)
hyou
##
## 1 2
## 1 50 21
## 2 6 375
correct <- (hyou[1,1]+hyou[2,2])/sum(hyou)
correct
## [1] 0.9402655
DA.model7 <- lda(Lang ~ NoS + AWL , data=all_indexes.df)
teisu <- apply(DA.model7$means %*% DA.model7$scaling, 2, mean) # 定数項の計算
plot(all_indexes.df$NoS, all_indexes.df$AWL, col=c("blue", "red")[all_indexes.df$Lang], cex=1)
xmin <- min(all_indexes.df$NoS) # x軸の最小値
xmax <- max(all_indexes.df$NoS) # x軸の最大値
ymin <- teisu/DA.model7$scaling[2] - (DA.model7$scaling[1]*xmin)/DA.model7$scaling[2] # xminの時のyの値の計算
ymax <- teisu/DA.model7$scaling[2] - (DA.model7$scaling[1]*xmax)/DA.model7$scaling[2] # xmaxの時のyの値の計算
lines(c(xmin,xmax),c(ymin,ymax), type="l", col="green", lwd=2) # 最小値の(x, y)座標と最大値の(x, y)座標を結ぶ直線
DA.model8 <- lda(Lang ~ Type + AWL, data=all_indexes.df)
DA.model8
## Call:
## lda(Lang ~ Type + AWL, data = all_indexes.df)
##
## Prior probabilities of groups:
## 1 2
## 0.1570796 0.8429204
##
## Group means:
## Type AWL
## 1 387.2676 4.751333
## 2 126.2073 4.361718
##
## Coefficients of linear discriminants:
## LD1
## Type -0.02167441
## AWL -0.71678938
hyou <- table(all_indexes.df$Lang, predict(DA.model8)$class)
hyou
##
## 1 2
## 1 67 4
## 2 0 381
correct <- (hyou[1,1]+hyou[2,2])/sum(hyou)
correct
## [1] 0.9911504
DA.model8 <- lda(Lang ~ Type + AWL , data=all_indexes.df)
teisu <- apply(DA.model8$means %*% DA.model8$scaling, 2, mean) # 定数項の計算
plot(all_indexes.df$Type, all_indexes.df$AWL, col=c("blue", "red")[all_indexes.df$Lang], cex=1)
xmin <- min(all_indexes.df$Type) # x軸の最小値
xmax <- max(all_indexes.df$Type) # x軸の最大値
ymin <- teisu/DA.model8$scaling[2] - (DA.model8$scaling[1]*xmin)/DA.model8$scaling[2] # xminの時のyの値の計算
ymax <- teisu/DA.model8$scaling[2] - (DA.model8$scaling[1]*xmax)/DA.model8$scaling[2] # xmaxの時のyの値の計算
lines(c(xmin,xmax),c(ymin,ymax), type="l", col="green", lwd=2) # 最小値の(x, y)座標と最大値の(x, y)座標を結ぶ直線