R

長くなったので”MY NOTE 2″から引っ越しました

多変量解析 R 主成分分析 因子分析 数量化Ⅰ類からⅢ類まで
できるようにがんばります!!

注)全く知識のない私のメモですので他の方には参考になりません・・・^^;

多変量解析概論
な、なんとなく多変量解析の事わかるw 主成分分析のこともわかりやすく説明してある。

Rに関してはRjpWiki
言われた通り、筑波のミラーサイトから。ダウンロードしました。
で?というわけでdemoを使ってみる事に。
使い方から全くわかりません。

Rの簡単な使い方
Rのデモ demo()と打ってみると,デモ可能な一覧。
例)demo(graphics)
関係ないけど、このヒトの『絵日記でも書いてみようか』にウケた>< 眠気がとびました。ありがとうw
で、デモの図がでないんだけど・・・あ、enter押したら見れたw

Rを使って実際に統計解析してみよう
データの入れ方からわかりません。ということでここの例を試してみる。
このデータはどこで保存してあるの?
Excelで作って”test.data”で保存
でもエラーが
Excelで作って.dataで保存してもExcel形式じゃダメだという事で(常識なの??)フォーマットをCSVに変更。
『スペース区切り』もあるからどっちがいいかいろいろ試してみてねと言われる。。。
意味が分かりませんw試すか、試してみるしかないのか。。。
それでもできない。『マルチバイト文字列が不正』か。
UTFとshift JISの問題?例題をコピペで.dataだとちゃんと動く。
Excelで保存したデータをEditorに持って行くとshift JISになるのが関係あるのでしょうか。眠い。

(CSVについてみて見る・・・いくつかのフィールドをコンマで区切ったテキストデータおよび
テキストファイルExcelで作って『.csv』で保存すればいいのかあ。)

ここにこんなことが書いてありました。
「\ を表すには \\ とするしか無いのですが、今後国際化の過程で \ → 0xA5(UTF-8) とかアレゲな事になるかも
しれませんMS-CP932 , SHIFT_JIS 等からコード変換でもよく過去に話題になりました.(なかまさんより)」
アレゲって何?ああ、なんだか疲れて来てて変な事調べてる。とにかくSHIFT_JISでなんかあったらしい。
なかまさん教えて><

Excelの保存をUnicode テキスト(UTF-16)でしてみる。
マルチバイト文字列が不正です
追加情報: Warning message:
In read.table(“test2.txt”, header = TRUE) :
‘test2.txt’ の readTableHeader で不完全な最終行が見つかりました

Editorに持ってって確認したら漢字が変な文字になってた・・・
やっぱりEditorでUnicodeに変換するしかないのかな。

あああ、って結論で次の行程に進んだら解決策がw 次を読んどくのも大事だよね><
rrr.jpg

えっとじゃあ、実際のデータ使って主成分分析を・・・で、何からしていいのかw
再び群馬大学の青木先生のところで考えよ。
ソースが打ち込めない・・・改行使っちゃダメなのでしょうか・・・打ち込んじゃうと上の行に戻れないものなんですね。
め、めんどくさいwどっかで作ってペーストが一番いいのかなあ。

xlimの意味から分からない。

もうちょっと調べよう・・・。

お、こっちの方がわかりやすいかな。

データのSpeciesは数字に置き換えないとだめか。また作り直し。
結果らしきものがでたけど、イマイチわからない><
やっぱり1から勉強しないとだめか。(当たり前〜) 

行列の作成

Fisherのirisデータ使ったので一回試してた。コピペで上手くいく(それでいいのかー!)

そして実際のデータ使ってやってみた。結果出たので送った・・・あってるかどきどき・・・結果待ち。

生態学のデータ解析

plotのX,Y軸を0で交差するようにできるのでしょか。
グラフ
rnorm・・・norm 正規分布 頭が拒否するw
      rXXX 乱数 rnorm(n) 正規分布に従う乱数をn個生成
axes・・・FALSEだと軸は生成されない
ann=F 軸のラベルを描かない
axis()・・・軸
adjの値はテキスト文字列が整形される仕方。0は左揃い。0.5は中心。1は右揃い。ってaxisのなかにこれ入れるのかなあ^^;
las・・・軸ラベルの形式 las=0 常に軸に平行(規定)
             las=1 常に水平
             las=2 常に軸に垂直
             las=3 常に垂直
pchプロット点の形を指定する

軸はaxisでなんとかなりそう。

