This paper investigates the problem of selecting instrumental variables relative to a target causal influence from observational data generated by linear non-Gaussian acyclic causal models in the presence of unmeasured confounders. We propose a necessary condition for detecting variables that cannot serve as instrumental variables. Unlike many existing conditions for continuous variables, i.e., that at least two or more valid instrumental variables are present in the system, our condition is designed with a single instrumental variable. We then characterize the graphical implications of our condition in linear non-Gaussian acyclic causal models. Given that the existing graphical criteria for the instrument validity are not directly testable given observational data, we further show whether and how such graphical criteria can be checked by exploiting our condition. Finally, we develop a method to select the set of candidate instrumental variables given observational data. Experimental results on both synthetic and real-world data show the effectiveness of the proposed method.
28 February 2024 in IEEE Transactions on Neural Networks and Learning Systems
Conditional independence (CI) testing is an important problem, especially in causal discovery. Most testing methods assume that all variables are fully observable and then test the CI among the observed data. Such an assumption is often untenable beyond applications dealing with, e.g., psychological analysis about the mental health status and medical diagnosing (researchers need to consider the existence of latent variables in these scenarios); and typically adopted latent CI test schemes mainly suffer from robust or efficient issues. Accordingly, this article investigates the problem of testing CI between latent variables. To this end, we offer an auxiliary regression-based CI (AReCI) test by taking the measured variable as the surrogate variable of the latent variables to conduct the regression over the latent variables under the linear causal models, in which each latent variable has some certain measured variables. Specifically, given a pair of latent variables $L_X$ and $L_Y$ , and a corresponding latent variable set $\mathcal{L}_{O}$ , $L_X \CI L_Y | \mathcal{L}_{O}$ holds if and only if $A_{\{L_X\}}-\omega_1^\intercal A^{\prime}_{\{\mathcal{L}_{O}\}}$ and $A_{\{L_Y\}}-\omega_2^\intercal A^{\prime\prime}_{\{\mathcal{L}_{O}\}}$ are statistically independent, where $A^{\prime}$ and $A^{\prime\prime}$ are the two disjoint subset of the measured variable for the corresponding latent variables, $A^{\prime}_{\{\mathcal{L}_{O}\}} \cap A^{\prime\prime}_{\{\mathcal{L}_{O}\}} =\emptyset$ , and $\omega_1$ is a parameter vector characterized from the cross covariance between $A_{\{L_X\}}$ and $A^{\prime}_{\{\mathcal{L}_{O}\}}$ , and $\omega_{2}$ is a parameter vector characterized from the cross covariance between $A_{\{L_Y\}}$ and $A^{\prime\prime}_{\{\mathcal{L}_{O}\}}$ . We theoretically show that the AReCI test is capable of addressing both Gaussian and non-Gaussian data. In addition, we find that the well-known partial correlation test can be seen as a special case of the AReCI test. Finally, we devise a causal discovery method by using the AReCI test as the CI test. The experimental results on synthetic and real-world data illustrate the effectiveness of our method.
The mobile Internet is developing rapidly today, asynchronous processing mechanism is employed to handle the growing concurrency issues. Recently, the swoole has gained more and more attention in the asynchronous mechanism for handling high concurrency scenarios. This paper analyzes the implementation of the swoole, then, tests the performance of server based on the swoole. The principle of multithreading and the application of Swoole extension asynchronous multithreading in PHP are outlined. It analyzes the specific implementation of the swoole asynchronous multi-threading on Linux system. Next, its principle is applied onto implementing a simple chatting room. The capability of the swoole concurrent processing is also tested. Finally, combined with the swoole to realize the asynchronous multithreading characteristics and experimental results, explain that PHP+Swoole can replace C++, Java and other complex programming languages as servers for high concurrent scenarios, and supplements the defect of PHP in network programming. At the same time pointed out the asynchronous multithreading prospect application for Swoole and the impact on the PHP language development.