津市に下宿したときの電気・ガス料金②

こんにちは、Hirokiです。
前回の記事で自分の電気・ガス使用量を赤裸々に公表したのですが、
皆さん気になりましたよね?前回の記事。

本当に2022年は電気料金が上がってるのか?←は?

いやまあ見るからに上がってるでしょ…とか言うと、有意差警察さんに怒られちゃうので、実際に色々調べてみましょう。

参考に前回の電気料金

ここでの反論としては、2022年だけ電気使用量が多かったのでは?などが考えられると思います。なので今回はそこについて数的に議論していきましょう。

電気使用量に対する電気料金の関係

電気料金は電気使用量に対して正の相関があります(それはそう)。
そのため、まずは電気料金と電気使用量の二つの要素に関して、さらっと線形回帰して比較してみましょう。

電気使用量-電気料金の関係,灰色は95%信頼区間を示す

ご覧ください。
結果からも分かる通り、2018年~2021年と2022年は全く95%信頼区間が被っていません。なお、2021年のデータのうち、2022年の信頼区間に被っている1データに関しては2021年12月のデータです。これは2022年の電気料金が有意に高いことを示しており、中部電力が2023年12月から、電気料金を値上げしたことと一致します(中部電力, 2022)
なお、これは意味のない議論です。

電気使用量を決める要因の検討

さて、上記の結果から、2022年が電気料金が高いという結果が得られました。しかしこれは、電気料金の値上げが要因であります。

しかし、電気使用量の範囲に着目すると、2021年~2022年は、2018年~2020年と比較して変域が広いように見て取れます。
そこで、ここからは電気使用量を決める要因に関して解析していきます。

なお、家庭の電気使用量の中で季節間での変動が最も高いのは冷暖房(環境省, 2013)であることから、各月の津市の平均気温のデータ(気象庁, 2022)を加味して検討します。

一般化加法モデルを作成

電気使用量を予測する上で、一般化加法モデルを作成しました。
電気使用量を応答変数とし、年度使用月各月の津市の平均気温を説明変数に使用しました。
各月の平均気温は応答変数との非線形な関係を考慮し、平滑化しました。
なお、全ての解析には統計解析ソフトR ver.4.0.5を用いました。
一般化加法モデルの計算は、mgcvパッケージgam関数を用いています。

以下に結果を掲載します。

#elec.usageは電気使用量
#ave.tmpは各月の津市の平均気温のデータ
#yearは年度
#monthは使用月
> denki <- gam(elec.usage~s(ave.tmp)+factor(year)+factor(month),data=data,family="gaussian")
> summary(denki)

Family: gaussian 
Link function: identity 

Formula:
elec.usage ~ s(ave.tmp) + factor(year) + factor(month)

Parametric coefficients:
                 Estimate Std. Error t value Pr(>|t|)   
(Intercept)       150.392     57.409   2.620  0.01244 * 
factor(year)2019   -1.194     13.629  -0.088  0.93062   
factor(year)2020   17.198     13.611   1.264  0.21381   
factor(year)2021   46.004     13.633   3.375  0.00167 **
factor(year)2022   25.242     13.698   1.843  0.07290 . 
factor(month)2     -3.723     21.761  -0.171  0.86504   
factor(month)3    -62.755     33.823  -1.855  0.07103 . 
factor(month)4    -87.429     51.609  -1.694  0.09815 . 
factor(month)5    -80.877     72.163  -1.121  0.26918   
factor(month)6    -83.444     87.430  -0.954  0.34570   
factor(month)7    -49.673    100.705  -0.493  0.62457   
factor(month)8      3.665    107.710   0.034  0.97303   
factor(month)9    -48.448     93.456  -0.518  0.60707   
factor(month)10   -75.842     70.596  -1.074  0.28922   
factor(month)11   -63.233     49.437  -1.279  0.20836   
factor(month)12   -42.410     24.490  -1.732  0.09115 . 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
             edf Ref.df     F p-value
s(ave.tmp) 1.618  2.048 0.585    0.57

R-sq.(adj) =  0.716   Deviance explained =   80%
GCV =   1312  Scale est. = 906.44    n = 57

> plot(denki)

