Movatterモバイル変換


[0]ホーム

URL:


Version:0.1.1
Title:Time Series Cointegrated System
Maintainer:Tianjian Yang <yangtj5@mail2.sysu.edu.cn>
Description:A set of functions to implement Time Series Cointegrated System (TSCS) spatial interpolation and relevant data visualization.
Depends:R (≥ 3.4.2)
Imports:stats, ggplot2 (≥ 2.2.1), tseries (≥ 0.10-42), rgl (≥0.98.1), grDevices
License:GPL-2 |GPL-3 [expanded from: GPL (≥ 2.0)]
RoxygenNote:6.0.1
Encoding:UTF-8
LazyData:true
Suggests:knitr, rmarkdown, R.rsp
VignetteBuilder:knitr, R.rsp
NeedsCompilation:no
Packaged:2017-10-02 11:11:52 UTC; MSI
Author:Tianjian Yang [aut, cre]
Repository:CRAN
Date/Publication:2017-10-02 11:19:48 UTC

A Package for TSCS Spatial Interpolation Method

Description

This package provides functions to implement TSCS spatial interpolation andrelevant data visualization. For TSCS method, the current version is only able tomake use of spatio-temporal data whose spatial domain is a 2D or 3D rectangular grid system.

Details

  1. TSCS (abbr. of Time Series Cointegrated System) method is a spatialinterpolation method based on analysis of historical spatio-temporal data.It can be regarded as a desirable alternative to spatio-temporal interpolationin some cases where we merely intend to interpolate a series of cross-section dataat each observed time point for a given spatial domain.

  2. The basic assumption of TSCS method is that, for any spatial location withinthe spatial domain of spatio-temporal data, its time series and the time series ofits adjacent spatial locations are cointegrated (long-term equilibrium relationships).

  3. As to TSCS method, package of the current version is only able to make use ofspatio-temporal data whose spatial domain is a 2D or 3D rectangular grid system.

Package Functions

Author(s)

Tianjian Yang <yangtj5@mail2.sysu.edu.cn>


Compute Appraisal Index of Interpolation/Prediction Result

Description

Two appraisal indexes used for evaluating the result of interpolation/prediction - RMSE andstandard deviation of error.

Usage

appraisal_index(est, true)

Arguments

est

a numeric vector; estimations.

true

a numeric vector; true values.

Details

Value

A list of 2 is returned, including:

RMSE

numeric; RMSE.

std

numeric; standard deviation of error.

See Also

plot_compare

Examples

## Not run: ## TSCS spatial interpolation procedure:basis <- tscsRegression(data = data, h = 1, v = 1, alpha = 0.01); # regressionbasis$percentage # see the percentage of cointegrated relationshipsest <- tscsEstimate(matrix = basis$coef_matrix, newdata = newdata, h = 1, v = 1); # estimationstr(est)## comparison of estimates and true values:plot_compare(est = est$estimate[,3], true = true) # graphic comparisonindex <- appraisal_index(est = est$estimate[,3], true = true); # RMSE & stdindex## data visualization:plot_dif(data = data[,1:2], h = 1, v = 1) # differentiate boundary and interior spatial locationsplot_NA(newdata = newdata) # show spatial locations with missing value, for a cross-section dataplot_map(newdata = newdata) # plot the 2D spatial map, for a cross-section data## End(Not run)

Visualize the Spatial Distribution of Missing Observations - 3D Map

Description

plot3D_NA shows spatial locations with or without missing observation. It is plotted based onthe cross-section data of a given time point, which is also often extracted from spatio-temporal data.

Usage

plot3D_NA(newdata, xlab = NULL, ylab = NULL, zlab = NULL, title = NULL,  cex = 3, color = "orange", colorNA = "blue")

Arguments

newdata

data frame; should only contain the four variables in order: X coordinate, Y coordinate, Z coordinateand observation. This is the cross-section data or pure spatial data of a particular time point you have selected,with missing observations that you want to predict. (coordinates must be numeric)

xlab

a label for the x axis, defaults to the name of X coordinate.

ylab

a label for the y axis, defaults to the name of Y coordinate.

zlab

a label for the z axis, defaults to the name of Z coordinate.

title

a main title for the plot.

cex

numeric; size of plotting point for each spatial location. (default: 3)

color

colour to be used to fill the spatial locations. (default: "orange")

