Hatena::ブログ(Diary)

極めて個人的なメモ

Θ・)ノシ Bob#3のメモ帳です。
1972 | 12 |
2003 | 03 | 04 | 05 | 06 | 11 | 12 |
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 11 |
2006 | 03 | 04 | 05 | 06 | 07 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 05 | 06 | 07 | 10 | 11 | 12 |
2008 | 01 | 02 | 04 | 05 | 08 | 09 | 10 | 11 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 |
2011 | 05 | 06 | 09 | 10 |
2012 | 02 | 03 | 05 | 06 | 08 |
2013 | 01 | 02 | 03 |
2015 | 02 |

2013-03-12

数独をRで解く 数独をRで解く - 極めて個人的なメモ を含むブックマーク 数独をRで解く - 極めて個人的なメモ のブックマークコメント

ったつもりが簡単な問題だった件 に載っている数独の問題をRで解きます。

といっても、例によって必要なパッケージを呼び出して、関数一発です。

そう、数独用のパッケージがあるのです、Rならね。


install.packages("sudoku")
library(sudoku)
HW1 <- matrix(c(0,6,1,0,0,7,0,0,3,
                0,9,2,0,0,3,0,0,0,
                0,0,0,0,0,0,0,0,0,
                0,0,8,5,3,0,0,0,0,
                0,0,0,0,0,0,5,0,4,
                5,0,0,0,0,8,0,0,0,
                0,4,0,0,0,0,0,0,1,
                0,0,0,1,6,0,8,0,0,
                6,0,0,0,0,0,0,0,0), 9, byrow=TRUE)
solveSudoku(HW1, verbose=TRUE)

Inkara1 <- matrix(c(0,0,5,3,0,0,0,0,0,
                    8,0,0,0,0,0,0,2,0,
                    0,7,0,0,1,0,5,0,0,
                    4,0,0,0,0,5,3,0,0,
                    0,1,0,0,7,0,0,0,6,
                    0,0,3,2,0,0,0,8,0,
                    0,6,0,5,0,0,0,0,9,
                    0,0,4,0,0,0,0,3,0,
                    0,0,0,0,0,9,7,0,0), 9, byrow=TRUE)
solveSudoku(Inkara1, verbose=TRUE)

Inkara2 <- matrix(c(8,0,0,0,0,0,0,0,0,
                    0,0,3,6,0,0,0,0,0,
                    0,7,0,0,9,0,2,0,0,
                    0,5,0,0,0,7,0,0,0,
                    0,0,0,0,4,5,7,0,0,
                    0,0,0,1,0,0,0,3,0,
                    0,0,1,0,0,0,0,6,8,
                    0,0,8,5,0,0,0,1,0,
                    0,9,0,0,0,0,4,0,0), 9, byrow=TRUE)
solveSudoku(Inkara2, verbose=TRUE)

結果はネタバレになるので書きません。

処理時間はHW1が0.39秒、Inkara1が3.12秒、Inkara2が10.95秒でした。

2012-08-25

K-01 に KMZ INDUSTAR 50-2 50mm/F3.5 (M42) を付けて撮ったみた  K-01 に KMZ INDUSTAR 50-2 50mm/F3.5 (M42) を付けて撮ったみた - 極めて個人的なメモ を含むブックマーク  K-01 に KMZ INDUSTAR 50-2 50mm/F3.5 (M42) を付けて撮ったみた - 極めて個人的なメモ のブックマークコメント

先日購入したK-01が楽しくてたまらない。

何が楽しいって、マニュアルレンズで撮りやすいのが最高に楽しい。


で、ついにM42マウントレンズにも手を出してしまった。

しかもロシア(ソ連)レンズ

K-01にぴったりなパンケーキレンズ INDUSTAR 50-2。

もっとトイレンズっぽい写りかと思っていたら、いやいやスゲーよく写る!


今日はちょっと時間が取れたのでこの組み合わせで試し撮りしてきました。


風鈴

f:id:bob3:20120825150603j:image:w640


金魚

f:id:bob3:20120825150715j:image:w640


吽形

f:id:bob3:20120825150937j:image:w640


阿形

f:id:bob3:20120825151049j:image:w640


風車

f:id:bob3:20120825151314j:image:w640


注連縄

f:id:bob3:20120825151641j:image:w640


御神籤

f:id:bob3:20120825151936j:image:w640


手水

f:id:bob3:20120825152052j:image:w640


手水

f:id:bob3:20120825152216j:image:w640


手水

f:id:bob3:20120825152316j:image:w640


手水

f:id:bob3:20120825152359j:image:w640


f:id:bob3:20120825152509j:image:w640


境内

f:id:bob3:20120825152711j:image:w640


空蝉

f:id:bob3:20120825153344j:image:w640


狛犬

f:id:bob3:20120825155101j:image:w640


蛇口

f:id:bob3:20120825155335j:image:w640


ぐるぐるボケ

f:id:bob3:20120825155512j:image:w640


木漏れ日

f:id:bob3:20120825160013j:image:w640


っと、いい感じの写真だけ載せましたが、何しろ1959年生産が始まった古いレンズです。

さらに元を辿れば1902年設計されたTessarのデッドコピーなんだそうで100年以上前から使われているレンズ

デジタル対応の最新レンズには敵わない部分ももちろんあるわけで。

f:id:bob3:20120825151502j:image:w640

f:id:bob3:20120825152952j:image:w640

逆光にはめっぽう弱く、こんな感じに盛大なフレアが出ます。

