Rで統計入門 – その 2 単回帰分析lm() とヒストグラム

プログラミング

回帰分析の初歩などを少々。





● lm() は Liner Model(線形モデル)の略で単回帰分析の初歩。これを呼び出すと、このような予測方程式に当てはまるようになる 予測 = β0 + β1x (β0とβ1はデータから推定した定数)

今回使用したデータはCoursera のEconometrics クラスsimple regression用サンプルデータ

> lma <- lm(example[,2] ~ example[,1])
> lma

Call:
lm(formula = example[, 2] ~ example[, 1])

Coefficients:
(Intercept) example[, 1]
53.595780 0.006967

● βi の推定値は以下で確認可能

> lma$coefficients
(Intercept) example[, 1]
53.59578043 0.00696682

● 単回帰分析の結果どんな値が確認できるかは、attributes(lma)で確認可能

> attributes(lma)
$names
[1] “coefficients” “residuals” “effects” “rank”
[5] “fitted.values” “assign” “qr” “df.residual”
[9] “xlevels” “call” “terms” “model”

$class
[1] “lm”

● cor() で変数間の相関関係を確認可能。pairs()で散布図を表示可能
(参考記事はこちら)

cor(example)
Observ. Price Sales
Observ. 1.0000000 0.1916605 -0.1147611
Price 0.1916605 1.0000000 -0.8512051
Sales -0.1147611 -0.8512051 1.0000000
> pairs(example)

RStudio

Observ. は無視で良い。PriceとSalesには負の相関関係があるのかもしれないことがわかる。

● Observ.カラムを削除して改めてファイルを読み込むと以下のようになる。

data1 <- read.table(“sp2.txt”, header=TRUE)
> cor(data1)
Price Sales
Price 1.0000000 -0.8512051
Sales -0.8512051 1.0000000
> pairs(data1)

RStudio

● correlation coeffients 相関係数は -1から1の間をとりそれぞれ-1に近ければ負の相関関係、1に近ければ正の相関関係があるということが言える。

● pairs()だけでもよいのだが、plot()で、x = Price, y = Sales のグラフを表示

RStudio

● abline() で単回帰の1次関数の線を描画できる

output.data1 <- lm(data1$Sales~data1$Price)
> abline(output.data1)

RStudio

● なお、複数の項目を読み込む際には、以下の例のようにすると良い。sep でデータがどう配置されているかを定義(コンマ、セミコロン、半角スペースなど)し、引用””とコメントを使っていないか明確にする。

datax <- read.table(“datax.csv”, sep=”,”, quote=””, comment.char=””)

● 以下のようにヒストグラムの目盛りやラベル、色を編集することもできる。

hist(aogaku$SpokenVideos, breaks=seq(0,700,10), main=”Histogram”, xlab=”range”, ylim=c(0,50), col=”blue”)

RStudio

hist(aogaku$LinesRecorded, breaks=seq(0,8000,10), main=”Lines Recorded”, xlab=”range”, ylim=c(0,15), col=”blue”)

RStudio




この記事が気に入ったら
いいね ! してね

コメント

タイトルとURLをコピーしました