factor(month1)は切片項(Intercept)になっています。
ざっと目を通すと、2021年~2022年、2月を除く冬季(12月∼4月)のp値が低くなっており、推定値は統計的に有意であり、目的変数(電気使用量)に影響を与えていると言えます。

フルモデルのプロット

しかし、このフルモデルではオーバーフィッティングになってしまう可能性があるため、AIC を用いてモデル選択を行います

AIC(赤池情報量規準)を用いたモデル選択

AICを用いたモデル選択は、MuMInパッケージを用いています。
なんやかんや計算していきましょう。

> library(MuMIn)
> options(na.action="na.fail")
> mlist<-dredge(denki,rank="AIC")
Fixed term is "(Intercept)"
> res1<-get.models(mlist,subset=1)[[1]]
> mlist
Global model call: gam(formula = elec.usage ~ s(ave.tmp) + factor(year) + factor(month), 
    family = "gaussian", data = data)
---
Model selection table 
   (Int) fct(mnt) fct(yer) s(ave.tmp) df   logLik   AIC delta weight
7  97.82                 +          +  9 -270.201 558.8  0.00  0.944
4 189.40        +        +            17 -265.881 565.8  6.97  0.029
8 150.40        +        +          + 18 -264.413 566.1  7.27  0.025
5 117.80                            +  4 -280.590 571.2 12.38  0.002
2 211.70        +                     13 -276.585 579.2 20.38  0.000
6 171.70        +                   + 14 -276.163 580.6 21.78  0.000
3  83.44                 +             6 -305.776 623.6 64.76  0.000
1 117.80                               2 -310.292 624.6 65.79  0.000
Models ranked by AIC(x) 

この結果より、電気使用量を説明するモデルとして、年度各月の津市の平均気温説明変数とするモデルが選択されました。

つまり、電気使用量は、年度各月の津市の平均気温によって決まると判明しました。
では、ここで選択されたモデルをプロットしてみましょう。

選択されたモデルのプロット

> denki.model <- gam(elec.usage~s(ave.tmp)+factor(year),data=data,family="gaussian")
> summary(denki.model)

Family: gaussian 
Link function: identity 

Formula:
elec.usage ~ s(ave.tmp) + factor(year)

Parametric coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)       97.8158    10.1691   9.619 7.49e-13 ***
factor(year)2019   0.7193    13.4293   0.054 0.957501    
factor(year)2020  20.3305    13.4110   1.516 0.135981    
factor(year)2021  49.9089    13.4042   3.723 0.000509 ***
factor(year)2022  23.9993    13.4756   1.781 0.081145 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
             edf Ref.df     F p-value    
s(ave.tmp) 3.194  3.958 29.11  <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

R-sq.(adj) =  0.719   Deviance explained = 75.5%
GCV = 1046.6  Scale est. = 896.12    n = 57

> plot(denki.model)
選択されたモデルのプロット

電気料金を決める要因

さて、長々と検討を重ねてきましたが、そろそろ結論が出せそうですね!!
あとちょっと頑張りましょう。

一般化加法モデルを作成

最後にバーッと、電気料金を応答変数として同様の解析をしてみましょう。
説明変数には、電気使用量年度使用月各月の津市の平均気温を使用します。
各月の平均気温は応答変数との非線形な関係を考慮し、平滑化しました。


> denkidai <- gam(elec.bill~elec.usage+s(ave.tmp)+factor(year)+factor(month),data=data,family="gaussian")
> summary(denkidai)

Family: gaussian 
Link function: identity 

Formula:
elec.bill ~ elec.usage + s(ave.tmp) + factor(year) + factor(month)

Parametric coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)       420.847    449.447   0.936   0.3548    
elec.usage         21.601      1.168  18.491  < 2e-16 ***
factor(year)2019  119.579    101.887   1.174   0.2477    
factor(year)2020   17.658    103.401   0.171   0.8653    
factor(year)2021   44.773    114.764   0.390   0.6986    
factor(year)2022 1063.124    106.669   9.967 2.81e-12 ***
factor(month)2     78.414    161.675   0.485   0.6304    
factor(month)3    -13.730    237.468  -0.058   0.9542    
factor(month)4    109.551    355.401   0.308   0.7595    
factor(month)5    284.188    500.573   0.568   0.5735    
factor(month)6    384.081    624.456   0.615   0.5421    
factor(month)7    562.873    736.222   0.765   0.4491    
factor(month)8    689.520    793.872   0.869   0.3904    
factor(month)9    561.502    671.018   0.837   0.4078    
factor(month)10   309.180    487.601   0.634   0.5297    
factor(month)11   216.563    329.791   0.657   0.5153    
factor(month)12   358.870    179.687   1.997   0.0528 .  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
           edf Ref.df    F p-value