フードがあればだいぶましになりそうですが、そうすると小さくて薄いパンケーキレンズの利点が損なわれるような気もしますしねぇ。

kenzokenzo 2012/09/22 09:19 普段見落としがちなモノを上手に切り取って撮影してらっしゃいますね
勉強になりました^^

bob3bob3 2012/09/22 22:31 いやはや、お恥ずかしい。
ただ、カメラを趣味にし始めてから、それまで気づかなかったフォトジェニックなものに目が行くようになりましたね。

2011-10-03 Rで共分散構造分析 {lavaan}パッケージ編 #rstatsj

[]Rで共分散構造分析 {lavaan}パッケージ編 #rstatsj Rで共分散構造分析 {lavaan}パッケージ編 #rstatsj - 極めて個人的なメモ を含むブックマーク Rで共分散構造分析 {lavaan}パッケージ編 #rstatsj - 極めて個人的なメモ のブックマークコメント

Rで共分散構造分析を行うにはこれまでは John Fox さんの{sem}パッケージを使うのが普通でした。

私も以前、{sem}パッケージの使い方についてエントリーを書いています。

id:bob3:20091226

id:bob3:20091227

id:bob3:20100530


しかし最近は{OpenMX}や{lavaan}など共分散構造分析のためのパッケージが他にも出てきました。

特に{lavaan}はまだβ版ながら評判が良いようです。

{lavaan}の公式サイトはこちら→ lavaan - latent variable analysis


というわけで、ブルーバックス『原因をさぐる統計学』に載っている事例をいくつが{lavaan}でやってみましょう。


まずは{lavaan}と関連パッケージのインストール

install.packages(c("lavaan", "psych", "qgraph"))

パッケージの呼び出し。

library(lavaan)
library(psych)
library(qgraph)

まずは『原因を探る統計学』のp129、p237に載っている「ヘッド・スタート計画」の事例から。


まず、分析する相関係数行列を入力します。

# ヘッドスタート計画の相関係数行列
HS <- matrix(c(1.000, 0.484, 0.224, 0.268, 0.230, 0.265,
                0.484, 1.000, 0.342, 0.215, 0.215, 0.295,
                0.224, 0.342, 1.000, 0.387, 0.196, 0.234,
                0.268, 0.215, 0.387, 1.000, 0.115, 0.162,
                0.230, 0.215, 0.196, 0.115, 1.000, 0.635,
                0.265, 0.295, 0.234, 0.162, 0.635, 1.000), 6)
colnames(HS) <- rownames(HS) <- paste("x", 1:6, sep="")

それぞれの変数の意味は、

x1:母親の学歴

x2:父親の学歴

x3:父親の職業

x4:家庭の収入

x5:MRT(知能検査)

x6:ITPA(知能検査)


次にモデルの記述です。

「多重指標モデル」と「外生潜在変数が2つのモデル」の2パターンでやってみます。


# 多重指標モデル
HS.mdl.1 <- '
  # 測定方程式の記述
  f1 =~ x1 + x2 + x3 + x4
  f2 =~ x5 + x6
  # 構造方程式の記述
  f2 ~ f1 '

# 外生潜在変数が2つのモデル
# 因子間相関は記述しなくてもOK。
HS.mdl.2 <- '
  # 測定方程式
  f1 =~ x1 + x2
  f2 =~ x3 + x4
  f3 =~ x5 + x6
  # 構造方程式
  f3 ~  f1 + f2 '

{lavaan}パッケージではモデルの記述に以下のような記号の使い方をしています。

=~ 測定方程式

~ 構造方程式(回帰)

~~ 残差の共分散(相関)


それでは分析の実行です。

HS.fit.1 <- sem(HS.mdl.1, sample.cov=HS, sample.nobs=1800)
summary(HS.fit.1, fit.measures=TRUE, standardized=TRUE)

HS.fit.2 <- sem(HS.mdl.2, sample.cov=HS, sample.nobs=1800)
summary(HS.fit.2, fit.measures=TRUE, standardized=TRUE)

出力結果は割愛しますが、CFI、TLI、AIC、BIC、RMSEAといった指標値に続き、推定された係数が出てきます。(なぜかメジャーなGFI、AGFIは出力されない…)

Std.allというのが標準化係数のようです。

また、sem()を実行したときに「相関係数行列からの分析はまだサポートしてないよ!」という警告メッセージが出ます。

このあたりはβ版ゆえ仕方がないでしょう。

それでもテキストと同じ数値が出てきます。


一応、パス図の描画もしてくれます。

ただ、本当に“一応”という感じで、モデルの確認程度にしか使えないと思います。

diagram(HS.fit.1, "多重指標モデル", errors=TRUE, cut=0, lr=FALSE)

f:id:bob3:20111004005908p:image:w360


qgraph(HS.fit.1, titles=FALSE)

※はてなフォトライフがメンテ中で画像を載せられませんでした…


diagram(HS.fit.2, "潜在変数が2つのモデル", errors=TRUE, cut=0, lr=FALSE)

※はてなフォトライフがメンテ中で画像を載せられませんでした…


qgraph(HS.fit.2, titles=FALSE)

※はてなフォトライフがメンテ中で画像を載せられませんでした…


といった具合で、まだまだ不具合や不満点はあるものの、多母集団同時分析や平均構造モデルにも対応するということで、{lavaan}は今後が楽しみなパッケージです。

時間ができたら他の事例でも試してみます。






あ、そうそう、転職しました。