colorNA

colour for denoting missing values/observations. (default: "blue")

Details

See Also

plot_NA,plot3D_map,plot3D_dif

Examples

## Not run: ## TSCS spatial interpolation procedure:basis <- tscsRegression3D(data = data, h1 = 3.75, h2 = 2.5, v = 5, alpha = 0.01);basis$percentageest <- tscsEstimate3D(matrix = basis$coef_matrix, newdata = newdata, h1 = 3.75, h2 = 2.5, v = 5);str(est)## comparison of estimates and true values:plot_compare(est = est$estimate[,4], true = true)index <- appraisal_index(est = est$estimate[,4], true = true);index## data visualization:plot3D_dif(data = data[,1:3], h1 = 3.75, h2 = 2.5, v = 5)plot3D_NA(newdata = newdata)plot3D_map(newdata = newdata)## End(Not run)

Plot Interior Spatial Locations and System Boundary - 3D Map

Description

plot3D_dif differentiates boundary and interior spatial locations in a spatial domain (a collection ofspatial locations with their coordinates). Since TSCS method is only capable of interpolation but notextrapolation, it is necessary to highlight the difference between interior spatial locations and system boundary.

Usage

plot3D_dif(coords, h1, h2, v, xlab = NULL, ylab = NULL, zlab = NULL,  title = NULL, cex = 3)

Arguments

coords

data frame; should only contain the three variables: X coordinate, Y coordinate and Z coordinate.Each row uniquely denotes a spatial location. (coordinates must be numeric)

h1

numeric; side length of the unit cubic grid in X coordinate direction (horizontal).

h2

numeric; side length of the unit cubic grid in Y coordinate direction (horizontal).

v

numeric; side length of the unit cubic grid in Z coordinate direction (vertical).

xlab

a label for the x axis, defaults to the name of X coordinate.

ylab

a label for the y axis, defaults to the name of Y coordinate.

zlab

a label for the z axis, defaults to the name of Z coordinate.

title

a main title for the plot.

cex

numeric; size of point to be plotted for each spatial location. (default: 3)

Details

See Also

plot_dif,plot3D_NA,plot3D_map

Examples

## Not run: ## TSCS spatial interpolation procedure:basis <- tscsRegression3D(data = data, h1 = 3.75, h2 = 2.5, v = 5, alpha = 0.01);basis$percentageest <- tscsEstimate3D(matrix = basis$coef_matrix, newdata = newdata, h1 = 3.75, h2 = 2.5, v = 5);str(est)## comparison of estimates and true values:plot_compare(est = est$estimate[,4], true = true)index <- appraisal_index(est = est$estimate[,4], true = true);index## data visualization:plot3D_dif(data = data[,1:3], h1 = 3.75, h2 = 2.5, v = 5)plot3D_NA(newdata = newdata)plot3D_map(newdata = newdata)## End(Not run)

Visualize Spatial(Cross-Section) Data of a Given Time Point - 3D Map

Description

plot_map draws a three-dimensional spatial map. It is plotted based on the cross-section dataof a given time point, which is also often extracted from spatio-temporal data.

Usage

plot3D_map(newdata, xlab = NULL, ylab = NULL, zlab = NULL, title = NULL,  cex = 9, colorNA = "white")

Arguments

newdata

data frame; should only contain the four variables in order: X coordinate, Y coordinate, Z coordinateand observation. This is the cross-section data or pure spatial data of a particular time point you have selected,with missing observations that you want to predict. (coordinates must be numeric)

xlab

a label for the x axis, defaults to the name of X coordinate.

ylab

a label for the y axis, defaults to the name of Y coordinate.

zlab

a label for the z axis, defaults to the name of Z coordinate.

title

a main title for the plot.

cex

numeric; size of plotting point for each spatial locations. (default: 9)

colorNA

colour for missing values/observations. (default: "white")

Details

See Also

plot_map,plot3D_NA,plot3D_dif

Examples

## Not run: ## TSCS spatial interpolation procedure:basis <- tscsRegression3D(data = data, h1 = 3.75, h2 = 2.5, v = 5, alpha = 0.01);basis$percentageest <- tscsEstimate3D(matrix = basis$coef_matrix, newdata = newdata, h1 = 3.75, h2 = 2.5, v = 5);str(est)## comparison of estimates and true values:plot_compare(est = est$estimate[,4], true = true)index <- appraisal_index(est = est$estimate[,4], true = true);index## data visualization:plot3D_dif(data = data[,1:3], h1 = 3.75, h2 = 2.5, v = 5)plot3D_NA(newdata = newdata)plot3D_map(newdata = newdata)## End(Not run)

Visualize the Spatial Distribution of Missing Observations - 2D Map

Description

plot_NA shows spatial locations with or without missing observation. It is plotted based onthe cross-section data of a given time point, which is also often extracted from spatio-temporal data.

Usage

plot_NA(newdata, xlab = NULL, ylab = NULL, title = NULL, cex = 1)

Arguments

newdata

data frame; should only contain the three variables in order: X coordinate, Y coordinate and observation.This is the cross-section data or pure spatial data of a particular time point you have selected,with missing observations that you want to predict. (coordinates must be numeric)

xlab

a label for the x axis, defaults to the name of X coordinate.

ylab

a label for the y axis, defaults to the name of Y coordinate.

title

a main title for the plot.

cex

numeric; size of plotting point for each spatial location. (default: 1)

Details

plot_NA is exclusive to 2D rectangular grid system. Similarly, if you want to fathom how this packagehandles 3D rectangular grid system, please refer toplot3D_NA.

See Also

plot3D_NA,plot_map,plot_dif

Examples

## Not run: ## TSCS spatial interpolation procedure:basis <- tscsRegression(data = data, h = 1, v = 1, alpha = 0.01); # regressionbasis$percentage # see the percentage of cointegrated relationshipsest <- tscsEstimate(matrix = basis$coef_matrix, newdata = newdata, h = 1, v = 1); # estimationstr(est)## comparison of estimates and true values:plot_compare(est = est$estimate[,3], true = true) # graphic comparisonindex <- appraisal_index(est = est$estimate[,3], true = true); # RMSE & stdindex## data visualization:plot_dif(data = data[,1:2], h = 1, v = 1) # differentiate boundary and interior spatial locationsplot_NA(newdata = newdata) # show spatial locations with missing value, for a cross-section dataplot_map(newdata = newdata) # plot the 2D spatial map, for a cross-section data## End(Not run)

Graphic Comparison Between Estimates and True Values

Description

Provided that you have the true values of missing observations, you can compare themwith the results of interpolation.plot_compare visualizes the comparisonbetween estimates and true values. (NB: this plotting function can also be usedin other similar situations involving comparison between estimates and true values.)

Usage

plot_compare(est, true, cex = 1, width = 1, P = 6/7, AI = TRUE)

Arguments

est

a numeric vector; estimations.

true

a numeric vector; true values.

cex

numeric; size of point to be plotted. (default: 1)

width

numeric; width of fitted straight line. (default: 1)

P

numeric, between 0 and 1; position for superimposing values of appraisal indexes. (default: 6/7)

AI

logical;TRUE for presenting appraisal indexes whileFALSE for not. (default: TRUE)

Details

Attentions:

In the plot:

See Also

appraisal_index

Examples

## Not run: ## TSCS spatial interpolation procedure:basis <- tscsRegression(data = data, h = 1, v = 1, alpha = 0.01) # regressionbasis$percentage # see the percentage of cointegrated relationshipsest <- tscsEstimate(matrix = basis$coef_matrix, newdata = newdata, h = 1, v = 1) # estimationstr(est)## comparison of estimates and true values:plot_compare(est = est$estimate[,3], true = true) # graphic comparisonindex <- appraisal_index(est = est$estimate[,3], true = true); # RMSE & stdindex## data visualization:plot_dif(data = data[,1:2], h = 1, v = 1) # differentiate boundary and interior spatial locationsplot_NA(newdata = newdata) # show spatial locations with missing value, for a cross-section dataplot_map(newdata = newdata) # plot the 2D spatial map, for a cross-section data## End(Not run)

Plot Interior Spatial Locations and System Boundary - 2D Map

Description

plot_dif differentiates boundary and interior spatial locations in a spatial domain (a collection ofspatial locations with their coordinates). Since TSCS method is only capable of interpolation but notextrapolation, it is necessary to highlight the difference between interior spatial locations and system boundary.

Usage

plot_dif(coords, h, v, xlab = NULL, ylab = NULL, title = NULL, cex = 1)

