Как мне структурировать данные нескольких наблюдений для каждого человека в R для вычисления OLS и квантильной регрессии?

Чтобы проанализировать данные эксперимента по отслеживанию взгляда, я предварительно обработал данные с помощью Matlab, и теперь я хочу провести регрессионный анализ в R. OLS Regression и квантильной регрессии, чтобы быть конкретным.

Для одного тестируемого в этом случае "vp31" я начал так:

    # load file
dikablis <- read.table("vp31.txt", sep="\t") # load it

# generate col names
colnames(dikablis) <- c("area","start","end","duration")

У меня есть последующие наблюдения для каждого человека, о чем свидетельствует возрастающее время начала. Если быть точным, мои данные теперь выглядят так:

          area start  end duration
1    speed     0  200      200
2 attitude   200  400      200
3    speed   400  680      280
4 attitude   680 1200      520
5    speed  3840 4200      360
6 attitude  4200 5160      960

Затем я пытаюсь вычислить регрессию:

Call:
lm(formula = duration ~ area, data = dikablis)

Residuals:
   Min     1Q Median     3Q    Max 
-490.1 -218.8  -63.9  118.7 3829.9 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept)    650.07      22.26  29.202  < 2e-16 ***
areafma       -344.35     103.73  -3.320 0.000953 ***
areahead_pfd  -226.19      51.39  -4.402 1.26e-05 ***
areaheight    -191.25      37.88  -5.049 5.81e-07 ***
areaspeed     -248.75      41.03  -6.063 2.29e-09 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 379.1 on 640 degrees of freedom
Multiple R-squared:  0.0838,    Adjusted R-squared:  0.07807 
F-statistic: 14.63 on 4 and 640 DF,  p-value: 1.911e-11

Надеюсь, я делаю это прямо сейчас? Я впечатлен тем, что R умный и автоматически фиктивный кодирует категориальную переменную Area of ​​Interest. Однако есть ли способ установить опорный уровень для первого элемента вектора, включая имена интересующих уровней? В этом случае я хотел бы использовать FMA в качестве эталона.

aois <- c("FMA", "speed", "attitude", "altitude", "head_pfd")

Еще я извлек из Matlab вектор с именами испытуемых, например>

vps <- c("vp31","vp2")

Теперь перейдем к моему более важному вопросу: как мне структурировать свои данные для вычисления регрессий для нескольких испытуемых и как будет выглядеть формула регрессии? (Не смущайтесь, я просто заменил категориальные имена в области числами здесь, поскольку этот образец был сгенерирован с использованием более старой версии моего кода)

            V1               V2               V3                V4           V5              V6
1 Reg_Area_VP31 Reg_Statime_VP31 Reg_Endtime_VP31 Reg_Duration_VP31 Reg_Area_VP2 Reg_Statime_VP2
2             3                0              200               200            3               0
3             2               40              600               560            2              40
4             1              400              560               160            1             400
5             3              840             1280               440            3             840
               V7               V8
1 Reg_Endtime_VP2 Reg_Duration_VP2
2             200              200
3             600              560
4             560              160
5            1280              440

Это мой первый запрос stackoverflow, поэтому, пожалуйста, не будьте суровы со мной :) Жду ваших отзывов и заранее благодарим за ваше время и помощь! Флориан

Проведя все больше и больше исследований, я задаюсь вопросом, нужно ли мне так структурировать свои данные? Значит, вся информация на мгновение идет в одну строку?

       id diet exertype pulse time
1   1    1        1    85    1
2   1    1        1    85    2
3   1    1        1    88    3
4   2    1        1    90    1
5   2    1        1    92    2
6   2    1        1    93    3
7   3    1        1    97    1
8   3    1        1    97    2
9   3    1        1    94    3
10  4    1        1    80    1
11  4    1        1    82    2
12  4    1        1    83    3
13  5    1        1    91    1
14  5    1        1    92    2
15  5    1        1    91    3
16  6    2        1    83    1
17  6    2        1    83    2
18  6    2        1    84    3
19  7    2        1    87    1
20  7    2        1    88    2
21  7    2        1    90    3
22  8    2        1    92    1
23  8    2        1    94    2
...

person florian    schedule 01.04.2014    source источник


Ответы (1)


Хорошо, я сам нашел ответ ... В науке принято, что наблюдения приводятся в строках. Так что мое предложение из последнего абзаца повело в правильном направлении;)

person florian    schedule 26.05.2014