Methods for providing data analysis service by a service provider to a data owner are described. The data owner transmits training data to the data analysis service provider, and the latter computes a model from the training data. In one method, the service provider transmits the model back to the data owner, which uses the model to generate predictions from prediction input. In another method, the data owner further transmits prediction input to the service provider, and the latter uses the computed model and the prediction input to generate predictions and then transmits the predictions back to the data owner. Prior to transmitting the training data and the prediction input, the data owner performs variable name anonymization and a variable transformation on the training data and prediction data point to obscure the meaning of the variables in the data. This prevents possible misuse of the data owner's data by unauthorized parties.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method implemented in a first server operated by a data owner and a second server operated by a data analysis service provider, comprising: (a) the first server transmitting training data to the second server; (b) the second server analyzing the training data received from the first server using machine learning to develop a model; (c) the first server transmitting a prediction input to the second server; (d) the second server computing a prediction using the model developed in step (b) and the prediction input received from the first server; and (e) the second server transmitting the prediction to the first server. 2. The method of claim 1, further comprising, before step (a): (f) the first server obtaining data to be analyzed, the data including a plurality of data points, each data point including a plurality of variables each having a value; and (g) the first server pre-processing the data, including performing a variable transformation on each data point, to generate pre-processed data, wherein the pre-processed data and the data to be analyzed have different variable value distributions; wherein in step (a), the first server transmits the pre-processed data as the training data to the second server; the method further comprising, before step (c): (h) the first server pre-processing a prediction data point, the prediction data point including the plurality of variables each having a value, the pre-processing including performing the variable transformation on the prediction data point to generate pre-processed prediction data point; wherein in (c), the first server transmits the pre-processed prediction data point as the prediction input to the second server. 3. The method of claim 1, further comprising, before step (a): (f) the first server obtaining data to be analyzed, the data including a plurality of data points, each data point including a first plurality of variables each having a value; (g) the first server pre-processing the data, including performing a variable transformation on each data point, to generate pre-processed data in which each data point includes a second plurality of variables each having a value, wherein at least one variable x, among the first plurality of variables is not among the second plurality of variables, and a set of replacement variables Zs to Zt among the second plurality of variables are not among the first plurality of variables; wherein in step (a), the first server transmits the pre-processed data as the training data to the second server; the method further comprising, before step (c): (h) the first server pre-processing a prediction data point, the prediction data point including the first plurality of variables each having a value, the pre-processing including performing the variable transformation on the prediction data point to generate pre-processed prediction data point which includes the second plurality of variables each having a value; wherein in (c), the first server transmits the pre-processed prediction data point as the prediction input to the second server. 4. The method of claim 3, wherein the variable transformation in the pre-processing steps (g) and (h) includes: for the first variable Xj, defining the set of replacement variables Zs to Zt which satisfy the condition: Xj=λ0+λsZs+ . . . +λtZt wherein λ0, λs, . . . , λt are a set of coefficients, and wherein values of the set of replacement variables are dependent on the value of the first variable and/or auxiliary information, the auxiliary information being known to the first server but unknown to the second server. 5. A method implemented in a first server operated by a data owner and a second server operated by a data analysis service provider, comprising: (a) the first server transmitting training data to the second server; (b) the second server analyzing the training data received from the first server using machine learning to develop a model; (c) the second server transmitting the model to the first server; and (d) the first server computing a prediction using the model received from the second server and a prediction input. 6. The method of claim 5, further comprising, before step (a): (e) the first server obtaining data to be analyzed, the data including a plurality of data points, each data point including a plurality of variables each having a value; and (f) the first server pre-processing the data, including performing a variable transformation on each data point, to generate pre-processed data, wherein the pre-processed data and the data to be analyzed have different variable value distributions; wherein in step (a), the first server transmits the pre-processed data as the training data to the second server; the method further comprising, before step (d): (g) the first server pre-processing a prediction data point, the prediction data point including the plurality of variables each having a value, the pre-processing including performing the variable transformation on the prediction data point to generate pre-processed prediction data point; wherein in (d), the first server uses the pre-processed prediction data point as the prediction input. 7. The method of claim 5, further comprising, before step (a): (e) the first server obtaining data to be analyzed, the data including a plurality of data points, each data point including a first plurality of variables each having a value; (f) the first server pre-processing the data, including performing a variable transformation on each data point, to generate pre-processed data in which each data point includes a second plurality of variables each having a value, wherein at least one variable Xj among the first plurality of variables is not among the second plurality of variables, and a set of replacement variables Zs to Zt among the second plurality of variables are not among the first plurality of variables; wherein in step (a), the first server transmits the pre-processed data as the training data to the second server; the method further comprising, before step (d): (g) the first server pre-processing a prediction data point, the prediction data point including the first plurality of variables each having a value, the pre-processing including performing the variable transformation on the prediction data point to generate pre-processed prediction data point which includes the second plurality of variables each having a value; wherein in (d), the first server transmits the pre-processed prediction data point as the prediction input to the second server. 8. The method of claim 7, wherein the variable transformation in the pre-processing steps (f) and (g) includes: for the first variable Xj, defining the set of replacement variables Zs to Zt which satisfy the condition: Xj=λ0+λsZs+ . . . λtZt wherein λ0, λs, . . . , λt are a set of coefficients, and wherein values of the set of replacement variables are dependent on the value of the first variable and/or auxiliary information, the auxiliary information being known to the first server but unknown to the second server. 9. A method implemented in a first server operated by a data owner, the first server cooperating with a second server operated by a data analysis service provider, the method comprising: (a) obtaining data to be analyzed, the data including a plurality of data points, each data point including a first plurality of variables each having a value; (b) pre-processing the data, including performing a variable transformation on each data point, to generate pre-processed data in which each data point includes a second plurality of variables each having a value, wherein at least one variable Xj among the first plurality of variables is not among the second plurality of variables, and a set of replacement variables Zs to Zt among the second plurality of variables are not among the first plurality of variables; (c) transmitting the training data to the second server; and (d) pre-processing a prediction data point, the prediction data point including the first plurality of variables each having a value, the pre-processing including performing the variable transformation on the prediction data point to generate pre-processed prediction data point which includes the second plurality of variables each having a value. 10. The method of claim 9, further comprising: (e) transmitting the pre-processed prediction data point as prediction input to the second server; and (f) receiving a prediction from the second server which has been computed by the second server based on the training data and the prediction input. 11. The method of claim 9, further comprising: (e) receiving a model from the second server which has been learned by the second server from the training data; and (f) computing a prediction using the model received from the second server and the pre-processed prediction data point as prediction input. 12. The method of claim 9, wherein the variable transformation in the pre-processing steps (b) and (d) includes: for the first variable Xj, defining the set of replacement variables Zs to Zt which satisfy the condition: Xj=λ0+λsZs+ . . . λtZt wherein λ0, λs, . . . λt are a set of coefficients, and wherein values of the set of replacement variables are dependent on the value of the first variable and/or auxiliary information, the auxiliary information being known to the first server but unknown to the second server.