s(ave.tmp)   1      1 0.56   0.459

R-sq.(adj) =  0.974   Deviance explained = 98.2%
GCV =  74591  Scale est. = 51036     n = 57

> plot(denkidai)

フルモデルだと、電気料金には2022年12月電気使用量影響していると言えます。

フルモデルのプロット

AIC(赤池情報量規準)を用いたモデル選択

> mlist.denkidai<-dredge(denkidai,rank="AIC")
Fixed term is "(Intercept)"
> res.denkidai<-get.models(mlist.denkidai,subset=1)[[1]]
> mlist.denkidai
Global model call: gam(formula = elec.bill ~ s(elec.usage) + s(ave.tmp) + factor(year) + 
    factor(month), family = "gaussian", data = data)
---
Model selection table 
   (Int) fct(mnt) fct(yer) s(ave.tmp) s(elc.usg) df   logLik   AIC  delta weight
11  3332                 +                     +  9 -383.232 784.6   0.00  0.646
15  3331                 +          +          + 10 -382.040 786.0   1.30  0.337
16  2820        +        +          +          + 21 -374.854 792.9   8.22  0.011
12  3296        +        +                     + 19 -376.875 793.6   8.96  0.007
9   3537                                       +  3 -430.519 867.2  82.51  0.000
13  3537                            +          +  4 -430.537 869.2  84.50  0.000
14  2284        +                   +          + 18 -423.082 883.1  98.45  0.000
10  3409        +                              + 14 -429.628 887.3 102.61  0.000
7   2866                 +          +             9 -448.448 915.1 130.41  0.000
8   3495        +        +          +            18 -442.040 921.6 136.97  0.000
4   4797        +        +                       17 -444.277 922.6 137.90  0.000
5   3537                            +             5 -465.909 942.0 157.33  0.000
6   3442        +                   +            15 -462.587 955.3 170.62  0.000
2   5598        +                                13 -465.551 957.1 172.45  0.000
3   2537                 +                        6 -484.346 980.7 196.04  0.000
1   3537                                          2 -492.849 989.7 205.05  0.000
Models ranked by AIC(x) 

この結果より、電気料金を説明するモデルとして、年度電気使用量説明変数とするモデルが選択されました。

選択されたモデルのプロット

> denkidai.model <- gam(elec.bill~s(elec.usage)+factor(year),data=data,family="gaussian")
> summary(denkidai.model)

Family: gaussian 
Link function: identity 

Formula:
elec.bill ~ s(elec.usage) + factor(year)

Parametric coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)       3331.78      76.85  43.353  < 2e-16 ***
factor(year)2019    69.40      98.80   0.702    0.486    
factor(year)2020   -74.71     103.73  -0.720    0.475    
factor(year)2021   -14.63     103.08  -0.142    0.888    
factor(year)2022   995.63     101.77   9.783 4.24e-13 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Approximate significance of smooth terms:
                edf Ref.df     F p-value    
s(elec.usage) 3.093  3.874 425.4  <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

R-sq.(adj) =  0.976   Deviance explained = 97.9%
GCV =  55001  Scale est. = 47192     n = 57

> plot(denkidai.model)


選択されたモデルのプロット

考察

統計学的手法を用いて検討したところ、電気料金を決める要因は、年度と、電気使用量で決まると結論付けられました。

まとめ

意外な結果でしたね!(自明とか言わない)
皆さんの直感は合ってましたか?

当たり前のことを当たり前だというのは簡単ですが、統計的に証明するのはすごく難しいです。
少しでも統計おもしれ~って思ってもらえたらうれしいです。


この記事が気に入ったらサポートをしてみませんか?