【R】統計的言語研究の練習(3)ー 回帰分析(単回帰分析編)

公開日:2019-01-23
最終更新:2019-01-23

回帰分析

回帰分析とは,原因となる変数と結果となる変数の間の関係を量的に分析する統計手法である.単に関係の有無や強弱を示すだけでなく,一つの変数で別の変数を具体的に説明するという点に回帰分析の特徴がある.コーパス研究では,たとえば,作文中の特定の語彙や品詞などの頻度によって,その作文の評価点を推定したりする目的で使用される.
(”言語研究のための統計入門 - くろしお出版”)

Xという変数(説明変数)を用いて,Yという変数(目的変数)を表すことで,変数間の関係を記述することができたり(記述型分析),説明変数から目的変数を予測することができます(予測推定型分析).説明変数が一つだけの場合は単回帰分析,二つ以上の場合は重回帰分析といいます.今回は単回帰分析を以下のように試してみたいと思います.


単回帰分析

単回帰分析で扱えるくらいの単純で良いテーマを考えられませんでした.
仕方ないので,句点の数を説明変数として目的変数である述べ語数を記述することにしました.線形モデルの関数であるlm関数と最小二乗法の関数であるlsfit関数の二種類の関数で単回帰分析ができるようなので,両方試してみます.


lm関数で単回帰分析

《手順》
1.青空文庫のアクセスランキング上位20作品の句点と述べ語数を調べる
2.句点と述べ語数の関係を散布図で可視化,単回帰直線を求める
そもそも句点と述べ語数の間に相関はありそうかどうかをcor関数を使って下調べ.

top20 <- read.csv('top20.txt', header=T, sep=",")  
cor(top20$nobegosu, top20$kuten)
> cor(top20$nobegosu, top20$kuten)  
[1] 0.9570913`

1に近いので正の相関がある.
まず散布図でプロットし,線形モデル関数lmを使って,単回帰直線を求める.

plot(nobegosu ~ kuten, data = top20, pch="+")  
result <- lm(nobegosu ~ kuten, data = top20)  
abline(result, col = "red")  
summary(result)
Call:  
lm(formula = nobegosu ~ kuten, data = top20)  

Residuals:  
   Min     1Q Median     3Q    Max   
-54539  -4704   1934   5358  61490   

Coefficients:  
             Estimate Std. Error t value Pr(>|t|)      
(Intercept) -4679.990   6481.621  -0.722     0.48      
kuten          28.190      2.012  14.012 4.01e-11 ***  
---  
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1  

Residual standard error: 21360 on 18 degrees of freedom  
Multiple R-squared:  0.916,    Adjusted R-squared:  0.9114   
F-statistic: 196.3 on 1 and 18 DF,  p-value: 4.006e-11

述べ語数は句点の数を変数とした場合,以下の式から求まりそうです.
y(述べ語数) = 28.19 x(句点) - 4680

赤い直線が単回帰直線です.


lsfit関数でも回帰係数が出てくる

こちらもコード自体とても簡単です.

x <- top20$kuten;  y <- top20$nobegosu  
z <- lsfit(x, y)   
print(z)  
plot(x, y)  
abline(z, col="red")
$coefficients  
  Intercept           X   
-4679.99039    28.18977

lm関数の時と同じプロットが出ます.


以下,参考にしたサイトです.ありがとうございました.
単回帰分析
R言語でデータ解析をしよう!単回帰分析編

記事が少しでもいいなと思ったらクラップを送ってみよう!
0
+1
統計学 / 機械学習 / データ分析 /テキスト処理

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする