アプリ版:「スタンプのみでお礼する」機能のリリースについて

自身の前後で地価の説明変数の影響がどう変化したかなという興味の元統計を勉強し始めました、最近。それでRにてlm()で重回帰分析してsummary()をしようとしています。
その途中でけっつまづいたので助けてください!

aが被説明変数でb1,b2が説明変数として

yy<-read.csv("tes.csv")
a<-yy[,1]
b1<-yy[,2]
b2<-yy[,3]
b3<-yy[,4]
y<-data.frame(a,b1,b2,b3)
y.lm<-lm(a~.,data=y)
『summary(y.lm)最終的にはこれをやりたいのだがlm()のとこで』

以下にエラー lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) :
因子保管モードを変更するのは不正です
追加情報: 警告メッセージ:
In model.response(mf, "numeric") :
因子応答を持つ type="numeric" の使用は無視されるでしょう

とかえされるんですがなにがいけないんですかね ?

a <- c(148, 160, 159, 153, 151, 140, 158, 137, 149, 160)
b1 <- c(41, 49, 45, 43, 42, 29, 49, 31, 47, 47)
b2 <- c(41, 159, 153, 151, 140, 31, 47, 47, 47, 47)
b3 <- c(41, 159, 153, 151, 140, 31, 47, 47, 47, 47)
y.lm<-lm(a~.,data=y)
summary(y.lm)

これはいけるんですがね。ちなみにcsvのなかは後者のような文字列があるのですが...
助けてください!
それ以外にもRで壁にあたった時自分で対処できるようになれそうなサイトorぐぐり方も指南していただけると今後が幸いです。

A 回答 (1件)

読み込んでいる yyのデータが数字として認識されてないのでは? 



実際 書かれている後半の例は確かに動きます b2,b3 が相関が1なので b3はNAになってますが、これは、多重共形性というか 行列式が0でそれでわるからですよね。これは今関係ないです。

たぶん
tes.csv に問題があって 数として認識されてなくて、factor か 文字として認識されているんだと思いますが。


それと間違いではないですが yy は すでにdata.frame なので わざわざ yを作る必要はないかと


Rのサイトですが 
cse.naro.affrc.go.jp/takezawa/r-tips/r/24.html

が便利です(今日はメンテナンスでみれませんが)

> a <- c(148, 160, 159, 153, 151, 140, 158, 137, 149, 160)
> b1 <- c(41, 49, 45, 43, 42, 29, 49, 31, 47, 47)
> b2 <- c(41, 159, 153, 151, 140, 31, 47, 47, 47, 47)
> b3 <- c(41, 159, 153, 151, 140, 31, 47, 47, 47, 47)
> y<-data.frame(a,b1,b2,b3)
> y
a b1 b2 b3
1 148 41 41 41
2 160 49 159 159
3 159 45 153 153
4 153 43 151 151
5 151 42 140 140
6 140 29 31 31
7 158 49 47 47
8 137 31 47 47
9 149 47 47 47
10 160 47 47 47
> y.lm<-lm(a~.,data=y)
> y.lm

Call:
lm(formula = a ~ ., data = y)

Coefficients:
(Intercept) b1 b2 b3
108.03255 0.96957 0.02844 NA

> summary(y.lm)

Call:
lm(formula = a ~ ., data = y)

Residuals:
Min 1Q Median 3Q Max
-5.9392 -1.5571 -0.5075 2.5066 5.0608

Coefficients: (1 not defined because of singularities)
Estimate Std. Error t value Pr(>|t|)
(Intercept) 108.03255 7.33188 14.735 1.59e-06 ***
b1 0.96957 0.18281 5.304 0.00112 **
b2 0.02844 0.02309 1.232 0.25777
b3 NA NA NA NA
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 3.6 on 7 degrees of freedom
Multiple R-squared: 0.8504, Adjusted R-squared: 0.8077
F-statistic: 19.9 on 2 and 7 DF, p-value: 0.001294
    • good
    • 0
この回答へのお礼

まさにそのとおりでした。文字列として数字が認識されていました!

ありがとです!

お礼日時:2012/03/17 15:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!