Hard Drive Data Setsに4万台以上のハードディスクに関するデータが公開されている。これらの寿命分布を推定してみようと思う。
公開されているデータをSQLiteに展開し、前処理
create table total_days as
select serial_number, model, count(*) as total_days,
max(failure) as failure,
min(date(date)) as min_date, max(date(date)) as max_date
from drive_stats
group by serial_number
;
Rで読み込み、解析準備
library(RSQLite)
library(dplyr)
drv<-dbDriver("SQLite")
con<-dbConnect(drv,dbname="drive_stats.db")
totaldays <- dbGetQuery(con,"select * from total_days")
head(totaldays)
totaldays %>%
group_by(model) %>%
summarise(model_sum = n()) %>%
arrange(model_sum)
hdd.df <-
totaldays %>%
filter(model %in% c("ST4000DM000", "HGST HMS5C4040ALE640"))
weib.df <- data.frame(
x = hdd.df$total_days,
condition = ifelse(hdd.df$model == "ST4000DM000", 1, 2),
status = hdd.df$failure
)
ワイブルプロットでパラメータの推定
青色 : ST4000DM000, mhat = 0.7875, etahat = 3.550e+04
赤色 : HGST HMS5C4040ALE640, mhat = 0.7628, etahat = 1.193e+05
です。
平均寿命で比較すると、
ST4000DM000は40685日で、HMS5C4040ALE640は140100日だった。
また、B1ライフ(1%壊れるまでの日数)は、
ST4000DM000は103.1日で、HMS5C4040ALE640は286.8日だった。
確率密度関数をプロット
こんな感じでHDDの寿命をモデル毎に比較出来る。(≧∇≦)/
今回対象としたモデルは、データ数が多い2つに注目したわけだが、こんなにも違いが出るなんて驚いた。