PC3の3次元かあpersp()

ここ『統計解析フリーソフト R の備忘録頁』のサイトホントにわかりやすくて助かってます。
基本的な事。
<オブジェクトについて・・・>
objects() rm()
20080124_r01.jpg
20080124_r02.jpg

<オブジェクトの表示について>
作業ディレクトリ指定に print() cat()
rrr-03.jpg

<文字列の表示>
sprintf()
rrr_004.jpg

<書式付きでオブジェクトの表示>
この辺でもう意味が・・・また後でわかるかも
rrr_005.jpg

<出力をファイルに送る>
“sink” 作業ディレクトリの場所に指定した名前をつけたファイルを作り、Rの出力を送ってくれる。
rrr_006.jpg

“test_00″というファイルを作った。結果だけが送られている。Rの画面上には表示されない。
sink()で閉じる
rrr_007.jpg

<ベクトル>
R は基本的データを,要素の個数が一つだけのベクトルとして扱っている。・・・意味わからないw
と、とにかく進もうw
ベクトルを作成する基本的な関数はc()
ベクトルの要素の個数をベクトルの長さと呼ぶ。length()
rrr_008.jpg

c()以外の規則的なベクトルを生成する関数 rep() seq()
seq:単調増加(減少)する数値列
rrr_009.jpg

seq() sequence()
rrr_010.jpg

rep() times=cのcが数列可って数列がよくわかんない
rrr_011.jpg

rep() unique() numeric()
rrr_012.jpg

<ベクトルをc()で定義する>
rrr_20080125_1.jpeg

