トップページ⇒math
989コメント535KB

【R言語】統計解析フリーソフトR 第4章【GNU R】

■ このスレッドは過去ログ倉庫に格納されています
0001132人目の素数さん2011/01/09(日) 17:31:49
R は統計計算とグラフィックスのための言語・環境です。
統計計算で重宝するデータ型や、複数要素を処理する演算や関数、
解析結果を表示するグラフィックなど、多彩な機能を提供します。

●関連サイト
The R Project
http://www.r-project.org/
RjpWiki
http://www.okada.jp.org/RWiki/
リンク集
http://www.okada.jp.org/RWiki/?%A5%EA%A5%F3%A5%AF%BD%B8
0152132人目の素数さん2011/08/12(金) 01:53:48.61
>>151
> seq(from=0,to=0.2,by=0.05)
[1] 0.00 0.05 0.10 0.15 0.20
> factorial(5+20-1)/factorial(20)/factorial(5-1)
[1] 10626
この程度の組み合わせなら全て計算して合計が1のものを選んだ方が早いかも。
01531522011/08/12(金) 02:20:56.85
とりあえず、20変数じゃなくて6変数の場合を提示するのであとは自分で考えて
> n <- seq(from=0,to=0.2,by=0.05)
> m <- expand.grid(n,n,n,n,n,n)
> m.s <- apply(m,1,sum)
> a <- m[m.s==1,]
> head(a)
Var1 Var2 Var3 Var4 Var5 Var6
3125 0.20 0.20 0.20 0.20 0.20 0.00
5625 0.20 0.20 0.20 0.20 0.15 0.05
6125 0.20 0.20 0.20 0.15 0.20 0.05
6225 0.20 0.20 0.15 0.20 0.20 0.05
6245 0.20 0.15 0.20 0.20 0.20 0.05
6249 0.15 0.20 0.20 0.20 0.20 0.05
0154132人目の素数さん2011/08/12(金) 03:46:54.73
変数の値を20倍すると、各変数は0〜4までの整数値を取れる、総和は20となる。
パターンは次の108通り。合計が20未満の場合は、足りない数だけ1を加える。変数が20個未満の場合は、足りない分だけ0を加える。
例:432→合計が9なので、1を11個加え、43211111111111、さらに数字の数が14個なので、0を6つ加え、「43211111111111000000」が真のパターン
44444 , 44443 , 444422 , 44442 , 4444 , 444332 , 44433 , 444322 , 44432 ,
4443 , 4442222 , 444222 , 44422 , 4442 , 444 , 443333 , 443332 , 44333 ,
4433222 , 443322 , 44332 , 4433 , 4432222 , 443222 , 44322 , 4432 , 443 ,
44222222 , 4422222 , 442222 , 44222 , 4422 , 442 , 44 , 433333 , 4333322 ,
433332 , 43333 , 4333222 , 433322 , 43332 , 4333 , 43322222 , 4332222 ,
433222 , 43322 , 4332 , 433 , 43222222 , 4322222 , 432222 , 43222 , 4322 ,
432 , 43 , 422222222 , 42222222 , 4222222 , 422222 , 42222 , 4222 ,
422 , 42 , 4 , 3333332 , 333333 , 3333322 , 333332 , 33333 , 33332222 ,
3333222 , 333322 , 33332 , 3333 , 33322222 , 3332222 , 333222 , 33322 ,
3332 , 333 , 332222222 , 33222222 , 3322222 , 332222 , 33222 , 3322 , 332 , 33 ,
322222222 , 32222222 , 3222222 , 322222 , 32222 , 3222 , 322 , 32 , 3 ,
2222222222 , 222222222 , 22222222 , 2222222 , 222222 , 22222 , 2222 , 222 , 22 , 2 ,1
各パターン毎に、変数の名前の入れ替えを考えると、合計35,561,166,195通りあると思われる。
0155132人目の素数さん2011/08/16(火) 17:26:31.50
Rのように多機能でクールでフリーの幾何学ソフト無いですか?
0156132人目の素数さん2011/08/16(火) 20:01:09.46
統計と幾何学ではだいぶソフトに求めるものが違うと思うけど、とりあえずこれなんかどう?
http://sites.google.com/site/geogebrajp/
0157132人目の素数さん2011/08/17(水) 15:07:10.21
以下のような複数の式に対して、どちらの式がより小さなzを与えるかの境界線をx-y平面上に引くためにはどうしたら良いでしょうか。
式は最大で4つほど、xとyに関しては整数を想定しています。

z=ax+by … (i)
z=cx+dy … (ii)

