メモ:地震の分析

天気.jpから取得した地震データを分析したプログラムのメモです。コピペで動作するはずです。

library(plyr)

eq  <- read.csv("http://www.ianalysisllc.com/app/download/4590900767/eq_en.csv?t=1313125288", as.is=T)
eq2 <- ddply(eq, .(date2, area2), summarise, count=sum(!is.na(date1)))

eq_glm1 <- glm(count ~ area2, data = eq2, family = poisson())
eq_glm2 <- glm(count ~ area2, data = eq2, family = quasipoisson())
summary(eq_glm1)
summary(eq_glm2)

eq2$date3 <- as.Date(as.character(eq2$date2), "%Y-%m-%d") - as.Date("20110101", "%Y%m%d")
eq2       <- eq2[order(eq2$date3), ]
head(eq2)


plot(eq2$date3[eq2$area2=="Touhoku"], eq2$count[eq2$area2=="Touhoku"], type="l")
plot(eq2$date3[eq2$area2=="Kanto"], eq2$count[eq2$area2=="Kanto"], type="l")


eq_glm3 <- glm(count ~ area2 + date3, data = eq2, family = quasipoisson())
summary(eq_glm3)

exp(1.02 + 1.25)
exp(1.02 - 0.93)
exp(1.02 + 1.25 + 100*0.00159)


偶然にもログが残っていたので、いろいろ試行錯誤しながらエラーを出しまくってるプログラムも残しておきます。

library(plyr)
eq  <- read.csv("http://www.ianalysisllc.com/app/download/4590900767/eq_en.csv?t=1313125288", as.is=T)
ddply(eq, .(date1), summarise, count=sum(!is.na(date2)))
ddply(eq, .(date1, area), summarise, count=sum(!is.na(date2)))
str(eq)
ddply(eq, .(date1, area2), summarise, count=sum(!is.na(date2)))
peq_glm <- glm(count ~ area2, data = eq2, family = quasipoisson())
eq2 <- ddply(eq, .(date1, area2), summarise, count=sum(!is.na(date2)))
peq_glm <- glm(count ~ area2, data = eq2, family = quasipoisson())
eq_glm <- glm(count ~ area2, data = eq2, family = quasipoisson())
summary(eq_glm)
str(eq2)
eq2$date3 <- eq2$date2 - 20110101
str(eq2)
eq2$date3 <- eq2$date1 - 20110101
str(eq2)
eq_glm <- glm(count ~ area2, data = eq2[226:755, ], family = quasipoisson())
eq_glm <- glm(count ~ area2 + date3, data = eq2[226:755, ], family = quasipoisson())
summary(eq_glm)
plot(eq2$date3, eq2$count)
plot(eq2$date3[226:755], eq2$count[226:755])
eq2$date3 <- as.Date(as.character(eq2$date1), "%Y%m#d") - as.Date("20110101", "%Y%m#d")
head(eq2)
tail(eq2)
as.Date(as.character(eq2$date1), "%Y%m#d")
as.Date(as.character(eq2$date1), "%Y%m%d")
eq2$date3 <- as.Date(as.character(eq2$date1), "%Y%m%d") - as.Date("20110101", "%Y%m#d")
tail(eq2)
eq2$date3 <- as.Date(as.character(eq2$date1), "%Y%m%d") - as.Date("20110101", "%Y%m%d")
tail(eq2)
plot(eq2$date3[226:755], eq2$count[226:755])
eq2[300:400,]
eq2
eq2 <- ddply(eq, .(date2, area2), summarise, count=sum(!is.na(date1)))
head(eq2)
eq2$date3 <- as.Date(as.character(eq2$date1), "%Y-%m-%d") - as.Date("20110101", "%Y%m%d")
eq2$date3 <- as.Date(as.character(eq2$date2), "%Y-%m-%d") - as.Date("20110101", "%Y%m%d")
head(eq2)
plot(eq2$date3, eq2$count)
plot(eq2$date3, eq2$count, type="l")
plot(eq2$date3[eq2$area2=="Touhoku"], eq2$count[eq2$area2=="Touhoku"], type="l")
eq2 <- eq2[order(eq2$date3), ]
plot(eq2$date3[eq2$area2=="Touhoku"], eq2$count[eq2$area2=="Touhoku"], type="l")
eq_glm <- glm(count ~ area2 + date3, data = eq2, family = quasipoisson())
summary(eq_glm)
(a <- exp(4.529-0.03883*20))
exp(1.02+1.25)
exp(1.02-0.93)
exp(1.02+1.25 + 100*0.00159)
eq_glm2 <- glm(count ~ area2 + date3, data = eq2, family = poisson())
summary(eq_glm2)
summary(eq_glm)
plot(eq2$date3[eq2$area2=="Kantou"], eq2$count[eq2$area2=="Kantou"], type="l")
plot(eq2$date3[eq2$area2=="Kanto"], eq2$count[eq2$area2=="Kanto"], type="l")
plot(eq2$date3[eq2$area2=="Touhoku"], eq2$count[eq2$area2=="Touhoku"], type="l")

いつも奇麗なプログラムをアップしていますが、実際は変数名を間違えたりタイプミスがあったり、エラーを起こしながらプログラミングしています。そのうちエラー勉強会として題材にしても良いかも。。。?

ページTOPへ