かかなきゃ

下書きが20を超えてしまっているのに、結局まとめられず、メモ書き。殴り書きでいいので、下書きにすらしない。
Stataのコマンドとあわせて追記していく予定。


主成分分析に関する本をいくつか読んだ。

主成分分析の基本と活用 / 内田治著
主成分分析 / 上田尚一著
非計量多変量解析法 : 主成分分析から多重対応分析へ / 足立浩平, 村上隆
これはOPACで出てきた本だけれども、他にも狙い撃ちでいくつか読んだ。

・数量化Ⅰ類<=>回帰分析、数量化Ⅱ類<=>判別分析、数量化Ⅲ類<=>主成分分析/因子分析、、、の質的バージョン。(具体的にどうやっているか対応して書いてある本もとてもよかった。)
・分散共分散行列or相関行列から始める主成分分析。(青木先生の所だと、前者を使う場面が分からないとあったが)
固有値問題を解くことと同義とされる数学的処理。
クラスター分析と主成分分析が、かなり近い手法。


実際の処理はRとStataでやってみた。
(分析をする前に相関行列をみてデータを吟味するのも大切。)
Stataの場合、デフォルトで相関行列から開始され、
pca 変数
だけで結果が出る。
分散共分散行列から開始するときは、
pca 変数, covariance

Stataの場合デフォルトだと主成分負荷量ではなく、固有ベクトルを出力する。
累積寄与率や負荷量の基準をどことするか、なかなか難しく、寄与率1以上だとかScree法だとか色々。

使用頻度が高いvbaコマンド

久しぶりにいじったらRubyとこんがらがってて、配列長取得(UBound)を忘れているなど・・・

最終行を取得

btmRow = Range("A65536").End(xlUp).Row

というのをよく見るけれども、65536っていうのが何となく気持ち悪かったり、空行が入ってたら止まってしまった方がいい時などは

btmRow = Range("A1").End(xlDown).Row

これは行分ループしたいときに使うことが多いのだけれども、たとえばシートをEach objectで回すなど、中途半端なオブジェクトも使える。
セル範囲をとりたいときは、意外とusedRangeもちゃんと領域を認識してくれる。


検索
RangeObjectに対して、

Set RangeObject = Columns("A").Find(What:=検索文字)

特定の列だけ(Columns)だったり、範囲(Range)だったり、シート全体(Cells)だったり。
注意点としては、オプションを指定しないと、その時点でのエクセルの条件(GUI画面で設定する方)が適用された気がする。
マクロ実行前に、大文字小文字区別がonだと、その条件で検索してしまう。
・LookAt{xlPart/xlWhole}:部分一致か完全一致か
・MatchCase{True/False}:大文字小文字区別するかしないか

Findは、検索結果で条件分けしないと、エラーの原因になる。

If RangeObject Is Nothing Then
  検索対象見つからず
Else
  検索対象みつかった
End If

FindNextやFindPreviousもよく使う。
こっちはRangeObjectを引数にして、もう一度Setする。

Set RangeObject = Columns("A").FindNext(RangeObject)

言葉を覚えるには書くといいと聞くけれども、タイピングやらメモ程度でも効果があるのだろうか。
その都度ググってしまえばいいと思うのだけれども。

Exaggerated Waiting Impulsivity Associated with Human Binge Drinking, and High Alcohol Consumption in Mice.

1. Neuropsychopharmacology. 2014 Jun 20. doi: 10.1038/npp.2014.151. [Epub ahead of print]

title:Exaggerated Waiting Impulsivity Associated with Human Binge Drinking, and High Alcohol Consumption in Mice.

Author: Sanchez-Roige S, Baro V, Trick L, Peña-Oliver Y, Stephens DN, Duka T.
Author information: School of Psychology, University of Sussex, Falmer, Brighton, UK.

preview online, 20 June 2014; doi:10.1038/npp.2014.151.
PMID: 24947901 [PubMed - as supplied by publisher]

続きを読む