単純に総当りで(x,y)に対して、zを最小化する式を選ぶだけなら適当に関数を作ればいけそうですが(スマートではないですね…)、その境界をどうやったらグラフに引けるかがわかりません。

どなたか教えてくだされば幸いです。
よろしくお願いします。
0158132人目の素数さん2011/08/17(水) 18:16:26.16
>>157
>z=ax+by … (i)
>z=cx+dy … (ii)
この式でzが等しくなるax+by=cx+dyを引けばよいです。

>式は最大で4つほど
組み合わせが6組あるから6本引いてください。

>xとyに関しては整数を想定しています。
境界線を引くときは整数という条件を無視し、
グラフを見る時に整数が線のどちら側にあるか判断してください。
0159132人目の素数さん2011/09/01(木) 15:41:46.21
R
0160132人目の素数さん2011/09/05(月) 16:54:51.22
、
0161132人目の素数さん2011/09/05(月) 17:18:37.28
matlab使い慣れてる人向けの
R入門書ってないでしょうか
0162132人目の素数さん2011/09/05(月) 20:58:24.38
Ramsay, J.O., Hooker, Giles, Graves, Spencer (2010) Functional Data Analysis with R and MATLAB
(Use R) Springer-Verlag
Jan Graffelman (2010) Multivariate Analysis With Matlab And R CRC Press Online
0163132人目の素数さん2011/10/02(日) 01:52:40.21
基本的なことで申し訳ありません。
ワークスペースを保存しようとすると1kbのファイルしか保存されず、保存に失敗します。
原因がわかればよろしくお願いします。
01641632011/10/02(日) 02:08:38.40
すいません。圧縮されているんですね。
スレ汚しすいません。
0165132人目の素数さん2011/10/04(火) 02:54:00.77
g <- function(x) x^2
plot(g)

こんな感じで半径1の円を描きたいのです。
教えてください。
0166132人目の素数さん2011/10/04(火) 09:53:36.95
>>165
symbols(0,0,circles=1,inches=FALSE)
お望みはこんな感じ?
0167132人目の素数さん2011/10/04(火) 11:45:17.26
>>166 ありがとうございます。

symbols(0,0,circles=1,inches=F, xlim=c(0,2), ylim=c(0,2))

図示されたイメージの縦横比(大きさ)を変えると
円の大きさも変化してしまうのですが…

できれば、sqrt(x^2+y^2)の式を用いて描きたいです
01681522011/10/04(火) 12:39:57.11
>>167
>sqrt(x^2+y^2)の式を用いて描きたい
じゃあそうすればいいじゃん。なぜためらう?
> x <- seq(-1,1,length.out=100)
> y <- sqrt(1^2-x^2)
> plot(x,y,type="l")
これで半円だろ。
> plot(c(x,x),c(y,-y),type="l")
これで円になるだろ。
0169132人目の素数さん2011/10/04(火) 12:40:50.47
152ってなんだ、166の間違い
0170132人目の素数さん2011/10/04(火) 12:49:40.40
>>168 ありがとうございます。勉強になりました。
0171132人目の素数さん2011/10/04(火) 12:54:05.14
>>170
念のために、ちょっと改良
> plot(c(x,rev(x)),c(y,-y),type="l")

用途によるけど、円を描画したければ、symbolsを使った方が、
アスペクト比に影響されずに正円になるのでよいと思うが。
xy座標で円を描くと、asp=1にでもしない限り、普通は楕円になってしまう。
0172132人目の素数さん2011/10/12(水) 10:45:20.34
パッケージurcaのur.dfでlags=10, selectlags=c("AIC")
のようにAICやBICを使うと、
selectlagsをFixedしてラグを変えて一通り試しても
AICやBICを用いた計算に一致する結果がない、
自分で計算したBICとでは選択されたラグが一致しないなど
どこか間違っている気がします。
ソースを見ても
critRes <-AIC(result, k = switch(selectlags, AIC = 2, BIC = log(length(z.diff))))
lags <- which.min(critRes)
となっていて、当方の利用の仕方に間違いがあるのかどうかも分かりません。
どなたか、この点についてご教示いただければと思います。
0173132人目の素数さん2011/10/23(日) 19:16:11.40
確率の推定を行いたい
ロジスティック回帰のような、説明変数に対して単調増加する線形じゃなくて
多分ガウス曲線みたいな感じになると思うのだけれども
なんか適当なパッケージないですかね?
0174132人目の素数さん2011/10/24(月) 21:24:37.50
質問です。

都道府県 学年 テスト点数
京都 1 85
大阪 2 90
京都 3 70
奈良 2 60
東京 _3 90
・・・

というようなデータフレームDFが存在します。

これを各都道府県別に学年毎のテストの平均点を算出したいのですが、
どうすれば良いのでしょうか?

最初に都道府県別にデータフレームを分割すれば
tapply関数などで集約できるのですが、いかんせんfor loopで回すので
時間がかかります。ループを利用しないような簡単な計算方法はないでしょうか?

府県名 <- sort(unique(DF[,1]))
for ( i in 府県名 ){

}
01751742011/10/24(月) 21:27:18.06
すいません。
途中で送信してしまいました。

現在は

府県名 <- sort(unique(DF[,1]))
for ( i in 府県名 ){
   temp <- sub(DF, DF$府県名==i)
 result <- tapply(temp, temp$テスト点数, mean)
}

のようにしてますがいかんせんループで時間がかかります。
よろしくお願いいたします。
0176132人目の素数さん2011/10/24(月) 22:11:15.94
R言語は知らないのですが、考え方だけ。
整数型配列を二つ用意します。大きさは両方とも6*47=282です。
名前はsum、counter。最初は全て0を入れておきます。
配列の1番目は、北海道の1年に対応させ、2番目は青森の1年...47番は沖縄の一年。
48番は北海道の2年...282番目は沖縄の6年。
あるいは、1番は北海道の1年、2番は北海道の2年、...、6番は北海道の6年、...
277番が沖縄の1年、...282番は沖縄の6年。
どちらでもかまいません。
一人目のデータを読み込み、京都1年に対応するデータのsumを点数の分だけ増やし、counterは1増やす。
これを全データで行います。一度スキャンするだけです。
この目的には、ソートは必要ありません。
01771742011/10/24(月) 22:25:22.55
>>176
ありがとうございます。
Cならそれで十分なのですが、Rの場合ベクトルで扱うのでループ処理は遅くなるらしいのです。

もう一点質問です。

CODE CD VAL
0001 101 3
0001 201 4
0001 333 5
0002 201 2
0002 333 7
・・・

というデータフレームがある場合に
CODE VAL[101] VAL[102] ........ VAL[201] .............
0001 3 0 ........ 4 ...............

というようなデータフレームに変換するにはどうすればよいでしょうか。
これも現在はループを利用して処理をしております

よろしくお願いいたします。
0178132人目の素数さん2011/10/24(月) 22:51:31.71
データフレーム名をDFとして、中身が
pref grade score
kyoto 1
kyoto 1 85
oosaka 2 90
kyoto 3 70
nara 2 60
tokyo _3 90
・・・
として、
tapply(DF$score, list(grade=DF$grade, pref=DF$pref), mean, na.rm=TRUE)
みたいのではいかんのですか?
いや、私もよくわからんので、Rコマンダーにお伺いをたててみたんですがね。
0179132人目の素数さん2011/10/25(火) 02:06:48.72
>>178
ヘルプを見るとインデックスはlist of factorS とあるから、複数のベクトルをいれれるんだね。勉強になりました。

tapply(X, INDEX, FUN = NULL, ..., simplify = TRUE)
Arguments

X
an atomic object, typically a vector.

INDEX
list of factors, each of same length as X. The elements are coerced to factors by as.factor.

0180132人目の素数さん2011/10/25(火) 02:12:24.16
>>177
http://cran.r-project.org/web/packages/HSAUR2/vignettes/Ch_analysing_longitudinal_dataI.pdf
の三ページのreshape()かな
0181132人目の素数さん2011/10/25(火) 02:20:33.81
>>177

>CODE CD VAL
>0001 101 3
>0001 201 4
>0001 333 5
>0002 201 2
>0002 333 7
>・・・
>
>というデータフレームがある場合に
>CODE VAL[101] VAL[102] ........ VAL[201] .............
>0001 3 0 ........ 4 ...............

reshape(data, idvar="CODE", v.name="VAL", time="CD")

でどうでしょう。
0182132人目の素数さん2011/10/25(火) 02:28:43.43
>>181

reshape(data, idvar="CODE", v.name="VAL", timevar="CD", direction="wide")

でした。
0183132人目の素数さん2011/10/25(火) 09:18:31.89
サポートベクターマシンにて入力変数が多く、
精度を上げるための特徴選択を行おうと思い、
そのためのパッケージとして、"penalizedSVM"が
あると知りました(元々BioInformatics用みたいですが)。

http://r.789695.n4.nabble.com/Stepwise-SVM-Variable-selection-td3178718.html
http://cran.r-project.org/web/packages/penalizedSVM/index.html

しかし日本語の解説やリファレンスが皆無で、
英語でも分かりやすい解説がなく、
パッケージの公式リファレンスでは自分にはイミフでした。
http://cran.r-project.org/web/packages/penalizedSVM/penalizedSVM.pdf

どなたか実際にお使いの方がいれば、具体的に
どのように使用するか教えていただけないでしょうか。
0184172011/10/25(火) 22:44:03.74
皆様ありがとうございました。
2つとも無事うまく解決できました。
やっぱりよくヘルプを読む必要がありますね。
精進します。
0185132人目の素数さん2011/10/26(水) 00:50:54.90
>>174の例で、各都道府県別+学年毎に分けたグループそれぞれについて
1対1の全組み合わせのt.testを一気に行う方法があるでしょうか?
(loopで回す関数を自作したりしない出来合の方法で)
0186132人目の素数さん2011/10/26(水) 07:28:10.01
>>185
それは、R以前の問題として、不適切だと思うのですが。
あるいは駄目な例としてやるってことかな?
二元配置の分散分析か、何らかの多重比較ではだめなんでしょうか?
0187132人目の素数さん2011/10/31(月) 21:41:20.58
CODE_1 CODE_2 VAL1 VAL2 VAL3 VAL4
______________________
AAAAA 122 NA 2.5 3.8 NA
AAAAA 154 2.4 1 4 5
AAAAA 166 3.4 4.0 4 5
AAAAA 178 NA 33 NA NA
・
・
BBBBB 122 4 3.4 4.3 1
BBBBB 123 NA 2 4 4
BBBBB 154 2 5 5 6
・
・

というようなデータをもつデータフレーム
これをCODE_2毎に相関を算出したいと考えております。

現在は
allcode <- sort(unique(DF$CODE_2))
for ( c_code in 1:length(allcode)) {
TEMPDF <- subset(DF, DF$CODE_2==allcode[c_code])
cor(TEMPDF[, -1][, -1], use = "pairwise.complete.obs")
・・・
}
でおこなっているのですが、いかんせんCODE_2の数が多く、
ループ数が非常におおくなります。

解決策などありますでしょうか?
よろしくお願いします
0188132人目の素数さん2011/11/01(火) 08:20:00.30
>>187
code_2を因子化、tapply cor
0189132人目の素数さん2011/11/01(火) 10:39:24.41
by(DF[3:5], DF$CODE_2, cor)
でいいんじゃないの?
0190132人目の素数さん2011/11/01(火) 11:23:41.66
>>189
>>187じゃないけど、by()ってこんなに便利だったのか。
> V=c(NA,round(runif(10)*10,1))
> dat <- data.frame(C1=sample(LETTERS,50,replace=TRUE),
+ C2=sample(100:105,50,replace=TRUE),
+ V1=sample(V,50,replace=TRUE),
+ V2=sample(V,50,replace=TRUE),
+ V3=sample(V,50,replace=TRUE),
+ V4=sample(V,50,replace=TRUE))
> by(dat[,3:6],dat$C2,cor)
dat$C2: 100
V1 V2 V3 V4
V1 1 NA NA NA
V2 NA 1 NA NA
V3 NA NA 1 NA
V4 NA NA NA 1
------------------------------------------------------------
dat$C2: 101
V1 V2 V3 V4
V1 1 NA NA NA
V2 NA 1 NA NA
V3 NA NA 1.0000000 -0.4458286
V4 NA NA -0.4458286 1.0000000
------------------------------------------------------------
dat$C2: 102
V1 V2 V3 V4
V1 1.0000000 NA 0.1731169 NA
V2 NA 1 NA NA
V3 0.1731169 NA 1.0000000 NA
V4 NA NA NA 1
[以下略]
0191132人目の素数さん2011/11/01(火) 11:47:20.47
http://beebee2see.appspot.com/i/azuYwLSFBQw.jpg
すまんこれ教えてくれ
0192132人目の素数さん2011/11/01(火) 12:23:35.93
>>191
見れねーよ
0193132人目の素数さん2011/11/01(火) 12:26:19.61
diagを使わずにforで対角行列作れって言われた
九行九列で
0194132人目の素数さん2011/11/01(火) 13:07:16.47
>>193
宿題は自分でやれ。
無意味な課題であることには同情するが。
0195132人目の素数さん2011/11/01(火) 13:36:14.59
ヒントだけ
> x <- array(0, c(9, 9))
> x[1 + 0:(9 - 1) * (9 + 1)] <- c("九","行","九","列","の","対","角","行","列")
> x
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
[1,] "九" "0" "0" "0" "0" "0" "0" "0" "0"
[2,] "0" "行" "0" "0" "0" "0" "0" "0" "0"
[3,] "0" "0" "九" "0" "0" "0" "0" "0" "0"
[4,] "0" "0" "0" "列" "0" "0" "0" "0" "0"
[5,] "0" "0" "0" "0" "の" "0" "0" "0" "0"
[6,] "0" "0" "0" "0" "0" "対" "0" "0" "0"
[7,] "0" "0" "0" "0" "0" "0" "角" "0" "0"
[8,] "0" "0" "0" "0" "0" "0" "0" "行" "0"
[9,] "0" "0" "0" "0" "0" "0" "0" "0" "列"
2行目をfor文に書き換えればOK
0196132人目の素数さん2011/11/01(火) 21:38:31.87
パズルとしてdiag、for以外の方法でやってみた

