我正在运行plspm包并通过带有二进制变量(0或100)的数据库运行它。当我尝试运行以下内容时出现以下错误:
t_blocks = list(3:5, 6:8, 2)
t_modes = c("B", "B", "A")
t_pls = plspm(df, t_path, t_blocks, modes = t_modes)
Error in solve.qr(qr(X[, blockinds == j]), Z[, j]) :
singular matrix 'a' in 'solve'
向后工作以尝试隔离有问题的列,我发现它是第8列,因为t_blocks = list(3:5, 6:7, 2)
运行正常。
我知道如果列只有0个值,则会出现此问题。但是,df [8]有0和100值:
> df[8]
Q2D
1 100
2 100
3 100
4 100
5 100
6 100
7 100
8 100
9 100
10 100
11 100
12 100
13 100
14 100
15 100
16 100
17 100
18 100
19 100
20 100
21 100
22 100
23 100
24 100
25 100
26 100
27 100
28 100
29 100
30 100
31 100
32 100
33 100
34 100
35 100
36 100
37 100
38 100
39 100
40 100
41 0
42 100
43 100
44 100
45 100
46 100
47 100
48 100
49 100
50 100
51 100
52 100
53 100
54 100
55 100
56 100
57 100
58 0
59 100
60 100
61 0
62 100
63 100
64 100
65 100
66 100
67 100
68 100
69 100
70 100
71 100
72 100
73 0
74 100
75 100
有没有人知道发生了什么?