Error in demography::lca(mortality_matrix) : Not demography data

Hi there! I am forecasting population(each gender separately) of one territory for next 2 years using Lee Carter method in R studio.

I am facing the same problem again and again.

My R script code is:

Install the required packages

install.packages(c("demography", "forecast", "readxl"))

Load the packages

library(demography)
library(forecast)
library(readxl)

Specify the file path

file_path <- "D:/maledatafer.xlsx"

Read the Excel file

lee_carter_data <- readxl::read_excel(file_path, sheet = 1)

Assuming you have read the data into a variable named 'lee_carter_data'

Removing the first unnamed column (years)

lee_carter_data <- lee_carter_data[-1]

Convert the tibble to a standard data frame

lee_carter_data <- as.data.frame(lee_carter_data)

Convert the data to a matrix

mortality_matrix <- as.matrix(lee_carter_data)

Fit the Lee-Carter model using the demography package

lc_model <- demography::lca(mortality_matrix)

Forecasting future mortality rates

'h' is the number of periods (years) to forecast

forecast_result <- forecast(lc_model, h = 2)

Plotting the forecast

plot(forecast_result)

*And the problem is

Error in demography::lca(mortality_matrix) : Not demography data

What is solution of this? Please, help me. I need your assistance as soon as possible.

Thanks.

Here is my collected data in excel.

I think we need to see some sample data.

When you have created lee_carter_data try this

dput(head(lee_carter_data, 100)) 

Copy the output and paste it here between
```

```

Thanks

The lca function wants an argument of type demogdata, not a matrix.

Thank you for your help and time.

Should I write whole code like below:

Install the required packages

install.packages(c("demography", "forecast", "readxl"))

Load the packages

library(demography)
library(forecast)
library(readxl)

Specify the file path

file_path <- "D:/maledatafer.xlsx"

Read the Excel file

lee_carter_data <- readxl::read_excel(file_path, sheet = 1)

Assuming you have read the data into a variable named 'lee_carter_data'

Removing the first unnamed column (years)

lee_carter_data <- lee_carter_data[-1]

Convert the tibble to a standard data frame

lee_carter_data <- as.data.frame(lee_carter_data)

Convert the data to a matrix

mortality_matrix <- as.matrix(lee_carter_data)

[New Line] Output a text representation of the first 100 rows of your data

dput(head(lee_carter_data, 100))

Fit the Lee-Carter model using the demography package

lc_model <- demography::lca(mortality_matrix)

Forecasting future mortality rates

'h' is the number of periods (years) to forecast

forecast_result <- forecast(lc_model, h = 2)

Plotting the forecast

plot(forecast_result)

Thank you for your reply.

What do you mean by that? What should I do?
Can you please, provide me where should I change?

Thank you

I can’t give you specifics because I don’t use that package. Take a look at the help information.

The demogdata() function will convert a matrix into a "demogdata object suitable for plotting using plot.demogdata and fitting an LC or BMS model using lca or an FDA model using fdm." The quoted part is from the package documentation.

I also have no experience with the demography package.

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.