n=9;matrix(rep(rep(c(1,0),c(1,n)),n),n,n)
0197132人目の素数さん2011/11/01(火) 22:18:26.30
>>196
それは多分、定石に近いやり方だと思う。

APLでは同じロジックで以下のように書く。

n nρ1,(n←9)ρ0
0198132人目の素数さん2011/11/02(水) 01:29:13.55
一直線に並べた時のパターンを作っているのか
かしこいな
0199132人目の素数さん2011/11/02(水) 10:30:18.51
>>196
rep()の回数にベクトルを指定できるとは知らなかった。
昔からだったっけ?repのexample()を見たら、listのrepとかがある。
もはや何でも有りだなw
0200132人目の素数さん2011/11/02(水) 15:09:25.23
Rでも>197のAPL版みたいにできるんだなあ。warningはでるけど。
> n=3;matrix(c(1,rep(0,n)),n,n)
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1
Warning message:
In matrix(c(1, rep(0, n)), n, n) :
データ長 [4] が行数 [3] を整数で割った、もしくは掛けた値ではありません
0201132人目の素数さん2011/11/02(水) 18:35:46.71
rep(0,n)じゃなくて rep(0,n-1)ではなくて?
0202132人目の素数さん2011/11/02(水) 20:41:59.14
>>200
そこでWarning出るところにRの設計思想があるのかも。

Rの源流に触れるつもりでAPLの教科書を読んだんだけど、
初っぱなのサンプルでこんな事やっているから

(( ̄1+ρc),27)ρc←'APL IS HAPPY '

APL IS HAPPY APL IS HAPPY A
PL IS HAPPY APL IS HAPPY AP
L IS HAPPY APL IS HAPPY APL
IS HAPPY APL IS HAPPY APL
IS HAPPY APL IS HAPPY APL I
S HAPPY APL IS HAPPY APL IS
HAPPY APL IS HAPPY APL IS
HAPPY APL IS HAPPY APL IS H
APPY APL IS HAPPY APL IS HA
PPY APL IS HAPPY APL IS HAP
PY APL IS HAPPY APL IS HAPP
Y APL IS HAPPY APL IS HAPPY
0203132人目の素数さん2011/11/02(水) 20:45:02.50
>>202
> (( ̄1+ρc),27)ρc←'APL IS HAPPY '

こっちが本来だった。

(12,1+2×ρc)ρc←'APL IS HAPPY '
0204132人目の素数さん2011/11/03(木) 02:20:32.86
Rでガンマ分布の最尤推定量求めたいんだけどどうすればいいんでしょうか

02051872011/11/03(木) 09:38:31.29
>>188,189
遅くなって申し訳ありませんがありがとうございました。
byを使ってかなり高速化することができました。

ところでbyを使って取得すると

$AAAAA
VAL1 VAL2 VAL3 VAL4
VAL1 1.000 xxxx yyyy zzzzz
VAL2 ....

となりますがすべてのCODE2についてVAL1とVAL2~VAL4の相関のみを取り出すには
どうすればよいでしょうか?
byの返り値をresultとすると
for (i in 1:length(names(result))
result[[i]][ , 2:4]
}

とループを回すしかありませんか?
よろしくお願いします

0206132人目の素数さん2011/11/03(木) 10:38:07.92
>>205
どんだけforが好きなんだよw
forの方がむしろ思いつかんわ
0207132人目の素数さん2011/11/03(木) 16:14:38.08
ああいえば for you
forever are you
0208132人目の素数さん2011/11/04(金) 00:56:32.12
>>205

result[[1:n]][ , 2:4]

ってやったらどうなりますか?
02091872011/11/04(金) 23:43:30.93
>>208
次元が違うと怒られます。。。。
0210132人目の素数さん2011/11/06(日) 16:00:11.33
基礎的な質問で申し訳ないのですが
膨大なデータから、-1と1を判別して予測する集団学習で
ランダムフォレスト、バギング、ブースティング、SVMの他に有用そうなものってありますか?

ググっても上の4つくらいしか出ないのですが十分ですかね。
0211132人目の素数さん2011/11/06(日) 22:20:02.20
エクセルやNumbersに比べてRって見た目しょぼすぎだなwww味気なさ過ぎ
もうちょっとグラフィックとかマシなのある?Mac使いとしはやっぱ見た目は重要。
0212132人目の素数さん2011/11/07(月) 00:01:59.45
>>211
Rはオブジェクト指向言語、BASIC、C、C++と比べて遥かに使いやすいし現実的な数値計算で使える。

#Excelと比較してC言語は地味でしょぼい
と嘆かれても困ったもんだ。RはExcelやNumbersとは用途が違う。

但し、重複する所もある。
具体的にはExcelのオプションの分析機能はRの機能と重なる。
使い分けが必要なんだな。
0213132人目の素数さん2011/11/07(月) 00:06:22.28
>>211
え?マジで言ってるとしたら勉強不足としか思えないのだが・・・
フォントを代えるなり、latticeやggplot2等のパッケージを試してみるといいよ
参照:ttp://rgm2.lab.nig.ac.jp/RGM2/

これは蛇足だが、学術ソフトの画像出力として「味気ない」というのは明らかに利点
大事なのは見易さと正確性であって、派手なグラフが良いとか考えていると周りから痛い子扱いされるよ
02142132011/11/07(月) 00:08:09.72
あぁ、アプリ画面等がしょぼいって事でしたら、>>212さんの意見を参考にして下さい
0215132人目の素数さん2011/11/07(月) 00:25:08.30
俺のお薦めはR Commanderかな。これはRをGUIで使えるようにしたものなの

http://cwoweb2.bai.ne.jp/~jgb11101/files/R-commander.pdf

優れている点はR Commanderのメニューが
データ、統計量、グラフ、モデル、分布
に分かれているのだけれど、これって数学的な"分析"の手順に沿ったメニュー構成になっている事に気が付く。

ディープな分析をしたい時はRを使うし、事務的な作業をしたい場合はExcelを使う。
世の中の大半はExcelで十分だと思う。Rを使いこなせる人たちは高級な。
0216132人目の素数さん2011/11/07(月) 02:59:23.82
>>213
実にしょぼい
0217132人目の素数さん2011/11/07(月) 03:00:31.75
やっぱ派手さも大切だわ
0218132人目の素数さん2011/11/07(月) 07:58:28.74
分析する前が膨大な量のデータで、分析後も派手なグラフの結果では本質が掴めているとは言えないし読む人間も判断できない。
それでは分析する価値は無い。
例えば、ロジスティック回帰分析の場合、入力は膨大でもアウトプットはyesかno程度だよ。

まあ、派手なグラフィックパッケージを探したら?あるんじゃないの?
0219132人目の素数さん2011/11/07(月) 10:47:44.35
>>218
趣旨には賛同する。

> ロジスティック回帰分析の場合、入力は膨大でもアウトプットはyesかno程度
おーい。凡ミスか本気でそう思っているのかどっちだ?
0220132人目の素数さん2011/11/07(月) 12:18:25.23
>>218
なぜ結果がグラフィカルというだけで本質が掴めてるとは言えないの?
結果は変わらないだろうにww
あなた自身が本質を掴めてないのではww
0221132人目の素数さん2011/11/07(月) 14:01:31.17
>>220
横から参戦させてもらうが、そもそもデータ分析の目的は、
データに含まれる枝葉末節を取り除き、データの中に隠れている本質を洗い出すことにある。
苦労して洗い出した本質にまた余計なものを加えて汚すのはこれ如何に?
0222132人目の素数さん2011/11/07(月) 16:20:49.99
どなたかパッケージのtuneRに詳しい人いないですか?
0223132人目の素数さん2011/11/07(月) 18:42:59.29
>>222
リゲス先生が詳しいと思うよw
02242182011/11/07(月) 23:07:11.83
>>219
"yesかno程度"の"程度"にいろんな意味がこめられているから大目に見てよ(^_^)。
02251872011/11/07(月) 23:10:40.47
とりあえずunlistでベクトルに分解してから、
必要な要素だけを取り出すようにしました。
ループをまわさないのでだいぶ高速化されました。
ありがとうございまいた。
02262182011/11/07(月) 23:13:34.77
>>220
>なぜ結果がグラフィカルというだけで本質が掴めてるとは言えないの?
誤解があったようですまない。
別に可視化(グラフィカル)の研究分野を否定しているわけではないよ。