<ベクトルの要素>
ああ!yのベクトルの中身長過ぎてところどころきれてる!!
ベクトルのベクトルの中の数を「要素」と呼ぶ。左から順に 1, 2, ・・・ と番号が振られている。
rrr_20080125_2.jpeg
character・・・文字列(”"や\を前に置いて表す)

&と|
rrr_20080125_3.jpeg
NA・・・欠損値・不定データ
NaN・・・非数(数では表せないもの)
Inf・・・無限大

<ベクトルの計算>
◯同じ長さのベクトルの場合(+,ー,*,/,%/%整数商,%%剰余,^べき乗)
rrr_20080125_42.jpeg
rrr_20080125_5.jpeg

◯長さのちがうベクトル
短い方のベクトルの要素が循環して使用される。
rrr_20080125_8.jpeg

◯ベクトル同士の比較
rrr_20080125_9.jpeg
相変わらずバカな事をしてしまう・・・コメントのerrorについてw
rrr_20080125_10.jpeg

◯ベクトル用の関数
各要素に関数は適用され結果が出る sqrt()
rrr_20080129_1.jpeg

演算を行う関数(だいたい一通り試してみたが、訂正の必要あり)
sum()総和 mean()平均 var()不偏分散 median()中央値 cor()相関係数 max()最大値 min()最小値
prod()総積 cumsum()累積和 sd()標準偏差 sort()昇順整列 rev()要素を逆順 pmax()並列最大値 prim()並列最小値
range()範囲 match()マッチング diff()前進差分 rank()整列した各要素の順位 order()整列した各要素の元の位置
rrr_20080129_2.jpeg
rrr_20080129_3.jpeg
rrr_20080129_4.jpeg
rrr_20080129_5.jpeg

◯ベクトル要素の置換・結合・挿入
replace()で置換
rrr_20080129_6.jpeg
c()で結合。2つだとappend()でも可
rrr_20080129_7.jpeg
append()で挿入
rrr_20080129_8.jpeg

◯複素型のベクトル
Re(),Im(),Mod(),abs(),Arg(),Conj()
また必要な時に・・・

◯論理型ベクトル
論理値を要素とするベクトル
& 論理積 | 論理和 ! 否定 xor 排他的論理和
論理積とは・・・与えられた複数の命題のいずれもが例外なく真(AND)
論理和・・・与えられた複数の命題のいずれか少なくとも一つが真(OR)
排他的論理和・・・与えられた命題のいずれかただ一つのみが真であるときに真となる(XOR)

rrr_20080130_1.jpeg
rrr_20080130_2.jpeg

論理ベクトル全体を調べる関数
any() all()
rrr_20080131_1.jpeg

◯文字型ベクトル
rrr_20080131_2.jpeg

◯因子ベクトル
また・・・あとで

<文字列の操作>
◯文字列ベクトルの結合
paste(),seq,collapse
Rに標準で用意されている定数:LETTERS(大文字)letters(小文字)month.abb(月の名前の略)month.name(月の名前)pi(円周率)
rrr_20080131_3.jpeg

◯部分文字列の取り出し
substring()
rrr_20080131_4.jpeg

◯文字列をRの命令として実行
eval(parse(text=paste”文字列”))
rrr_20080131_5.jpeg
rrr_20080131_6.jpeg
rrr_20080131_7.jpeg
最後の関数は何も調べず適当に入れただけ。消すの忘れてた・・・
その他の関数 chamatch(),chartr(),grep(),match(),gsub()などなど

<NULL,NA,NaN,Infの操作>
◯NULL,NA,NaN,Infかどうか
NULL(何もない) NA(欠損値) NaN(非数) Inf(無限大)は比較演算子を用いると全ての要素で同じ結果が返ってくるため、それぞれがNULL,NA,NaN,Infかどうかの判定を行う関数がある。
is.null():NULLかどうか
is.na() :Naかどうか
is.nan():NaNかどうか
is.finite():有限かどうか
is.infinite():無限かどうか
complete.cases():欠損かどうか
rrr_20080201_1.jpeg
rrr_20080201_2.jpeg

◯ベクトル要素にあるNAの排除・置換
引数にNAが含まれるとエラーになる関数がある。NAが含まれるデータを渡すためには取り除いたり他の値にすれば良いのですね。ifelse()
rrr_20080201_3.jpeg
rrr_20080201_4.jpeg

◯NULLの使い方
属性を取り出す関数が属性値がないときなど、適当な結果がないことを示す。
NAはベクトルの要素になるがNULLはそれ自身がベクトル。
rrr_20080201_5.jpeg
rrr_20080201_6.jpeg
rrr_20080201_7.jpeg
x<-NULLの他にx<-c()やx<-numericでも良い。

<行列〜>
やっと行列に・・・ってこの調子じゃ1ヶ月以上かかりそうです。すみません・・・
◯行列の作成
matrix(ベクトル,行列,列数) byrow=T
rrr_20080202_1.jpeg

◯行列要素へのアクセス
rowSums() colSums() rowMeans() colMeans()
行は左から順に、列は上から番号が振られている
rrr_20080202_2.jpeg
rrr_20080202_3.jpeg

◯行列ベクトルの結合
rbind() cbind()
rrr_20080204_1.jpeg

<行列の計算>
行列の積なんて忘れてる・・・のでWikiの行列の計算を参考に・・・
rrr_20080204_2.jpeg
rrr_20080204_3.jpeg
*上の例は実際には数値行列やベクトルじゃないと計算はできません。

次は外積なのですが・・・これを考えただけ眠くなって先に進まない。
外積の説明はここ
rrr_20080205_1.jpeg
rrr_20080205_2.jpeg
外積を求める際の関数の指定
rrr_20080205_4.jpeg
      ・
      ・
rrr_20080205_5.jpeg
そしてグラフをpersp()で
rrr_20080205_3.jpeg
演算子の定数部分にベクトルをもってくる。/を使えば要素ごとの逆数も
rrr_20080208_1.jpeg

◯行列計算の関数
単位行列・・・単位的環上で定義される同じ型の正方行列同士の、積演算における単位元。単位行列の対角成分には 1 が並び、他は全て 0 となる。
単位的環・・・加法 + についてアーベル群であり、更に乗法 * に関して任意の R の元 a, b, c が結合法則、左分配法則、右分配法則の性質を持ち、a * 1 = 1 * a = a を 1 が満たすときのR

は?調べれば調べるほどわけ分かんなくなりそうなのであとで・・・・^^;;
matrix()
20080208_2.jpeg

diag()
rrr_20080208_3.jpeg
rrr_20080208_4.jpeg
rrr_20080208_5.jpeg

転置・・・m 行n 列の行列 A に対して A の (i, j) 要素と (j, i) 要素を入れ替えた n 行 m 列の行列、つまり対角線で成分を折り返した行列のことである。転置行列は AT や tA、また Atr などと表現される。
t(X)
rrr_20080211_1.jpeg

上対角成分(upper triangle)と下対角成分(lower triangle)
X[upper.tri(X)] X[lower.tri(X)]
rrr_20080211_2.jpeg

まだ基礎が終わってないのに、次に進まないと間に合いませんw

<偏差の和を考える>
次の5個のデータについて考える
5,6,9,11,14
5個のデータの平均は・・・Rでします・・・。

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed