回帰分析の初歩などを少々。
● lm() は Liner Model(線形モデル)の略で単回帰分析の初歩。これを呼び出すと、このような予測方程式に当てはまるようになる 予測 = β0 + β1x (β0とβ1はデータから推定した定数)
今回使用したデータはCoursera のEconometrics クラスのsimple regression用サンプルデータ
> lma <- lm(example[,2] ~ example[,1])
> lmaCall:
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)
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)
● correlation coeffients 相関係数は -1から1の間をとりそれぞれ-1に近ければ負の相関関係、1に近ければ正の相関関係があるということが言える。
● pairs()だけでもよいのだが、plot()で、x = Price, y = Sales のグラフを表示
● abline() で単回帰の1次関数の線を描画できる
output.data1 <- lm(data1$Sales~data1$Price)
> abline(output.data1)
● なお、複数の項目を読み込む際には、以下の例のようにすると良い。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”)
hist(aogaku$LinesRecorded, breaks=seq(0,8000,10), main=”Lines Recorded”, xlab=”range”, ylim=c(0,15), col=”blue”)
コメント