人間の目で見て確認するのは結構有効なんだよね。
一例を探してみました。
次のURLの画像を見てもらいたいのだけれど

http://www-kairo.csce.kyushu-u.ac.jp/~norikazu/svm.png

左側の2次元平面上の青と赤の点を"シンプルな人工知能"で判別する事はできないんだ。
ところがSVM(サポートベクターマシン)と呼ばれる人工知能を用いるとこれを右側の3次元の問題に置き換える事で判別できるようにするんだ。

こういう判別ができているのか?出来ていないのか?は人間の目で判断して使い分けた方が良い場合がある。
だから可視化は一つの研究分野として重視されているんだ。
02272182011/11/07(月) 23:20:49.19
但しグラフィカルには限度がある。
>>221 さんの主張にあるようにR使いの人たちは大体、数百次元のデータから4次元や5次元位に絞り込む。
でもグラフィカルの世界では基本的に3次元(z軸,y軸,z軸)が限界なんだよね。
4次元以上は色や形に置き換えて可視化する事になる。そうなると実は分かりにくいんだよ。

先のURLの人工知能の例でも所詮2次元から3次元へ問題を置き換えているに過ぎない。
分析の世界をまじめに可視化するとかなりハードルが高くなるんだよね。
勿論、高次元を可視化する手法としてSOMという方法も存在するよ。
0228132人目の素数さん2011/11/08(火) 09:30:33.83
面白い話が聞けた
0229132人目の素数さん2011/11/08(火) 09:45:20.37
>>218の豹変ぶりに笑った
データの可視化の話と、派手なグラフィックで装飾する話は別の話だと思うが。
02302182011/11/08(火) 22:42:06.35
>>229
ああ、そうなのか。まじめに答えちまったい(^_^)。

でもn次元を2次元に強引にマッピングして可視化するSOMって人間が感覚的にデータの善し悪しを判断する時に結構使えると思うんだよね。
まあ、いいや。
0231132人目の素数さん2011/11/09(水) 09:17:28.99
結局さ、本質を取り出すことに意義を感じる研究者と、
データで相手を説得することに意義を感じるビジネスマンは、
相容れないと思うんだ。円グラフを立体化して一部を切り出したり、
棒グラフを無意味に立体化したり、グラデーションで彩色したりというのは、
ビジネスマンに必要かも知れないけど、研究者には必要がない。
0232132人目の素数さん2011/11/09(水) 22:27:50.28
質問があります。
MySQLからデータを取得し、データフレームに読み込ませたいのですが、
日付時刻のカラムがあり、どう読み込ませるのか分からず困っています。
-----
Updated [TAB] Rate
2011-11-08 15:03:00 [TAB] 77.645
2011-11-10 02:04:00 [TAB] 77.6255
2011-11-09 08:03:00 [TAB] 77.585
-----
単にread.tableでは読み込めませんでした。
Rは初めて使うので基礎的な事しかわかりませんが、どうかご教授ください。

0233132人目の素数さん2011/11/10(木) 15:56:58.04
>>232
直にMySQLならデータベースに直にSQLアクセスするパッケージを使う必要があるのでは?RODBCだっけ?

テキストに書き出して読み込むなら、read.tableがつかえると思けど時間が混じると読み込んでから変換が必要だと思う。

いずれも、Rデータ自由自在に書いてあると思う


0234132人目の素数さん2011/11/15(火) 11:15:58.60
1.i行j列成分がi^2+j^3で与えられる10行10列の行列をfor文を用いて作りなさい。
2.a=1000:1を作成してこれを昇順に並び替えなさい。
3.A=matrix(400:1,20,20)を作成し、この行列を第1列の値が昇順に並ぶように行を並び替えなさい
0235132人目の素数さん2011/11/15(火) 11:16:21.60
↑の回答わかる方お願いします。
0236132人目の素数さん2011/11/15(火) 14:26:46.90
>>234
また宿題か。
まさか試験中に書き込んでる?
0237132人目の素数さん2011/11/15(火) 22:14:50.47
>>234
> 1.i行j列成分がi^2+j^3で与えられる10行10列の行列をfor文を用いて作りなさい。

しかし、Rでfor文ってその教授はバカじゃないの?