Arguments

coords

data frame; should only contain the two variables: X coordinate and Y coordinate. Each row uniquelydenotes a spatial location. (coordinates must be numeric)

h

numeric; side length of the unit grid in X coordinate direction.

v

numeric; side length of the unit grid in Y coordinate direction.

xlab

a label for the x axis, defaults to the name of X coordinate.

ylab

a label for the y axis, defaults to the name of Y coordinate.

title

a main title for the plot.

cex

numeric; size of plotting point for each spatial location. (default: 1)

Details

plot_dif is exclusive to 2D rectangular grid system. Similarly, if you want to fathom how this packagehandles 3D rectangular grid system, please refer toplot3D_dif.

See Also

plot3D_dif,plot_NA,plot_map

Examples

## Not run: ## TSCS spatial interpolation procedure:basis <- tscsRegression(data = data, h = 1, v = 1, alpha = 0.01); # regressionbasis$percentage # see the percentage of cointegrated relationshipsest <- tscsEstimate(matrix = basis$coef_matrix, newdata = newdata, h = 1, v = 1); # estimationstr(est)## comparison of estimates and true values:plot_compare(est = est$estimate[,3], true = true) # graphic comparisonindex <- appraisal_index(est = est$estimate[,3], true = true); # RMSE & stdindex## data visualization:plot_dif(data = data[,1:2], h = 1, v = 1) # differentiate boundary and interior spatial locationsplot_NA(newdata = newdata) # show spatial locations with missing value, for a cross-section dataplot_map(newdata = newdata) # plot the 2D spatial map, for a cross-section data## End(Not run)

Visualize Spatial(Cross-Section) Data of a Given Time Point - 2D Map

Description

plot_map draws a two-dimensional spatial map. It is plotted based on the cross-section dataof a given time point, which is also often extracted from spatio-temporal data.

Usage

plot_map(newdata, xlab = NULL, ylab = NULL, title = NULL, cex = 2,  shape = 15, low = "blue", mid = "yellow", high = "red",  na.value = "white", midpoint = NULL)

Arguments

newdata

data frame; should only contain the three variables in order: X coordinate, Y coordinate and observation.This is the cross-section data or pure spatial data of a particular time point you have selected,with missing observations that you want to predict. (coordinates must be numeric)

xlab

a label for the x axis, defaults to the name of X coordinate.

ylab

a label for the y axis, defaults to the name of Y coordinate.

title

a main title for the plot.

cex

numeric; size of plotting point for each spatial locations. (default: 2)

shape

either an integer specifying a symbol or a single character to be used as the defaultin plotting points. (default: 15)

low,high

colours for low and high ends of the gradient. (default: "blue","red")

mid

colour for midpoint of the gradient. (default: "yellow")

na.value

colour for missing values/observations. (default: "white")

midpoint

numeric; the midpoint of the gradient scale, defaults to the midpoint value of index presented.

Details

plot_map is exclusive to 2D rectangular grid system. Similarly, if you want to fathom how this packagehandles 3D rectangular grid system, please refer toplot3D_map.

See Also

plot3D_map,plot_NA,plot_dif

Examples

## Not run: ## TSCS spatial interpolation procedure:basis <- tscsRegression(data = data, h = 1, v = 1, alpha = 0.01); # regressionbasis$percentage # see the percentage of cointegrated relationshipsest <- tscsEstimate(matrix = basis$coef_matrix, newdata = newdata, h = 1, v = 1); # estimationstr(est)## comparison of estimates and true values:plot_compare(est = est$estimate[,3], true = true) # graphic comparisonindex <- appraisal_index(est = est$estimate[,3], true = true); # RMSE & stdindex## data visualization:plot_dif(data = data[,1:2], h = 1, v = 1) # differentiate boundary and interior spatial locationsplot_NA(newdata = newdata) # show spatial locations with missing value, for a cross-section dataplot_map(newdata = newdata) # plot the 2D spatial map, for a cross-section data## End(Not run)

The Second Step of TSCS for 2D Rectangular Grid System - Estimation

Description

tscsEstimate estimates the missing observations within the cross-section data (pure spatial data)of a particular time point you have selected, namely, the interpolation process.

Usage

tscsEstimate(matrix, newdata, h, v)

Arguments

matrix

