- ベストアンサー
Rの重回帰分析で困ってます。エラーが発生しています。
- 統計ソフトRを使用して重回帰分析を行っていますが、エラーが発生し解決できません。
- lm()関数を使用して重回帰分析を試みていますが、因子保管モードを変更するのは不正というエラーが表示されます。
- エラーメッセージによると、csvファイルに文字列が含まれている可能性があります。Rでこのエラーを解決する方法や対処法を教えてください。
- みんなの回答 (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
お礼
まさにそのとおりでした。文字列として数字が認識されていました! ありがとです!