Я подгоняю логарифмическую кривую к 20+ наборам данных, используя уравнение
y = intercept + coefficient * ln(x)
Генерируется в R через
output$curvePlot <- renderPlot ({
x=medianX
y=medianY
Estimate = lad(formula = y~log(x),method = "EM")
logEstimate = lad(formula = y~log(x),method = "EM")
plot(x,predict(Estimate),type='l',col='white')
lines(x,predict(logEstimate),col='red')
points(x,y)
cf <- round(coef(logEstimate),1)
eq <- paste0("y = ", cf[1],
ifelse(sign(cf[2])==1, " + ", " - "), abs(cf[2]), " * ln(x) from 0 to ",xmax)
mtext(eq,3,line=-2,col = "red")
output$summary <- renderPrint(summary(logEstimate))
output$calcCurve <-
renderPrint(round(cf[2]*log(input$calcFeet)+cf[1]))
})
Кривая последовательно «пересекается дважды» на данных; подгонка слишком низко в нижней / верхней точке на оси X, подгонка слишком высоко в середине оси X.
Я не очень понимаю, куда идти отсюда. Я пропускаю фактор или использую неправильную кривую?
Набор данных имеет длину около 60 000 строк, но я сжал его до медиан. Медианы были выбраны из-за неизбежных выбросов в данных, особенно из-за толстого левого хвоста, вызванного нашими приборами.
x,y
2,6.42
4,5.57
6,4.46
8,3.55
10,2.72
12,2.24
14,1.84
16,1.56
18,1.33
20,1.11
22,0.92
24,0.79
26,0.65
28,0.58
30,0.34
32,0.43
34,0.48
36,0.38
38,0.37
40,0.35
42,0.32
44,0.21
46,0.25
48,0.24
50,0.25
52,0.23
Полная методология для контекста:
Образцы зависимой переменной, скорость (фут / мин), были собраны при
различные расстояния от сопла вентилятора с помощью NIST-калиброванной горячей проволоки
анемометр. Мы контролировали точность измерительных приборов, подвергая
анемометр для еженедельного теста на известную среду,
напорная труба с известным диаметром отверстия, обеспечивающая
калибровка поддерживалась в пределах +/- 1%, анемометр опубликовал
рейтинг точности.
Мы контролировали выравнивание вентилятора анемометром по всему
длина дорожки с помощью лазера от центра вентилятора, который
не более одного дюйма от центра анемометра
расстояние.
Хотя мы явно не контролировали факторы окружающей среды, такие как
температура наружного воздуха, атмосферное давление, мы считаем, что эти
факторы будут иметь минимальное влияние на результаты теста. Для обеспечения
эти данные были собраны равномерно в ряде экологических
условия, мы построили робота, который вел анемометр вниз по дорожке
на другое расстояние каждые пять минут. Это означало, что данные будут
собираться в каждую независимую переменную позицию повторно, в течение
ход часов, а не на одной позиции в течение
ч. В результате 24-часовой тест будет измерять скорость воздуха при
каждое расстояние более 200 раз, что позволяет изменять температуру как
помещение обогревается или охлаждается в течение дня, чтобы устранить любые проблемы
факторы окружающей среды путем введения рандомизации.
Данные были собраны через последовательный порт на анемометре с горячим проводом,
сохранение CSV с меткой времени, включающей поля: дата, время, расстояние
от вентилятора, измеренной температуры и измеренной скорости. Анализ на
данные были выполнены в R.
Тестирование: чтобы собрать начальный набор гипотез, мы взяли медиану
Скорость воздуха на каждом расстоянии. Медиана была выбрана, а не
среднее значение, поскольку выбросы являются общими в наборах данных, измеряющих физическое
величины. Поскольку воздух движется по комнате, это может привести к
временно изгиба от анемометра. Это приводит к выбросам
на нижнем конце, которые не отражают фактическую переменную, которую мы пытались
измерять. Также бывает, что иногда скорость воздуха на
измеренное расстояние выглядит как «затяжка», или всплеск и падение. Это
ощутимо, просто стоя перед вентилятором, и это происходит на
все поклонники на всех расстояниях, в некоторой степени. Мы считаем наиболее вероятным
причина этого пыхтения из-за вихревых токов и увлечения
окружающий воздух, временно увеличивающий поток воздуха. Медианный результат
освобождает нас от беспокойства о том, насколько сильным или слабым может быть «затяжка»,
и это помогает ограничить влияние на скорость воздуха изгибающегося воздуха
от анемометра, который не влияет на фактическую скорость воздуха, но
только измеренная скорость воздуха. С нашим начальным набором данных медиан мы
использовал логарифмическую регрессию для расчета кривой, чтобы соответствовать данным и
генерировали наши начальные профили скорости на заданных расстояниях. Для проверки
чтобы исходные данные были точными, мы побежали 10 раз в месяц
моделирование на 25% набора данных и гарантирует, что сгенерированный
медианы были в пределах разумного значения друг друга.
ВалиДания: вентиляторы запускались каждые три месяца, а Монте-Карло
моделирование складывания не наблюдалось. Если уровень ошибок был <5% от нашего
предыдущий тест, мы проверили предыдущий тест. </p>