Решение уравнений с двумя неизвестными в R - PullRequest
0 голосов
/ 19 февраля 2019

Я подгоняю распределения к наборам данных.Мне нужно настроить параметры распределений в соответствии с заданными функциями / формулами.Я не знаю, как решить проблему в R

. Наборы данных - это наборы данных об осадках из 14 различных периодов дождя (5 минут, 10 минут, 15 минут и т. Д.).Для каждого набора данных я соответствую распределению.После этого мне нужно подобрать функцию к параметрам распределения, чтобы получить взаимосвязь между продолжительностью дождя и параметром распределения.

Даны функции для каждого из параметров распределения.Например, функция для параметра местоположения: u (d) = a / d ^ b

, где u (d) - параметры местоположения всех 14 подогнанных распределений (для каждой продолжительности d), а d -продолжительность 5,10,15,30,45,60,90,120,180,240,300,360,720 и 1440 минут.Теперь мне нужно найти параметры a и b

Моя проблема заключается в том, что я не понимаю, как подходить к проблеме в R, из-за отсутствия математических знаний и недостаточного знания терминов на английском языке.Я начал немного читать о deSolve, но быстро запутался и даже не уверен, нахожусь ли я на правильном пути.

Пример

u <- seq(0,60, length.out = 14) # these are the resulting location parameters

d <- c(5,10,15,30,45,60,90,120,180,240,300,360,720,1440)

Итак, если возможно, яХотелось бы получить предложения о том, как подойти к проблеме и как настроить код решения уравнений.

1 Ответ

0 голосов
/ 21 февраля 2019

Я думаю, что сам нашел решение, используя nls (из пакета "stats")

d <- c(5,10,15,30,45,60,90,120,180,240,300,360,720,1440)
mu <- seq(5, 30, length.out = 14)

были заданы пороговые значения для a и b:

a должно быть больше 0,и b должно быть больше, чем -1

start_a <- 0.1 # start-value higher than 0
start_b <- -0.9 # start-value higher than -1

я мог бы тогда установить функцию

mu_fun <- function(a,d,b) {
a/(d^b) }

и, наконец, запустить nls с функцией и данными начальными оценками

mu_fit <- nls(mu ~ mu_fun(a,d,b), start = list(a = start_a, b = start_b))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...