常識的に
outer((1:10)^2,(1:10)^3,'+')
ってやるものじゃないのか?
0238132人目の素数さん2011/11/16(水) 00:17:57.03
>>234
1. a <- matrix(0, 10, 10); for (i in 1:10) {for (j in 1:10) {a[i, j]=i^2+j^3}}
2. rev(a)
3. A[20:1,]
0239132人目の素数さん2011/11/17(木) 09:59:23.86
R初心者として質問です。

Rを外部プロセスから呼び出したり、
シェルからRプログラムを渡して標準出力で受け取ったりはできるのでしょうか。

なにとぞよろしくお願いします。
0240132人目の素数さん2011/11/17(木) 12:17:43.67
>>239
$ echo 'print(pi)' |r
[1] 3.141593
とか
$ Rscript -e 'print(pi)'
[1] 3.141593
02412402011/11/17(木) 12:20:00.76
>>239
> 標準出力で受け取ったり
無意味な例だけど、
$ echo 'print(pi)' |r | sed 's/3/A/g'
[1] A.14159A
0242132人目の素数さん2011/11/17(木) 18:28:14.48
>>240-241
ありがとうございました。
活用します。
0243132人目の素数さん2011/11/18(金) 10:01:50.10
>>239
シェルスクリプトから、短いRスクリプトを呼ぶなら、
ヒアドキュメントを使う方法が個人的に好き。

R --vanilla --slave <<_END_OF_R_ > output_of_R.txt
print(pi)
_END_OF_R_

別に、Rに限らず、PerlでもPythonでもこの方法は使えますが、、、
0244132人目の素数さん2011/11/18(金) 10:12:24.08
>>243
おぉ、Rって標準入力からそのまま普通に使えたのか
0245132人目の素数さん2011/11/18(金) 18:03:12.10
電波テロ装置の戦争(始)
エンジニアと参加願います公安はサリンオウム信者の子供を40歳まで社会から隔離している
オウム信者が地方で現在も潜伏している
それは新興宗教を配下としている公安の仕事だ
発案で盗聴器を開発したら霊魂が寄って呼ぶ来た
<電波憑依>
スピリチャル全否定なら江原三輪氏、高橋佳子大川隆法氏は、幻聴で強制入院矛盾する日本宗教と精神科
<コードレス盗聴>
2004既に国民20%被害250〜700台数中国工作員3〜7000万円2005ソウルコピー2010ソウルイン医者アカギ絡む<盗聴証拠>
今年5月に日本の警視庁防課は被害者SDカード15分を保持した有る国民に出せ!!<創価幹部>
キタオカ1962年東北生は二十代で2人の女性をレイプ殺害して入信した創価本尊はこれだけで潰せる<<<韓国工作員鸛<<<創価公明党 <テロ装置>>東芝部品)>>ヤクザ<宗教<同和<<公安<<魂複<<官憲>日本終Googl検索
0246132人目の素数さん2011/11/18(金) 18:03:58.46
魂は幾何学


誰か(アメリカ)気づいた
ソウルコピー機器
0247132人目の素数さん2011/11/19(土) 03:14:20.46
persp関数により3次元グラフを描画しているのですが、borderの幅が小さいためか、グラフが真っ黒になってしまいます。
この幅を変更する方法はありますか?また、他の解決方法がありましたら、教えてください。
0248132人目の素数さん2011/11/19(土) 11:32:20.50
>>247
グラフを大きくした方がよさげだけど、
pdf(file="247.pdf",width=14,height=14)
persp(...)
dev.off()
ぐらいから、サイズを試行錯誤してみれば?
borderの幅が線幅のことなら、lwdなどで指定する。
0249132人目の素数さん2011/11/19(土) 19:55:55.59
>>248
コメントありがとうございます。
サイズや、線幅を変えて試行錯誤してみましたが、どうもborderの線と線の間隔が狭いのが原因のようです。
この線と線の間隔の設定はできないのでしょうか?よろしくお願いします。
0250132人目の素数さん2011/11/21(月) 08:56:04.33
>>249
むしろ、border=NAとか
0251132人目の素数さん2011/11/25(金) 21:55:00.40
>>215
統計数理研究所で、昨日からRの無料講習会が開かれているようですね。
日程:2011年11月24日(木)− 11月26日(土)
場所:統計数理研究所(東京都立川市)3階セミナー室 2 (D304)
データ解析環境Rの整備と利用
http://mid.ism.ac.jp/stats/msg01502.html
0252132人目の素数さん2011/11/26(土) 00:49:00.80
いや、講習会じゃないんだけど…
■ このスレッドは過去ログ倉庫に格納されています