データのお砂場(198) R言語、Sitka、樹木の生長とオゾンの関係? {MASS}

Joseph Halfmoon

MASSパッケージのサンプルデータセットを巡回中。大文字優先のABC順。前回は1990年代のS&P500指数のリターンでした。今回はSitka Spruce(シトカトウヒ)の成長カーブとな。このマツ科の常緑針葉樹は100m近い巨木になるけれども成長が速いみたいです。でもオゾンには弱いらしいっす。

※「データのお砂場」投稿順Indexはこちら

Sitka Spruce(シトカトウヒ、シトカスプルース)

北米大陸西海岸には巨木が生えてます。北カリフォルニアの海岸にはレッドウッドあり、100mを超えるような巨木が恐ろし気な暗い森林を作っており。一方、内陸の4000m峰を頭に頂くシェラネバダ山脈の山中には、高さはそれほどでもない(でも60mや70mはある)けれど太さが半端ない(体積的には世界一)ジャイアントセコイヤが比較的明るい森を作っております。日本であれば、どれもしめ縄張って御神木となるべき巨木。

お惚け老人は若いころ何度となくそれらの森を訪ねたのですが、しかしモグリっす。シトカトウヒというレッドウッドに匹敵する高さに育つ巨木がレッドウッドの森の北辺付近にまで生えていたとは知りませなんだ。アラスカからカナダを経てワシントン、オレゴンあたりの海岸線に分布しておるよし。現物写真などは、以下米国「ワシントン州」様の以下PDFファイルなどご覧くだされ。

https://dnr.wa.gov/sites/default/files/2025-03/lm_hcp_west_oldgrowth_guide_ss_hires.pdf

また米オレゴン州、カナダのブリティッシュ・コロンビア州などでも資料が見つかります。

なお、成長が速く、木材としても利用しやすいためか、英国などにも植林されたよし。グレートブリテン島にも巨木が育っているのか?

今回のサンプルデータセット

今回のサンプルデータセットは2つあります。SitkaとSitka89。Sitkaの方が1988年に取得されたデータで、Sitka89の方が1989年のデータみたいです。以下にデータセットの解説ページがあり。

Growth Curves for Sitka Spruce Trees in 1988

Growth Curves for Sitka Spruce Trees in 1989

解説ページには「測定対象が同じ」とは書いてないっすけど、データを比較すると同じ木々の1988年と1989年、2年に渡るデータみたいです。1988年初めを基点で日にちのインデックスが振られているみたい。測定しているのは木の高さx直径の2乗(つまりは幹の体積、単位は不明の上、logスケールだと)です。なお日付を見ていると夏場の6か月ほどの期間のみのデータで冬場はお休みってことみたい。冬は成長が遅くなるからだろうね。

さて、全部で79本の木々を対象に測定しているのですが2群あり。一方は何もしないもの。他方は「オゾン・リッチ」な「チャンバー」に入れたもの。まさか100m近くにもなる木を「チャンバー」に入れたとも思えないので、苗木ってこってすよね、多分。

まずは生データ

生データをみたところ、継続したデータに見えますな。どうも2年目の1989年の方が測定回数が多い感じだけれども、頑張ったの?rawDataSitka

一応、サマリをとってみると以下のようです。summarySitka

とりあえず成長曲線らしいものを描きて~

みたところSitkaとSitka89は結合しても素直に扱えそうだったので、以下のようにして1本にしてみました。rbindSitka

まずは特定の一本の木の「成長曲線」らしきものを描くべく、

    • tree=1、オゾン・チャンバに入っているやつ
    • tree=70、フツーの扱いのやつ

についてグラフを描いてみました。その処理ステップが以下に。

tree1 <- SitkaAll[SitkaAll$tree==1,]
tree70 <- SitkaAll[SitkaAll$tree==70,]
levels <- c('TREE1:ozone', 'TREE70:control')
cols <- c('blue', 'orange')
plot(tree1$size~tree1$Time, type="b", col=cols[1], xlab="Time[day]", ylab="size[log(volume)]", ylim=c(2,8))
par(new=T)
plot(tree70$size~tree70$Time, type="b", col=cols[2],ylim=c(2,8), xlab="", ylab="")
title(main="Growth Curves for Sitka Spruce Trees in 1988, 1989")
legend("bottomright", legend = levels, col = cols, pch = 16)

上記で描いたグラフは以下です。tree1_tree70_plot

上のグラフをみると、オゾンの中に入っているTREE1の方が微妙に成長良さげに見えるじゃん。でもな、1個体づつの比較では何とも言えんよな。

そこで ggplot2を使って、全79本全てをプロットしてみましたぞ。処理は以下です。

p1 <- ggplot(data=SitkaAll, mapping = aes(x=Time, y=size)) + geom_point(aes(colour=treat))
p2 <- p1 + labs(title="Growth Curves for Sitka Spruce Trees in 1988, 1989")
p2

グラフは以下に。こちらをみると、なんとなく緑の点(オゾン)が下にかたよっているような気がしないでもナイ。allTrees_plot

木毎に実験開始時と実験終了時のサイズの比を計算してみたら、成長の良しあしが分かるかも知れんと思いました。その処理が以下に

t152 <- SitkaAll[SitkaAll$Time==152,]
t674 <- SitkaAll[SitkaAll$Time==674,]
names(t674) <- c("size2", "Time2", "tree2", "treat2")
gc <- cbind(t152, t674)
gc$gr <- gc$size2/gc$size
p3 <- ggplot(data=gc, mapping = aes(x=treat,y=gr, fill=treat)) + geom_boxplot()
p3

描いた箱ヒゲ図は以下です。comp_gr

上のグラフを見ると、中央値はともかく、ozoneの方が伸び悩んでいる感じがいたします。ホントか?

例によってGoogleの生成AI、Gemini 2.5 Flash様にお伺いをたててみるとこんな回答が得られましたぞ。geminiSitka2

ほほう、やっぱりオゾンは成長を阻害するのね。

データのお砂場(197) R言語、SP500、データ区間の説明誤りに騙される {MASS}  へ戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です