data frame; the first return valuecoef_matrix of functiontscsRegressionin the first step of TSCS.

newdata

data frame; should only contain the three variables in order: X coordinate, Y coordinate and observation.This is the cross-section data or pure spatial data of a particular time point you have selected,with missing observations that you want to predict. (coordinates must be numeric)

h

numeric; side length of the unit grid in X coordinate direction.

v

numeric; side length of the unit grid in Y coordinate direction.

Details

Value

A list of 3 is returned, including:

estimate

data frame; estimate of missing observations which contains the 3 variables in order:X coordinate, Y coordinate and estimation.

complete

data frame; an updated version of the cross-section data (pure spatial data)newdata,with all of its missing observations interpolated.

NA_id

an integer vector; reveals the instance ID, in data framenewdata,of spatial locations with missing observation.

See Also

tscsRegression,tscsEstimate3D,plot_NA,plot_map

Examples

## Not run: ## TSCS spatial interpolation procedure:basis <- tscsRegression(data = data, h = 1, v = 1, alpha = 0.01); # regressionbasis$percentage # see the percentage of cointegrated relationshipsest <- tscsEstimate(matrix = basis$coef_matrix, newdata = newdata, h = 1, v = 1); # estimationstr(est)## comparison of estimates and true values:plot_compare(est = est$estimate[,3], true = true) # graphic comparisonindex <- appraisal_index(est = est$estimate[,3], true = true); # RMSE & stdindex## data visualization:plot_dif(data = data[,1:2], h = 1, v = 1) # differentiate boundary and interior spatial locationsplot_NA(newdata = newdata) # show spatial locations with missing value, for a cross-section dataplot_map(newdata = newdata) # plot the 2D spatial map, for a cross-section data## End(Not run)

The Second Step of TSCS for 3D Rectangular Grid System - Estimation

Description

tscsEstimate estimates the missing observations within the cross-section data (pure spatial data)of a particular time point you have selected, namely, the interpolation process.

Usage

tscsEstimate3D(matrix, newdata, h1, h2, v)

Arguments

matrix

data frame; the first return valuecoef_matrix of functiontscsRegression3Din the first step of TSCS.

newdata

data frame; should only contain the four variables in order: X coordinate, Y coordinate, Z coordinateand observation. This is the cross-section data or pure spatial data of a particular time point you have selected,with missing observations that you want to predict. (coordinates must be numeric)

h1

numeric; side length of the unit cubic grid in X coordinate direction (horizontal).

h2

numeric; side length of the unit cubic grid in Y coordinate direction (horizontal).

v

numeric; side length of the unit cubic grid in Z coordinate direction (vertical).

Details

Value

A list of 3 is returned, including:

estimate

data frame; estimate of missing observations which contains the 4 variables in order:X coordinate, Y coordinate, Z coordinate and estimation.

complete

data frame; an updated version of the cross-section data (pure spatial data)newdata,with all of its missing observations interpolated.

NA_id

an integer vector; reveals the instance ID, in data framenewdata,of spatial locations with missing observation.

See Also

tscsRegression3D,tscsEstimate,plot3D_NA,plot3D_map

Examples

## Not run: ## TSCS spatial interpolation procedure:basis <- tscsRegression3D(data = data, h1 = 3.75, h2 = 2.5, v = 5, alpha = 0.01);basis$percentageest <- tscsEstimate3D(matrix = basis$coef_matrix, newdata = newdata, h1 = 3.75, h2 = 2.5, v = 5);str(est)## comparison of estimates and true values:plot_compare(est = est$estimate[,4], true = true)index <- appraisal_index(est = est$estimate[,4], true = true);index## data visualization:plot3D_dif(data = data[,1:3], h1 = 3.75, h2 = 2.5, v = 5)plot3D_NA(newdata = newdata)plot3D_map(newdata = newdata)## End(Not run)

The First Step of TSCS for 2D Rectangular Grid System - Regression

Description

To implement TSCS spatial interpolation for a spatial domain that is a 2D rectangular grid system,the first step is obtaining regression coefficient matrix, which can be doneby functiontscsRegression. It is the prerequisite of TSCS interpolation processbecause the 'matrix' derived from historical spatio-temporal data is the initial value ofthe second step - estimating missing observations.

Usage

tscsRegression(data, h, v, alpha = 0.05)

