郵便番号のデータベース化を行います。
1.郵便番号データ
http://www.post.japanpost.jp/zipcode/dl/roman-zip.html
ダウンロードして開くと
"0640941","北海道","札幌市 中央区","旭ケ丘","HOKKAIDO","SAPPORO SHI CHUO KU","ASAHIGAOKA"
このようなデータ形式になっています。
2.保管用データベース作成
CREATE TABLE IF NOT EXISTS `postalcodes` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`code` varchar(7) NOT NULL,
`ken` varchar(255) NOT NULL,
`city` varchar(255) NOT NULL,
`address` varchar(255) NOT NULL,
`kenread` varchar(255) NOT NULL,
`cityread` varchar(255) NOT NULL,
`addressread` varchar(255) NOT NULL,
`created` datetime DEFAULT NULL,
`modified` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
3.サーバ側でアップロードできるファイル容量を増やしておく。
今回ダウンロードしたファイルは12.4MBありました。
今回はphpMyAdminでCSVアップロードで済ませてしまおうと思います。
phpMyAdminのデフォルトだと2MB位なので、増やしておきます。
# vi /etc/php.ini
memory_limit = 128M
;post_max_size = 8M
↓
post_max_size = 32M
;upload_max_filesize = 2M
↓
upload_max_filesize = 32M
4.データのアップロード
今回はphpMyAdminを利用して、CSVデータをテーブルに格納します。
phpMyAdmin->データベース選択->テーブル(postalcodes)選択->インポート
今回のCSVを選択します。
フォーマットがCSVになっていることを確認し、カラム名に
code,ken,city,address,kenread,cityread,addressreadを書いておきます。
実行ボタンを押すとアップロードが開始されます。
今回の環境では2分程度かかりました。
参考サイト
http://rensabanet.com/wordpress-tips/tukai/11733/
2015年7月14日火曜日
2015年7月7日火曜日
Rでのカイ二乗検定
年毎の発生率の有意性を確認するために実施しました。
今回は5年間のある事象の発生率に対し、有意性があるか検定します。
今回の対象はサンプル数10万件程度を仮定するので、ピアソンのカイ二乗検定を利用します。
今回のテーブルです。
帰無仮説 H0:発生の頻度と年代は独立である
対立仮説 H1:発生の頻度と年代は独立でない(関係がある)
実際にRでやってみます。
chisq.test(matrix(c(1325,94055,1358,34025,1655,38484,1873,75089,1424,65571),nrow=5,byrow=TRUE))
Pearson's Chi-squared test
data: matrix(c(1325, 94055, 1358, 34025, 1655, 38484, 1873, 75089,1424, 65571), nrow = 5, byrow = TRUE)
X-squared = 1245.7, df = 4, p-value < 2.2e-16
統計量であるカイ二乗値:X-squared = 1245.7
自由度:df = 4
p値(p-value): < 2.2e-16 < 0.001(有意水準0.1%)
よって帰無仮説H0を棄却する。
結論
有意水準0.1%で、事象の発生頻度と年代は独立でない。つまり年代と関係があるといえる。
参考
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/66.html
http://monge.tec.fukuoka-u.ac.jp/r_analysis/test_crosstable00.html
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1169222731
今回は5年間のある事象の発生率に対し、有意性があるか検定します。
今回の対象はサンプル数10万件程度を仮定するので、ピアソンのカイ二乗検定を利用します。
今回のテーブルです。
発生あり | 発生なし | |
2015 | 1325 | 94055 |
2014 | 1358 | 34025 |
2013 | 1655 | 38484 |
2012 | 1873 | 75089 |
2011 | 1424 | 65571 |
帰無仮説 H0:発生の頻度と年代は独立である
対立仮説 H1:発生の頻度と年代は独立でない(関係がある)
実際にRでやってみます。
chisq.test(matrix(c(1325,94055,1358,34025,1655,38484,1873,75089,1424,65571),nrow=5,byrow=TRUE))
Pearson's Chi-squared test
data: matrix(c(1325, 94055, 1358, 34025, 1655, 38484, 1873, 75089,1424, 65571), nrow = 5, byrow = TRUE)
X-squared = 1245.7, df = 4, p-value < 2.2e-16
統計量であるカイ二乗値:X-squared = 1245.7
自由度:df = 4
p値(p-value): < 2.2e-16 < 0.001(有意水準0.1%)
よって帰無仮説H0を棄却する。
結論
有意水準0.1%で、事象の発生頻度と年代は独立でない。つまり年代と関係があるといえる。
参考
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/66.html
http://monge.tec.fukuoka-u.ac.jp/r_analysis/test_crosstable00.html
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1169222731
2015年7月4日土曜日
MySQLのデフォルト設定(UTF-8環境)
いつもソフトウェア側でUTF-8を指定していたので問題無かったのですが、色々な用途で使うとデフォルトでしっかり設定したほうがよいです。
[現在の状況の確認]
phpMyAdmin等で次のSQL文を実行してみます。
SHOW VARIABLES LIKE "chara%"
デフォルトではこの中でcharacter_set_serverがlatin1になっています。これを修正します。
[変更]
# vi /etc/my.cnf
[mysqld]に追加
character-set-server=utf8
[client]作成
default-character-set=utf8
# service mysqld restart
[確認]
もう一度
SHOW VARIABLES LIKE "chara%"
を発行してみると
のようにUTF-8の環境になったようです。
参考
http://qiita.com/YusukeHigaki/items/2cab311d2a559a543e3a
[現在の状況の確認]
phpMyAdmin等で次のSQL文を実行してみます。
SHOW VARIABLES LIKE "chara%"
デフォルトではこの中でcharacter_set_serverがlatin1になっています。これを修正します。
[変更]
# vi /etc/my.cnf
[mysqld]に追加
character-set-server=utf8
[client]作成
default-character-set=utf8
# service mysqld restart
[確認]
もう一度
SHOW VARIABLES LIKE "chara%"
を発行してみると
のようにUTF-8の環境になったようです。
参考
http://qiita.com/YusukeHigaki/items/2cab311d2a559a543e3a
登録:
投稿 (Atom)