Arguments

data

data frame; should contain these variables in order: X coordinate, Y coordinate and observationsas time goes on. That is to say, each row should include X and Y coordinate first, and then a time series.This is the historical spatio-temporal data that you intend to analyze as the basis forinterpolation later on intscsEstimate.

h

numeric; side length of the unit grid in X coordinate direction.

v

numeric; side length of the unit grid in Y coordinate direction.

alpha

numeric; specify the significance level for ADF test, to test if the time series of a group ofspatial locations are cointegrated. (default: 0.05)

Details

Value

A list of 2 is returned, including:

coef_matrix

data frame; regression coefficient matrix to be used as input parameter of functiontscsEstimate in the second step of TSCS interpolation.

percentage

numeric; percentage of cointegrated relationships, a measurement of the degreeit satisfies the assumption of cointegrated system. It is highly affected by parameteralpha,the significance level you have set. Explicitly, smalleralpha results in smallerpercentage.

See Also

tscsEstimate,tscsRegression3D,plot_dif

Examples

## Not run: ## TSCS spatial interpolation procedure:basis <- tscsRegression(data = data, h = 1, v = 1, alpha = 0.01); # regressionbasis$percentage # see the percentage of cointegrated relationshipsest <- tscsEstimate(matrix = basis$coef_matrix, newdata = newdata, h = 1, v = 1); # estimationstr(est)## comparison of estimates and true values:plot_compare(est = est$estimate[,3], true = true) # graphic comparisonindex <- appraisal_index(est = est$estimate[,3], true = true); # RMSE & stdindex## data visualization:plot_dif(data = data[,1:2], h = 1, v = 1) # differentiate boundary and interior spatial locationsplot_NA(newdata = newdata) # show spatial locations with missing value, for a cross-section dataplot_map(newdata = newdata) # plot the 2D spatial map, for a cross-section data## End(Not run)

The First Step of TSCS for 3D Rectangular Grid System - Regression

Description

To implement TSCS spatial interpolation for a spatial domain that is a 3D rectangular grid system,the first step is obtaining regression coefficient matrix, which can be doneby functiontscsRegression3D. It is the prerequisite of TSCS interpolation processbecause the 'matrix' derived from historical spatio-temporal data is the initial value ofthe second step - estimating missing observations.

Usage

tscsRegression3D(data, h1, h2, v, alpha = 0.05)

Arguments

data

data frame; should contain these variables in order: X coordinate, Y coordinate, Z coordinate andobservations as time goes on. That is to say, each row should include X, Y and Z coordinate first, and thena time series. This is the historical spatio-temporal data that you intend to analyze as the basis forinterpolation later on intscsEstimate3D.

h1

numeric; side length of the unit cubic grid in X coordinate direction (horizontal).

h2

numeric; side length of the unit cubic grid in Y coordinate direction (horizontal).

v

numeric; side length of the unit cubic grid in Z coordinate direction (vertical).

alpha

numeric; specify the significance level for ADF test, to test if the time series of a group ofspatial locations are cointegrated. (default: 0.05)

Details

Value

A list of 2 is returned, including:

coef_matrix

data frame; regression coefficient matrix to be used as input parameter of functiontscsEstimate in the second step of TSCS interpolation.

percentage

numeric; percentage of cointegrated relationships, a measurement of the degreeit satisfies the assumption of cointegrated system. It is highly affected by parameteralpha,the significance level you have set. Explicitly, smalleralpha results in smallerpercentage.

See Also

tscsEstimate3D,tscsRegression,plot3D_dif

Examples

## Not run: ## TSCS spatial interpolation procedure:basis <- tscsRegression3D(data = data, h1 = 3.75, h2 = 2.5, v = 5, alpha = 0.01);basis$percentageest <- tscsEstimate3D(matrix = basis$coef_matrix, newdata = newdata, h1 = 3.75, h2 = 2.5, v = 5);str(est)## comparison of estimates and true values:plot_compare(est = est$estimate[,4], true = true)index <- appraisal_index(est = est$estimate[,4], true = true);index## data visualization:plot3D_dif(data = data[,1:3], h1 = 3.75, h2 = 2.5, v = 5)plot3D_NA(newdata = newdata)plot3D_map(newdata = newdata)## End(Not run)

[8]ページ先頭

©2009-2025 Movatter.jp